Gearbox Publishing, People Can Fly and Dragons Lake
With its sarcastic humor, numerous ways to kill an enemy and, of course, legendary Duke Nukem skin, Bulletstorm can be considered one of the funniest FPS games of the decade. Developed by People Can Fly and Epic Games and published in 2011 by Electronic Arts, Bulletstorm hasn't lost its charm to this day. A remastered version was published by Gearbox Publishing in 2017 for Windows, PlayStation 4, and Xbox One, and then the time has come for Nintendo Switch.
To make the Switch version as great as possible Gearbox Publishing came to us – and wasn’t disappointed. The port was so successful that Dragons Lake's collaboration with People Can Fly lasted another three years – after Bulletstorm porting we helped bring to life such a stunning title as Outriders.
Though Bulletstorm looks great and has impressive graphics, it was released a long time ago. In fact, it was developed on Unreal Engine 3, and support for the Nintendo Switch came only with the next generation – Unreal 4. How do you port a game from the platform that is not supported by Switch? We needed to come up with the optimal solution and deliver the utmost performance.
Another challenge was sound optimization. Switch has its own hardware decoder, so we needed to convert every sound effect into the right format. Textures also needed optimization and conversion into another format supported by Nintendo. Given Switch memory limits, we needed to find a solution that would allow us to control graphics quality and at the same time minimize memory usage.
Apart from Switch limits which are always a challenge, we needed to add online services and package the game taking care of every aspect to make Bulletstorm enjoyable to the maximum on the new platform.
To make Bulletstorm: Duke of Switch Edition look no less impressive than its console version, we re-engineered the render system using a native Switch library to fully optimize the game for the platform. For perfect graphics, we used a modern texture compression algorithm that allowed us to control the quality of the image and greatly cut down memory usage. Besides, we adapted sound and input specifically for Switch, optimizing it for better gameplay.
And, finally, we fully packaged the game for the release: added it to the Nintendo eShop, installed builds, and added online services.
Re-engineering the render system with a native Switch library
The biggest challenge was that Unreal Engine 3, the engine used to develop Bulletstorm, doesn't support Nintendo Switch.
Another challenge was porting the textures from the console version to Switch. Nintendo is known for its limited memory which often means lower resolution and pixel graphics. To solve it, we decided to use adaptive scalable texture compression – a modern technology developed by Arm and AMD. This texture compression system is designed to offer a high degree of flexibility while providing better image quality than most common formats can deliver. ASTC is an advanced method for coding textures that allowed us to greatly compress graphics size while controlling their quality. As a result, images are comparable with those on console versions, and optimal memory use is maintained.
Sound effects are another challenge when porting a game to Nintendo Switch. Since Unreal 3 doesn’t support Switch, we used the code from Unreal 4, corrected it, and added it to Unreal 3. Then we compressed audio files into formats compatible with Nintendo Switch. All this required adaptation and we put effort into making Bulletstorm sound just the way it should.
One of the Switch’s unique features is its motion controls that allow different ways of input like shaking or tilting the controller instead of using buttons. With a heavy focus on gameplay, Bulletstorm is a game that needed a decent adaptation in terms of input. To make the gameplay as convenient as possible, we adapted the input specifically for the Switch platform to ensure that players can use every possible feature.