That Debugging Session

That Debugging Session

Disclaimer This post is not about performance optimizations, but I find it… interesting to say the least, and perhaps you’ll agree! What happened? My colleague and I were investigating a bug which started manifesting lately in Dreadnought, where the game would crash as it goes out of GPU memory on start-up. The problem is, this only happened on one specific machine configuration. To make it even more interesting, this only happened when the game used the DX12 renderer, my colleague – who is a graphics programmer – has also figured out that renaming / removing the start-up movies folder circumvents the issue. ...

November 6, 2016 · 3 min · Wessam Ibrahim

Micro Optimizations Episode 2

How NOT to loop Simple Problem Another optimization I tackled lately was a dynamic system to enable / disable other players’ weapon animation updates, based on distance to local player. To give you a bit of a context, there could be between 100 – 400 active weapons at the same time. I first noticed a problem as our weapon tick function was showing up high on the offenders list, which was interesting because I did not remember anything significant should be going on there. ...

October 17, 2016 · 3 min · Wessam Ibrahim

Micro Optimizations Episode 1

Since I joined the Dreadnought team, I have been working almost exclusively on performance optimizations. For the PS4 platform, our game is CPU-bound, specifically on the game thread. To give you some background, we use Unreal Engine 4 which has 1 game thread, 1 render thread, plus some helper task graph threads (based on your settings and core-count). Usually it takes days – and perhaps even weeks – to fix one of the worst offenders. However, sometimes I come across low-hanging fruit where the problems / solutions are simple, and have noticeable effects on performance. ...

August 19, 2016 · 5 min · Wessam Ibrahim