Trending
Opinion: How will Project 2025 impact game developers?
The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.
How did the team at Insomniac Games tackle building open-world shooter Sunset Overdrive using a last-gen engine? This informative look back shares design and coding tips aplenty.
Four years ago, Insomniac Games decided to do something exceptionally outlandish when it jumped to a new generation of consoles: build an open-world game on tech and tools meant for linear shooters. That game, Sunset Overdrive, may seem more like formula for success in hindsight, but last week its developers took the podium at an IGDA-sponsored event at Woodbury University in Burbank to explain why that wasn’t necessarily the case.
In a postmortem conducted across three talks by Elan Ruskin, Liz England, and Adam Noonchester, the Insomniac developers explained how they used their engine tools to create an open-world streaming game, how iterating over three cities provided insight into creating spaces for open-world play, and how artificial intelligence built on the pillars of linear shooters could function in a bigger, faster environment.
Ruskin, Sunset Overdrive’s senior engine programmer, began the evening with the story of the game’s engine -- the most obvious artifact left over from the studio's games Ratchet & Clank and Fuse, which had been built as streaming games as well. In this engine, levels were streamed by a trick familiar to those who have played anything from Fuse to Rocksteady’s Arkham Asylum games.
The game has one level loaded in, with a corridor that leads to the next level at the end. Using an airlock animation or cutscene, the player is held still in that corridor while the next level loads, also containing a portion of that corridor. The experience is nearly seamless, and works well for games where the player has only two directions to go: forward, or backward. This deterministic approach to level management made memory allocation relatively easy to handle, and going into next-gen, the engine team would need to throw out much of that convenience to make an open-world game functional.
Sunset Overdrive is not a forward/backward kind of game. It's set in giant city with an unpredictable amount of movement, meaning players may need as many as 10-11 “zones” loaded at any given point to move seamlessly through them. Ruskin talked about how the team could have spent their entire dev cycle building a new engine perfect for managing an entire massive city.
Or the devs could just figure out the sanest way to load one piece of a city at a time. Starting out by defining zones as hexes, they calculated they could tessalate the entire Sunset City map into a series of hexes with a known amount of surrounding regions around each hex. Therefore, using the Xbox One’s more powerful hardware, they could keep those 10-11 zones loaded at all times.
Those hexes evolved into zones of varying shapes, and zones ultimately became overlapping groups of zones, low resolution zones, shadow zones, and mission zones meant to organize and manage the massive amounts of assets that make up Sunset city. Low resolution zones were modified versions of major zones loaded in the distance to keep up the illusion of the constant city -- shadow zones could contain the assets needed for a sidequest within a regular zone, and mission zones could encompass multiple physical zones, containing the navpoints, assets, and actors needed to run missions like chasing a train on a monorail or fighting a giant Chinese Dragon.
Ruskin paused briefly to make one clear point -- managing this zone system was memory-intensive, but not so much that it overwhelmed the new console’s capabilities. With time (and money) the team could have made a more elaborate system, but this was a simple approach to the problem. “Simple’s good!” He declared, flashing to a slide of grade-A Brooklyn pizza. “Pizza’s simple. We don’t have to put pineapple and spaghetti on pizza just because you can.”
After some grousing about how Los Angeles has ruined pizza with avocados, Ruskin moved on to explain the surprises that needed to be overcome. For one, the zone system meant that the order zones could be loaded in could result in one of two scenarios: either the player might rush into a mission zone before the mission had fully loaded -- thereby spawning no enemies and making the mission boring -- or the enemies would spawn before the player arrived with the rest of the mission zone, sending them crashing to the ground like Wile E. Coyote.
The other surprise was that the sidequest structure of all the zones meant that the player could activate an unpredictable amount of sidequests -- possibly all of them -- and reach the end of the game carrying a huge amount of zones loading at a given point, leading to memory crashes. Testers, thankfully, helped catch these scenarios and provide solutions for memory allocation to ensure players could still procrastinate on as many sidequests as they liked.
Ruskin closed his talk by reinforcing the ideals of simple pizza -- working with “good enough” solutions, not letting perfect get in the way of good, and resisting the urge to rebuild key systems. “Every time you start a new franchise, it feels like an opportunity to throw out everything you've done before,” Ruskin explained, “but if you spend all your time doing all that stuff over again, you never do any new stuff.”
Designer Liz England’s story of open world evolution was one of space -- and how it changes when traversal becomes a core mechanic. She began her talk by explaining the origins of Sunset Overdrive’s development, and the three cities used to iterate its design. The first city, Greenlight City, looked more like Burbank, California than the San Frantokyo-esque look that Sunset City arrived at. It had explorable interiors, and it reinforced the early game’s design pillars: scavenge, craft, defend.
In this space, traversal was engineered around something like Ratchet & Clank’s movement mechanics: walk, jump sometimes, clamber up ladders to find loot. The game's signature “Punk Rock Apocalypse” look was part of the aesthetics at this stage, but the rest of the game could actually be described as something closer to Rust or DayZ.
Things changed after an internal game jam -- a lot of team members were trying to sneak skateboards into the game, but the creative designers had mandated “no skateboards.” So oil slicks and trampolines were swapped in instead, and the player’s shoes were just given the capabilities of a skateboard, minus the wheels. Not only did that speed turn out to be fun enough to become a new design pillar, England says it dramatically reshaped the space of Greenlight City itself: “This helped us solidify what is our world metrics -- what our world is, and how does our player really react with our world. That's what traversal brought to us.”
Now that traversal was a gameplay pillar, Greenlight City suffered from two woes -- using the Traversal 2.0 system in interiors paces meant more Wile. E. Coyote-grade impacts into the wall, and the zombie apocalypse architecture built on models from older games wasn’t a lot of fun to engage with at rooftop level. So Greenlight City was chucked out, and replaced with Razor City.
Razor City benefitted from another game jam concept -- new architecture. Looking like a “Neo-Tokyo” esque landscape, as England described it, the traversal 2.0 system benefitted from a landscape with multilayered buildings, lots of interactable objects, and a moving skyline with different kinds of landmarks. In theory, Razor City was going to be the world Sunset Overdrive shipped with.
It was not. Because while the prefab interior spaces were mostly gone, the interior mission sequences weren’t. These were instanced zones, akin to a dungeon from World of Warcraft, that proceeded in a linear fashion and took up space in buildings on the map. One, the “hot dog factory” mission, almost worked. It was a heavily designed mission, set inside this building, whose building didn’t look out of place on the map when coasting by it.
The problem was, this is the only mission that fit the criteria. Other missions took place in buildings that literally fit inside the missions they were supposed to house. Not only that, but their solutions were linear -- a step back from even earlier traversal iterations from the “scavenge” oriented gameplay that was more playground-like.
“Playground” is a word England used a lot in this talk, explaining how the more the team ran into scenarios not approachable from every angle, the more it fit with the new spatial design. The same problem applied when interior missions were just dropped into the open world. “We decided to say, 'When it comes to exterior spaces, you can't do "linear" in these exterior spaces,'” England said. “That doesn't mean gameplay had to be linear, but the path the player took should feel more like a playground.”
Combined with some design baggage where the scavenging/crafting system was still bulky and unyielding yet influencing level design, and unorganized design workflows that meant designers, artists, and other developers were interfering with each other, Razor City also was put by the wayside -- for the final, organized version of Sunset City to be erected in its place.
England thought the team did a lot right by Sunset City -- though she admitted there’s still one piece of the environment blocked off to the player unless they’re in the specific mission. For this open world, nonlinear spaces and nonlinear movement became the center of good design, but Insomniac could only arrive at this point through constant iteration.
Lastly, senior programmer Adam Noonchester explained how Insomniac grappled with AI. The team's track record with linear action games meant the devs knew how to make all kinds of melee and ranged enemies that could engage with the player -- so long as those enemies were rooted in linear encounters.
Designing the AI for Sunset Overdrive meant learning some of the same lessons about iteration, space, and sufficient complexity that Ruskin and England did. Noonchester’s team started off anchoring AI to move towards navclues, while chasing the player to points in a space where, in theory, strong combat encounters would occur.
But in a three-dimensional space with lots of traversal, that opened up a lot of problems: firstly, how to get AI of the base "OD" mutants moving up and down various types of spaces, which was necessary to the AI’s central goals. “Our enemies needed to accomplis two main things: The first, was they really needed to force the player to engage with our traversal system. The second, was that once players are actually up on traversal, they need to test player's ability to traverse and shoot at the same time.”
In Insomniac’s Resistance 3, spaces could be designed around enemies and optimal navclue placement. In Sunset Overdrive, it had to be in reverse. First, Noonchester and his team worked with the animators to create a series of five basic animations that could be stitched together to account for most, if not all movements the base OD would be taking, and could be triggered based on a calculation of where the OD was trying to go, activating drivers passed in from code through a blend node that performed the calculation.
Once the team could get base ODs up and down structures, they needed to get them to the player in an optimal fashion so that it wasn’t just a conga line of dumb AI lining up to be slaughtered. After trying to solve the problem at an individual level, Noonchester and his team switched to organizing the ODs as hunting packs, developing a tool called the “nav position tracker” that sent information to the OD swarm about player position, and optimal attack points near the player. Using the nav position tracker, the team over time iterated new versions of AI that were able to pick different paths based on their angle to the player, add costs to different navclues that added variance to the pack movement, and finally, created volumes generated by the tracker that scanned for optimal ambush positions while in traversal.
Ranged enemies brought about a different set of challenges -- primarily, how would they engage with cover? Once again, solutions arose from experiences making Resistance 3, because it made the various ranged AI, as Noonchester put it, “seem stupid and dumb.” Gathering them by node-based firepoints just made them easy prey, and not a real threat.
The solution, again, involved creating artificial navpoints based on data sent from the player. While some enemies could be situated on perches that served a lot of design value, others needed more complex programming to figure out their position. Ultimately, Noonchester and his team calculated points both inside and outside the angle players could see enemies at, and had ranged units alternate inside and out of cover to vary gameplay. The only remaining solution was to dial in their difficulty, mostly achieved by giving enemies distinct attack patterns designed to reward/punish different uses of traversal.
Noonchester closed the night out with three final pieces of advice for developers thinking about open world AI: “Don’t shy away from thinking about group tactics, If a player can't parse what an enemy, that enemy is not going to be fun to fight, and figure out what kind of response you're trying to get from player.”
With these lessons in mind, Noonchester’s team was able to ship the successfully dynamic AI of Sunset Overdrive -- even while, like his teammates, he was working on the tools and tech built from the previous console generation to light his way.
From left to right, lead UI artist Jaume Mora, Liz England, IGDA LA board of directors member Anne Toole, Elan Ruskin, and Adam Noonchester strike a pose
You May Also Like