THE CUSTOMER
This time around, we got hired by publisher Untold Tales, one of our long-running clients, an indie publishing label that focuses on games with fascinating stories and creative approaches to the medium. The work in question was with a small but talented developer, Exit Plan Games. Their slogan of “Fun games. Good times.” perfectly encapsulates their approach to the game we worked on – Bang-On Balls: Chronicles.
ABOUT
Bang-On Balls: Chronicles is an absolutely content-packed 3D platformer with a collect-a-thon spin. In this open-world sandbox, you go through many creatively reimagined historical events while hunting for various collectibles, easter eggs, and other curiosities.
The game’s destructible world is filled with easy-to-pickup combat and creative character customization that will have you standing out of the crowd from afar. Especially if you’re enjoying the chaos in 2-player split screen or 4-player online co-op.
THE CHALLENGE
We were tasked to port Bang-On Balls: Chronicles to the Play Station 4, Xbox One, Nintendo Switch, and GOG platforms.
Initially, we were only supposed to port the game to Play Station. However, as the project went on, the scope became larger, adding more and more platforms. This made the deadlines fairly tight to work with.
On top of that, the game used various add-ons that made optimization a lot more difficult, especially for the less powerful Nintendo Switch. Many of the builds we received were unfortunately untested as well, packing bugs that further complicated our work.
THE SOLUTION
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.