When it came to improving load times in the port, we decided to split up the world to enable level streaming. Meanwhile, the Switch port required us to chunk game assets to keep patch sizes under the limit. This presented a challenge because some of the game's assets were being referenced by a lot of other assets. Because of this, we had to decouple a lot of them.
Because the game had performance issues, we needed an upscaling solution that worked on our desired platforms so we could render the game at a lower resolution and still have adequate visual quality.
We experimented with a few upscaling solutions that Unreal Engine supports, like TSR, AMD FSR, and TAUU. AMD FSR produced the best results in our case and together with Dynamic Resolution, offered a good compromise between performance and visual fidelity.
We also had to do a lot of memory profiling to catch any memory leaks that would occur. This ended up being quite a challenge that required us to use Unreal Engine's profiling tools and platform native profiling tools. On top of that, because of the high draw call count in the game, we implemented HLODs.
In our performance analysis, we noticed that frame time was highly affected by dynamic shadow calculations. To solve this, we added proxy geometry shadows.
With Bang-On Balls: Chronicles running as smoothly as possible, you can now experience the hectic, co-op fun on the PlayStation 4, Nintendo Switch, Xbox One, PC, Xbox Series X, and Series S.