The multiplayer maps are varied in size and offer fantastic layouts. How did the team approach designing these stages?
Multiplayer Design Director Ryan Cleven: In Gears of War 4, we wanted to make maps that felt like they belonged comfortably within the legacy of the previous Gears games. In Gears 5, we wanted to push the boundaries of what it meant to be a Gears of War map. We wanted to push further out of our comfort zone and try things that we hadn't done before. We broke the axis of symmetry on a few maps, making them rotationally similar instead of simply symmetric. We added a lot more dynamic elements that have significant gameplay impact. We pushed verticality further than ever before. We tried more organic shapes with terrain meshes that don't normally work in the Gears cover system.
Beyond the regular 5v5 maps, we added a completely new system with our modular tile system. We modified the game to load a recipe of tiles to create a layout for PvE or PvP modes. We used procedural systems in combination with a map builder made specifically for Gears 5 to make our new Escape mode.
Considering Gears 5 features new AI, can you talk about what has been improved upon here since Gears of War 4?
Studio Technical Director Mike Rayner: We added support for flying creatures and volume-based pathfinding, which was used to good effect by the new swarm flock enemies in Gears 5.
Player-initiated combat was a new addition to Gears 5 and to support that we enhanced our sensing systems [to] support a more robust idle state with idle behaviors, and introduced a new alert sensing state with dead body detection, investigating noises, and more.
We also added a number of new AI systems to support our game's needs:
- Influence maps (used when pathfinding and searching for cover)
- We replaced the Environment Query System (EQS) by a line of sight caching scheme (similar to our cover-based LOS caches), which allowed non-cover based enemies to efficiently use the space around them.
- Smart AI Objects for idle interactions with the world (replaces many scripted moments)
- A Tactic system to allow for coordination between characters
- Dynamic combat zone tactic to distribute enemies around larger combat spaces
- Flanking tactic, Banzai tactic
Navigation Tools and Systems - we provided an expanded tool set for designers that included:
- Moving navmesh platforms with navigation between the platforms
- Rotating and stitching navigation meshes and volumes to support our procedural game modes (e.g., Escape)
- Dynamic open-world navigation mesh building
Gears 5 is a visual showcase that not only looks great but runs well across a variety of platforms. How did the studio optimize the game so well?
Rayner: From the outset of the project, we targeted 60 fps against a fairly low-spec CPU (Xbox One and equivalent min-spec PC CPU). We knew the CPU was going to be our primary bottleneck, so we invested to keep our simulation as lean as possible. We took advantage of UE4's multi-core
parallel rendering, parallel animation and physics support along with our own custom multi-core optimizations to leverage multiple cores and scale performance across a wide range of CPUs. We also invested in some custom simulation LOD management, which would dynamically adjust local client simulation fidelity of characters and VFX to fit a fixed time-budget. While we embraced Blueprints for prototyping, we carefully monitored performance and moved heavier systems and common patterns into
C++ code to keep the simulation lean.
For engine performance and visual settings, we leveraged Unreal's
scalability options, properties, and console variables to good effect to ensure the game is optimally tuned for each platform. We defined clear budgets for content which we validate on development PCs. This along with UE4's Static Mesh LOD and HLOD systems, and using dynamic temporal upscaling allows us to scale our content to look good and perform across a wide range of PC hardware from min and recommended to ultra spec PCs as well as consoles [like] Xbox One S up to Xbox One X.
We chose a reasonable minimum spec for PC and console to ensure memory and performance was kept in-check across all devices, we validated this through automated testing and telemetry from play-sessions.
Penty: We daily tracked our percent at 60 fps for all of our levels in our QA playthroughs (example: 85 percent at 60 fps). Our performance reports would also include stats like "Bound by Render Thread: five percent of the time," so we knew what threads would be holding up performance. This allowed our technical art and engineering teams to jump into a level with an idea as to what had to be brought down (example: Render Thread bound might imply we have too many shadow casters or too many objects drawing). While we were focusing on the content optimizations daily, I would usually be tuning the global scalability settings per platform/per game mode/per split screen setup, massaging the performance profile.
How important was it to have access to Unreal Engine’s
source code for the development of the game?
Rayner: Having access to the source code was crucial to the optimization, debugging, and agility of AAA game development. The ability to diagnose game issues though engine source level debugging is critical to solving subtle issues in our game's implementation. Source access allows us to back-port bug fixes and improvements from Epic without requiring a full-engine upgrade and allows us to fix and make improvements to the engine directly (often contributing these changes back to Epic). Reading source code, and engine developer comments enables our team to understand the engine at the same level that Epic does, which gives us confidence we are using it effectively, and when absolutely necessary a pathway to extend and evolve the engine directly to meet our needs. We rebuild the engine from source ourselves, which enables us to work with newer versions of compilers, and leverage runtime/game specific compiler and linker optimization like performance guided optimization.
Gears 5 features both three-player local and online co-op. Was this a technical challenge to implement?
Rayner: Unreal Engine supports multiple viewports and has split-screen support, so a lot of the low-level support is in place. We invested in input/focus management to support multiple user sign-in to ensure this was a good user experience. Performance is always a challenge with multiple view ports. On Xbox One S, we needed to hold the same fps in split-screen as we did in full-screen models. We approached this by defining different scalability settings and visual options for split screen modes, as well as by introducing some detail tags, which allowed us to turn off high detail objects on lower-spec hardware. For Xbox One X, we opted to drop from 60 fps (full screen) to 30 fps (split-screen). This allowed us to retain the highest quality visual settings and native resolutions in split-screen modes, which we think was a good trade off.
Online co-op is also something UE4 supports with minimal effort provided you have implemented networking replication thoughtfully. For co-op, one of the up to three players is a client hosted listen-server, while the others are clients. Thought and effort is required to ensure co-op experiences were replicated correctly, the best approach here is to ensure level designers and engineers are testing standalone co-op to ensure everything is replicating and working as expected as part of the local review process before submitting changes. We had technical level designers and engineers that worked with our level designers to assist with replication (often handled in C++) and to create common reusable systems that abstract away replication and support save/load and checkpoints.
Allowing players to join games in progress over the network also presents its own challenges, particularly since we have few restrictions around when a player can join. They can join as the game is loading, in the middle of a fire-fight, while we’re playing cinematics or transitioning levels, which presents a number of challenges. For example, keeping the experience as seamless as possible, synchronizing our real-time cinematics and transitioning smoothly into gameplay for multiple players is difficult on its own. Adding in join-in-progress and bad networking conditions greatly increases the complexity. We avoid showing loading screens as much as possible, but had to keep them as a stop-gap for the most difficult moments. The key is to have technical content creators in cinematics, animation, and design that can focus on fixing and mitigating those edge cases, while having engineers create a system that is strong and flexible for the many ways that content comes together.
Considering the game introduces a new multiplayer Escape mode that forces players to escape from the Hive, can you talk about what inspired this mode?
Cleven: As fans of Horde mode, we really wanted to create a shorter co-op experience that we could play when we didn't have a full squad together. The original idea was to create a photo-negative of Horde that could stand next to it. Horde is about making a base where the enemies come to you. Escape is about destroying an enemy hive, i.e. You go to the enemy. It still had to be a survival mode just like Horde. The main objective had to still be “survive,” but the twist is you had to find the exit in a maze or dungeon.
The concept drove the need for a new fiction wrapping. We wanted something that got right to the point, with ultra-high stakes that would make sense in the savage world of Sara. The characters still needed to be highly trained like the rest of the Gears, but they needed a different circumstance. Starting with no ammo, with a bomb strapped to their chest, voluntarily getting snatched and waking up deep underground at the heart of a Swarm hive sounded bad ass. It was crazy enough that it felt like it could sit next to a mode where you destroy hundreds of enemies with thousands of bullets.
Was it hard to implement cross-platform support across PC and Xbox One?
Rayner: On the whole, cross-platform development with UE4 is fairly straightforward; provided you follow best practices and stay on top of min-spec memory and baseline performance, everything just works.
Unreal Engine is designed to work cross-platform out of the box and is by and large a device/platform agnostic game engine. For Gears 5, we targeted Xbox One, PC (Steam and Windows Store) and dedicated servers all from the same cross-platform code base. You do have to stay on top of warnings and errors generated by the editor and compiler, which will help ensure your content and code will work across all platforms. Beyond that, if it works in editor, it will generally run without issues on other platforms.
As a cross-platform networked game engine supporting variable time-steps (Delta Time), it is worth noting that cross-platform multiplayer worked out of the box. We did make changes to add Xbox Live cross-platform match-matching and worked on few load-time and extreme framerate scenarios differences causing some timing issues between low and highest spec hardware. In the end, cross-platform development with UE4 is one of its key strengths.
How important was it for the team to implement robust settings options for the PC version of the game?
Rayner: With UE4, we are able to detect a player’s hardware and choose appropriate defaults across a wide range of features and scalability settings to ensure players have an excellent experience out of the box no matter what hardware they are running on.
We believe PC players expect to be able to tune a game to their preferences, which could be ultra-high frame rates, extreme visuals, or any custom combination based on their preference. We have over 35 settings that users can adjust. We believe in helping users understand what they are changing so each setting comes with a detailed description of what the setting does as well as the impact it will have on CPU, GPU and VRAM. In addition, settings that are directly visual come with a preview image for each quality level so users know exactly what they are changing.
We also have a variety of controls to manage resolution and frame rate. All of the expected controls are there, including resolution, VSync, and field of view. In addition to these, we've added ways to manage the maximum frame rate of gameplay and cinematics independently so users can play at an unlimited framerate and then enjoy the cinematics (which are all real time) at a lower frame rate but with higher detail. We've also added a minimum frame rate option that will dynamically keep the game running at a specified frame rate (or greater).
Penty: Overall, Gears 5 is quite a scalable game, especially compared to Gears of War 4. So it scales up beautifully to high-end PCs, or can scale down to low-end hardware. I'm especially a fan of our Ultra spec shadows, volume fog, and reflections, which look amazing.
Did the development team have any favorite Unreal Engine tools or features?
Penty: It is hard to pick a single feature, but for me personally, I'd probably have to go with the temporal upscaling as my favorite feature. It allowed us to really push the visual quality and not worry about the frame getting soft with resolution scaling in-play. My close second would be the Volumetric Fog system and the level of atmosphere it allowed us to add to the game.
Mike Rayner: The
Replay System formed the basis for which we implemented our Kill Cam feature for dedicated multiplayer servers. The Replay system is a powerful addition to the engine, and through it we were able to add this long requested contemporary multiplayer feature to Gears 5 with far less effort than if we were to build the feature from the ground up.
For more information on Gears 5, visit: