This is a new feature for both the blueprint editor and the material editor. When selecting regular nodes (except comment nodes, document nodes and the material output node) in the editor, this feature will fade out nodes which don't affect the selected nodes and nodes which are not affected by the selected nodes to make sure that users can focus on the nodes which are related to the selected nodes.
MoreWe recently found a huge leak in the UE4 garbage collector, particularly rearing its head on dedicated servers for large open-world games. Servers for arena type games with short play times (<1 hour) seem to be little affected, and clients don’t see the problem much either. “Huge” is not hyperbole here – we’re talking the garbage collector alone using up to 10 GB of ram in under 24 hours of server operation!
MoreIn this article we delve into Blueprint Nativization, a relatively new feature of UE4 that offers significant performance improvements for many projects. Sadly, it often doesn't work out of the box - we've spent some time fixing and improving it for a particular project that we were working on. We have a LOT of changes to present here - some of which have already been implemented into UE4.
MoreWe found quite a large leak within Apex 3.4 (currently used in Unreal Engine 4, amongst others) - in a relatively short run of the title that we were working on, we saw over 150mb of leaked memory. Here, we present some changes that will fix this
MoreIn this post our MD, Robert Troughton, starts his story about how he got into the games industry
MoreAlmost every developer that we've spoken to seems to have, at some point, encountered the MAX_PATH limit problem... this post talks about how to PROPERLY fix it
MoreIn this post, we look into why IPlatformFileCreateDirectory() was responsible for nearly 1 million allocations during a full cook of KiteDemo and why FPaths::IsDrive(), a huge 100-line function, is being used just to determine whether a filepath begins with a drive mapping... all for the purpose of further speeding up Unreal's cook process just a little bit more
MoreAs part of modifying the file profiler we looked at the file IO activity on starting the UE4 editor with one of the lightweight sample projects, noticing that certain files were being read multiple times. Each was being read in their entirety up to 200 times simply opening the editor. In this post we show you why this was happening and how it can be fixed
MoreUE4 has a little-known profiler for analysing file operations (with the intention that this information can then be used to make optimisations). In this post we take a look at that - and we make some improvements to make it (even more) useful
MoreLightmap UV generation in UE4 can take a considerable amount of time. Here, we take a look at it and present some optimisations that can yield 5x faster performance
MoreLong file path problems are commonplace when cooking with UE4. We took a look at it - and found that the engine was being too aggressive with its checks for whether or not a path really was too long
MoreWe were seeing frequent file IO errors in relation to temporary files created during cooking (particularly when compiling shaders). Our findings for why this were happening were surprising. Here we present a clean way to fix the issues
MoreThe sixth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreA really small bug fix is presented here - with a lot of Trekkie banter to fluff the piece out... and why not?
MoreA common programming mistake is fixed here, this time in the FBX importer
MorePVS-Studio pointed us toward some code with suspiciously mixed signed/unsigned math. This was actually causing some issues - and here we tell you how to fix them
MoreThe fifth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreIn this post we present an optimization coming from removing some pointless null pointer checks. The way that we found this was quite interesting
MoreWhen a process takes a long time to complete, it makes absolute sense to put some time limit checks in so that you're not starving other work. What you don't want to do, of course, is to have those checks slow your original task down further by any considerable amount - here, we found that exactly this was happening .. so we present a solution
MoreWe took a look at the inlining of a certain part of the codebase and were shocked with what we found... we then went about improving it
MoreToString() is one of the most commonly called functions in UE4 - certainly across the editor, the content cooker and such. Here we take a look at it and make it over twice as fast
MoreHere we present several small code fixes and improvements in a nice little package
MoreUE4's Package Versioning is a bit of a dark art for most.. here we try to remove some of the confusion around it - while, again, offering some improvements through optimization
MoreWith performance critical editor and cooker code, it's well advised to consider performance when adding tests for rare errors. Here we take a look at this and show by, by considering the CPU pipeline and code cache, a simple change can yield a significant performance improvement without reducing stability
MoreMacros can often be useful to make certain programming tasks simpler - but they can also cause hidden performance headaches that might otherwise be avoided. Here we look at one of those - and how to improve it
MoreThe fourth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreWe take a look at some list generating code with UE4 - and why it was completely pointless
MoreWe use the debugger's disassembly view to look at FPaths::IsRelative() after it shows up in our profiling tests. Then we optimize it
MoreThe third part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreWe present here a way to improve cook times by reducing the frequency of garbage collection
MoreWe found CreateExportHash() was showing up in profiling the cooker - so we optimized it. Our findings and changes are presented here
MoreThe second part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreWe present an optimization that removes a significant amount of memory churn from the animation code
MoreThe first part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
MoreHere we implement a scratch buffer to reduce temporary memory churn passing through PhysX
MoreWhile profiling a game's runtime, we found that 40% of memory allocations were coming from a single function. The fix/optimization involves adding a single character
MoreWe present a tiny little fix for a simple - but serious - coding error in the UE4 codebase
More