Optimisation – Update #9

Every now and then one needs to pause cramming content into a game, take a step back and have a look how the game runs. There is a certain art to picking the right moment for doing that during the development process, as doing it too early might result in looking at the areas which have little real impact, and doing it too late might result having to fix or refactor a lot of existing content or technology, while struggling to work efficiently when the game runs in an unsatisfactory way.

This week this moment came for Elemental Enigma. The plan, from the very beginning, was for the game to be able to run at locked 60 FPS on fairly low-end devices, like laptops with Intel i3/AMD Ryzen 3 CPUs and integrated GPUs. The frame rate is to be locked, because there is little benefit to having an unlocked frame rate in 2D games without any vector graphics.

So far this method of taking a step back every couple of months has been very successful. There have been very few moments during the whole development process where the frame rate would consistently drop below 60. However with time as more things were being added (more foliage, more complicated particle effects, more objects in general, bigger maps, etc.) the frame rate started becoming less and less stable. So although the average frame rate was still 60 FPS, there were common, although short, drops. Which might not be a deal breaker during development, but would be absolutely unacceptable in the finished product.

Thankfully there are many tools, both 3rd party and created in-house, to address these kind of issues, to see which part of the game takes too many of computer resources.

After fiddling with these this week, addressing issues with how objects are queued for rendering, how Fog Of War is rendered and multiple others, most frame drops have been dealt with. It is satisfyingly solid, at least for the time being.

Elemental Enigma is not yet finished, this will still take considerable amount of time. And while new, more complicated content is being added, the game’s performance will be constantly monitored, so that even people wanting to play the game on older laptops, will be able to do that without any problems.