Welcome to my personal website
- I post about game development, performance, and general programming.
- Follow me on Twitter!
Welcome to my personal website
Nothing’s better than gaining 160ms per frame just by toggling a few checkboxes. Well, maybe gaining 200ms is better, but that’s not the point. In December 2021, I reviewed a first-person shooter mobile game from a well-known franchise. The game is developed for iOS and Android and uses Unity’s new Universal Rendering Pipeline (URP). The game suffered from long frame times on low- and mid-end Android devices; on average, the frame time was 200ms, which translates to 5 frames per second....
I rebuilt my website from scratch using Hugo instead of using WordPress. On one side, to save some of the hosting costs. On the other side, I wasn’t happy with the limitations imposed on me by WordPress. Don’t get me wrong, if you want to quickly and easily make a website, then WordPress is usually a good choice. But that’s not what I’m after. My personal website consists of static pages, will be updated on a once or twice per month at the most, and does not require any fancy features....
Recently I was looking into the performance of a game’s dedicated server, one problematic area was PhysX performance. To get an idea of how it was like, the average PhysX frame time for a 32-players game was around 80ms with spikes of over 400ms. A quick round of removing unneeded meshes helped, but we were still far from calling it a day. Overview To understand the context, the project is an open-world survival game with a large map, containing a lot of meshes with collisions....
Welcome to the second part of my series on integrating Insomniac Games MemTrace tool to Unreal Engine 4, if you have not read the first part, I recommend you do so here. In today’s post I will be discussing the code changes I did, including the base integration as well extra improvements I added on top, explain how to use MemTrace with UE4, and finally share my suggestions for future improvements....
THIS is what I love the most about the game industry, it’s full of talented people who are always willing to share their experiences and tools to help benefit others in the same industry. There is a large amount of similar problems we all run into during game development. Hence, sharing tools and knowledge is useful for the whole community. Overview To summarize, Insomniac Games are sharing IG-MemTrace (their in-house memory tracing tool) with the rest of the world....
Many people have been asking me lately how to get into the game dev industry, so I thought I’d write a blog post about it so hopefully it reaches more people. For entry level positions, game dev experience is not always expected, which is nice if you are just entering the industry. However, there are things you can do to get prepared and show your passion for game development, as well as to get you prepared and give you experience....
Today is a special day, it’s just now that I can finally talk publicly about what I have been working on for the past year. Dreadnought is coming to PlayStation 4! Finally announced in PlayStation Experience 2016 event. When I joined the Dreadnought team one year ago my goals were clear, to get Dreadnought up and running on PS4, to deliver the greatest possible gameplay experience to PS4 players, and to get Dreadnought looking yet even more awesome....
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....
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....
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....