Bulletstorm: Porting Legendary Duke of Switch Edition to Nintendo Switch
Bulletstorm: Porting Legendary Duke of Switch Edition to Nintendo Switch
How to deliver a port that will be claimed both by critics and users as “one of the technically strongest ports we’ve seen on the console so far”? Dragons Lake teamed up with Gearbox Publishing to release a remastered version of the game for Nintendo Switch titled Bulletstorm: Duke of Switch Edition, in August 2019. Discover what we did to make it look so impressive. 
leave the message

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.

How did we make Bulletstorm look so good on Switch?
The challenge
Deliver a game on Switch with added DLC, rewrite a render system, adapt Unreal 3 code for converting textures and sound
Service delivered
Game porting
People involved
3 developers, technical artists, QA specialists
Unreal Engine 3
August 31, 2019

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.

  • Ported the game with a built-in DLC to Nintendo Switch
  • Delivered solid 30 FPS (1080p/720p)
  • Achieved excellent graphics fitting into Switch memory limits
  • Re-engineered render system using native Switch library
  • Fixed game bugs on different platforms
  • Optimized sound effects
  • Adapted gameplay for Switch controllers
  • Optimized for both docked and “on-the-go” handheld modes

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.

To port the game, we needed to come up with a solution that would allow us to deliver the ultimate performance and keep control of the game’s essential elements to optimize them when possible. We could use OpenGl or Vulkan which are cross-platformed APIs supported by Switch but that would result in additional overheads and  lower performance. We couldn’t be satisfied with such results and that’s why we decided to create a native render based on the Switch library.
Native render is closely connected with the platform’s architecture which means it has faster response times and the highest possible performance because it was designed specifically for the platform. Such a solution took more effort but it was well-worth it: we delivered an impressive performance and optimized essential elements such as graphics to fit into Nintendo limits without noticeably losing in quality.  
key highlights
Adaptive scalable texture compression

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 optimization

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.

Input adaptation

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.

Want to work on similar project?
Check open positions
Let’s talk
Let’s talk