Epic Games' newest title, Fortnite, may well be familiar to you, especially with the release of the free Battle Royale mode hitting the headlines. It's definitely familiar to 7 million players as the game hit that milestone earlier today. Announced via Twitter, new features to the game, including a duo option for the Battle Royale game mode and supply drops.
The developer has also decided to share some of the secrets behind the development of Fortnite's Battle Royale mode and how that has benefited all users of Unreal Engine. "In the course of developing the Battle Royale game mode we’ve made many performance, memory, and workflow optimizations that not only benefit Fortnite: Battle Royale but every developer using Unreal Engine 4, especially those building games with similar requirements," wrote Nick Penwarden for the blog. "All of these improvements are already available in both Perforce and GitHub. Many will ship in Unreal Engine 4.18 this month with the rest shipping in 4.19."
"Our first challenge was to optimize the dedicated server so that it could handle 100 simultaneous players, maintain 20hz, and minimize bandwidth. With every frame the server sends updates to all actors near that player. That means for each player we need to determine all relevant actors, figure out what has changed on those actors, and send a packet to that player with the differences. In order to minimize CPU time and bandwidth we need send the minimum updates needed to provide a good experience for players. Much of this work was profiling and optimizing the game code but we also found many engine optimization opportunities along the way."
The work on the engine was not just limited to handling the volume of players but also the large space required for them with Fortnite's 5.5km2 map. "We used the Hierarchical LOD (HLOD) feature in the engine, backed by Simplygon, to combine regions of the map into single low-poly meshes that could be drawn in a single draw call when viewed from a distance. Those tools already exist – we use them in Paragon – but we needed to make changes to allow our artists to be more efficient.
"The way the map was broken up so that artists could collaborate on it didn’t mesh well with our HLOD tools. We made some changes to HLOD to better support that workflow and added a commandlet to rebuild all HLODs in the map that could run overnight rather than requiring artists to rebuild HLODs locally."
You can read more, including how the console versions were optimised, by visiting the Unreal Engine blog.