skip to main content
Trash Compactor

Trash Compactor

We 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!
More
Placating The Natives

Placating The Natives

In 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.
More
PhysX: The Case Of The Leaky Cloth

PhysX: The Case Of The Leaky Cloth

We 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
More
The Case of the Locked File

The Case of the Locked File

We 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
More
It’s A Size, Jim, But Not As We Know It, Not As We Know It…

It’s A Size, Jim, But Not As We Know It, Not As We Know It…

A really small bug fix is presented here - with a lot of Trekkie banter to fluff the piece out... and why not?
More
Static Code Analysis With PVS-Studio (Part 6)

Static Code Analysis With PVS-Studio (Part 6)

The sixth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
Sign Of The Times

Sign Of The Times

PVS-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
More
Clear And Reset Danger

Clear And Reset Danger

A common programming mistake is fixed here, this time in the FBX importer
More
Static Code Analysis With PVS-Studio (Part 5)

Static Code Analysis With PVS-Studio (Part 5)

The fifth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Sadness of the Ignored Null Pointer

The Sadness of the Ignored Null Pointer

In this post we present an optimization coming from removing some pointless null pointer checks. The way that we found this was quite interesting
More
Speeding Up The Time Limit Controls

Speeding Up The Time Limit Controls

When 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
More
Tiny Code Fixes – Part 1

Tiny Code Fixes – Part 1

Here we present several small code fixes and improvements in a nice little package
More
Package Versioning… How It Works… And An Optimization

Package Versioning… How It Works… And An Optimization

UE4'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
More
Static Code Analysis With PVS-Studio (Part 4)

Static Code Analysis With PVS-Studio (Part 4)

The fourth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
Static Code Analysis With PVS-Studio (Part 3)

Static Code Analysis With PVS-Studio (Part 3)

The third part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Case Of The ExportHash String Monster

The Case Of The ExportHash String Monster

We found CreateExportHash() was showing up in profiling the cooker - so we optimized it. Our findings and changes are presented here
More
Static Code Analysis With PVS-Studio (Part 2)

Static Code Analysis With PVS-Studio (Part 2)

The second part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More

Static Code Analysis With PVS-Studio (Part 1)

The first part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Smallest, Coolest Optimization

The Smallest, Coolest Optimization

While 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
More
The Clue In The Code Comments

The Clue In The Code Comments

We present a tiny little fix for a simple - but serious - coding error in the UE4 codebase
More
Go to Top