Published On: Thu, Oct 5th, 2017

Epic Details Upcoming Unreal Engine 4 Console, Client and Server Optimizations

Epic’s Fortnite is flourishing to be a resounding success, generally after a entrance of a Battle Royale mode (which has captivated a madness of Bluehole, as we competence recall). In fact, Epic announced yesterday that over 7 million gamers have played Fortnite already, yet it’s critical to remind that a Battle Royale mode is now permitted for free.

Epic is also a builder of what’s arguably a many renouned third-party engine right now, a Unreal Engine 4. While building their third-person MOBA Paragon, they were means to serve optimize a engine for everybody else. The same is now function with Fortnite and a arriving optimizations will impact both customer and server, with a sold eye towards consoles where Epic was means to rise several tweaks to urge a memory footprint.

Once these optimizations hurl out, hopefully other Unreal Engine 4 powered games featuring large online worlds (Dark and Light, Citadel: Forged With Fire, Conan Exiles, PLAYERUNKNOWN’S BATTLEGROUNDS only to name a few) can use them to urge performance.

Building and Rendering a Large Map

The map in Fortnite: Battle Royale has a playable area of 5.5km^2. You can see a whole map during once when parachuting in and we wanted to support prolonged perspective distances during gameplay. We knew that we indispensable to optimize a level-of-detail resolution to make that possible.

fortnite_brRelated Fortnite Battle Royale Officially Out Now and Free To Play

We used a Hierarchical LOD (HLOD) underline in a engine, corroborated by Simplygon, to mix regions of a map into singular low-poly meshes that could be drawn in a singular pull call when noticed from a distance. Those collection already exist – we use them in Paragon – though we indispensable to make changes to concede a artists to be some-more efficient.

The approach a map was damaged adult so that artists could combine on it didn’t filigree good with a HLOD tools. We done some changes to HLOD to improved support that workflow and combined a commandlet to reconstruct all HLODs in a map that could run overnight rather than requiring artists to reconstruct HLODs locally. (Will be in 4.19)

Shipping on Console

The extended perspective stretch and actor depends of Battle Royale presented several opening and memory hurdles on console requiring us to make improvements, quite relating to memory. Much of this work was game-side calm optimization though we also done a series of improvements to a engine.

Here are some of a console improvements, that will boat in 4.18:

  • [XboxOne + PS4] Improved a low-level memory tracking collection to improved brand intensity memory optimizations.
  • [XboxOne + PS4] More fit volume hardness updates, that reduced peak memory by 240MB+.
  • [XboxOne] Added options for opposite describe aim layouts to maximize bandwidth function on a GPU depending on what digest facilities are enabled.
  • [XboxOne] Reduced memory beyond in D3D12 descriptor heaps, and saved 120MB.
  • [XboxOne] Allocated and liberated describe targets on-the-fly to reduce memory use by 100MB+.
  • [PS4] Optimized how we hoop a hardness streaming and defragmentation pools, saving 300-400MB.

While operative on Battle Royale we identified some issues with submit latency in a engine that quite influenced 30Hz games. We were means to make improvements to thread synchronization, shortening latency by around 66ms (the rebate will be around half that in a 60Hz title) to residence this problem. These changes make a conspicuous alleviation to a feel of a game, creation it some-more manageable and easier to aim. (Will be in 4.19)

Server Optimizations

  • Batched turn streaming RPCs to revoke a series of RPCs that need to be sent to clients when they connect. (Will be in 4.19)
  • Make a OS hollow aegis sizes configurable and lift them for Battle Royale. This prevents concurrently joining clients from superfluous these buffers ensuing in extreme server load. (Will be in 4.19)
  • Reduce bandwidth for CharacterMovement RPCs when a impression is not station on any component, such as when jumping or falling. (Will be in 4.19)
  • Added a ability to extent how many players accept updates from a server per frame. We set a extent to 25 in a run and 50 during gameplay. (Will be in 4.19)
  • Limit a rate during that clients send transformation updates to a server. Prevents clients regulating during high framerates from causing extreme bucket on a server. (Shipped with 4.17)
  • Added an choice to not replicate customer ping times to other clients as it formula in a lot of network trade when there are many players. (Will be in 4.19)
  • Removed several memory allocations during riposte in FArchive::SerializeIntPacked and changing how CompatibleChecksum is calculated. (Will be in 4.19)
  • Switched skill form comparisons from strings to FNames for speed during replication. (Will be in 4.19)
  • Added a approach to perspective a dedicated server’s network stats on a customer in genuine time to some-more simply see stats for cloud-hosted servers. (Will be in 4.19)
  • Changes to a ability complement to improved comment for relevancy, which greatly reduces riposte cost when regulating a ability system. (Will be in 4.19)

About the Author

Leave a comment

XHTML: You can use these html tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>