The development of Urban Flight
Urban Flight, a four-chapter custom campaign for Valve’s Left 4 Dead 2, represents my first large-scale mapping endeavor, the product of over a year of part-time work. This is the brief story of how I had some really good ideas and ultimately produced a campaign that reflected none of them.
1: The Design
The gameplay of the original Left 4 Dead suggested that when players were offered multiple paths through a given environment, they frequently would take only one, generally favoring those routes which were shortest or the most likely to contain helpful item and weapon spawns.
The first map of No Mercy featured three street-level paths from the alley to the subway station: straight down the road and around the corner; through the building on the right, which offered a degree of confined protection; or straight past the corner, past the truck and through the building, approaching the subway from the opposite end of the street. Most players chose the first two options. Some never even discovered the third, as it was so far removed from the primary path.
In order to force variety, L4D2 introduced dynamic paths that could restrict the available routes to a given subset on each playthrough. Combined with the ability to query the director’s ‘anger’ -- a factor based on how well survivors were coping -- routes could be random or performance-based. These were great for injecting variety and uncertainty to the game, as even players familiar with the level could not be sure which route they would ultimately take. Valve used them well, but frustratingly sparingly, limiting separate paths to a few maps, and within a relatively confined area (e.g., the cemetery).
Take It and Run With It
But what if a campaign was designed with dynamic paths explicitly in mind? What if routes could separate enough that players might not see entire set-pieces? What different paths had different crescendo events? What if a single level was dynamic enough that paths get adjusted repeatedly over the course of the map, adding shortcuts to help struggling players or adding roadblocks in front of more capable players? What if a path could diverge enough to to force players through an entire separate map?
Urban Flight’s initial concept therefore featured a large city, using dynamic paths on a much larger scale than displayed in L4D2. An entire city block might never be seen in a session; multiple crescendo events could be randomly selected based on which path the survivors took; potentially even an extra middle map might only taken if the players were doing exceptionally well.
Lacking the ability to record new survivor dialog, creating any substantial story would be nearly impossible. Instead, the simple theme of evacuation -- a need to escape the city -- would serve as the guiding motivator. Two points of reference were established in order to provide direction from beginning to end — distant spotlights, and the main boulevard across town.
The spotlights are conspicuously visible early on, but only later are the survivors given to understand what they mark. A row of palm trees would line the boulevard median in order to give it a distinct look. Whenever survivors are forced to temporarily stray from the boulevard, they would always be able to recognize it upon return, reassuring them that they are on the right track.
The Best Laid Tracks Plans
Initially, the boulevard was to accompany an elevated train line. In addition to guiding the players, this additional landmark would set up the planned finale -- an evacuated train station. Players would have to fill a generator to restore power to the station (electrifying the rails in the process), and then wait for the rescue train to arrive. The second map would even feature the survivors getting on the elevated train track. The collapsing radio tower did not just fall onto an adjacent building, but instead would create a bridge to the tracks, which survivors would then follow to the next station. Several problems existed, however. With minimal modeling expertise, falling back on brush-based geometry did not offer an acceptable degree of detail or realism. Ultimately the elevated train was scrapped, and the finale was modified to a different locale -- an airfield.
Adapting the train station to the airfield had little effect on gameplay in the finale. While the arena changed cosmetically, the sequence of tasks is virtually identical. As the ultimate bonus, using a plane for the escape vehicle added the perfect wordplay to the campaign title. It’s ludicrous to think the campaign once bore its title yet never involved an aerial escape.
Another high-level goal for the campaign was depicting a city under evacuation through scripted environmental events. Survivors would spot cars attempting to escape and unknown survivors attempting to hold off or escape from the infected. Approaching an intersection, three military Humvees would dart out from around a corner, quickly abandoning their posts. The third would skid on the tight turn, slamming into a gas station pump and igniting a deafening blast. Many ideas were scrapped due to limited resources, primarily with modeling and animating dynamic events. A select few managed to make it into the final version.
While limited to only four maps, the campaign would cover a diverse and varied environment: a lower-end shop district, a warehouse district, apartments, a hotel, a harbor, a park, and an airfield. This would work to maintain player interest in exploring the environment, prevent environment fatigue, and provide a readily-apparent sense of progress through the world.
2: The Construction
The chapters were first designed on paper, sketching out a broad path that zigzagged along the boulevard. Routes that seemed too straight forward were deviated from. Routes that seemed too convoluted were simplified. Building entrances and exits were worked out, as were infected entryways -- overhead balconies, nearby fences, rooftops. Vertical variations were worked out, as were transitions such as stairwells, one-way drops, and ladders. Most areas were only sketched out to a fidelity of detail that influenced gameplay, such as visibility-blocking buses or attention-grabbing lighting. Much was left to be determined while later building and decorating the environment.
Connect the Dots
Levels were built from the safe rooms out, following a rough blueprint detailing the path survivors would take while allowing for freedom to move areas around, or to lengthen or shorten parts of maps without affecting the fixed endpoints. Source’s “instance” feature was used extensively, both for repeated mechanics such as alarmed cars and axe-holders, but also for constructing buildings or portions of city blocks as isolated environments. This allowed areas to be easily redesigned -- or swapped out entirely -- without affected the map as a whole. Individual areas (such as the radio station) or mechanics (such as the collapsing tower) could also prototyped this way, independent of the larger map.
Initially, the campaign was designed as a generic urban city, similar to the northern cities of the first Left 4 Dead. In order to inject much-needed visual flair, the streets were redesigned to more closely reflect Valve’s depiction of the urban south. The city in Urban Flight is not New Orleans, though Mobile, AL was used for reference images, and the two cities share similar architectural conventions. Balconies were added to bring buildings in line with Creole architecture, concrete alleys were recast as planter-filled courtyards, and various setting-appropriate props were added, including french colonial lamp posts.
The idea for the witch-infested brothel was given to me, insistently, by Sean Walker, a fellow Left 4 Dead player. This cannot be stressed enough.
Survival of the Fittest
Playtests were performed regularly throughout development, though admittedly with a narrow selection of players. Both inexperienced and expert players were recruited to play the map, allowing level length and difficulty to be refined, and major defects and exploits to be revealed.
Prior to the Gnome Depot, an area of deep roadwork lies adjacent to an empty lot and bookstore. Initially, that spot was occupied by an abandoned brick warehouse that survivors were forced to enter, ascend to the second story, avoid holes in the floor, and ultimately drop out a one-way window back down to the street. It was a visually uninteresting space that didn’t mesh with the southern aesthetic, and posed gameplay problems, such as giving the map a one-way drop (in additional to the later, post-Depot drop into the canal) so early in the campaign. It was cut.
Dynamic does not equal dramatic
The most startling revelation was that not all environments are created equal, and not for immediately obvious reasons, either.The aforementioned warehouse, for example, had great potential for gameplay, even compared to what now occupies its space. However, the gameplay of a room with holes holes that they could be smoked through, or drops they could be charge off of, didn’t play well so early in the level when survivors were healthy enough to be nimble, before ‘almost-at-the-saferoom’ tension could set in.
In areas where paths could diverge significantly, playtests revealed certain areas to be consistently far more fun for players. Dynamic paths did not always lead to dramatic experiences.
In the earliest build of the first map, the Gnome Depot was one of two possible routes from the boulevard to the canal, the other being the side street. While both offered equal degrees of potential survivor protection, special infected opportunities, and item spawns, players found the dark aisles of the hardware store more enjoyable to fight through than yet more of the street.
The side street was removed, as was an alternative map 2 route that could not hold a candle to the failed safe room and its potential encounter, even though that other path had its own unique event, as well as a trip across the skybridge.
Also scrapped from map 2 was a progressive path-builder that could repeatedly adjust the path throughout the first half of the level (up until the radio station) based on players’ success. Mercifully shorter routes were opened for suffering players, while healthier survivors were forced to take longer paths. While the technical implementation worked flawlessly, shortening the level for players actually reduced the tension and challenge of the level too much, negating the emotional highs and lows of the experience.
A similar “shortcut” path in the third map -- immediately after returning to the street following the hedge maze -- was also scrapped in a post-release update, as shortening the path before the crescendo event cut off survivors from additional potential item spawns and rescue closets.
While removing instances of dynamic paths went completely against my initial plans for a dynamic city, it allowed for a more finely-tuned experience in more detailed environment.
Rough Around the Edges
Level construction itself went well, but was hampered slightly by issues stemming from mapping inexperience. Many elements of the geometry, especially where the streets are concerned, are slightly-off grid. The width of the streets, the established convention for gutters and curbs, all of these should have been planned and built in a much more organized, modular way. As it is, for example, all intersections in the first map are slightly different, and the way they are blocked out created long-term modifying and texturing problems. Natural (and unnatural) lighting took some time to refine for certain areas. While sharp, severe shadows were desirable for much of the campaign, the lightmap scale in many areas had to be simplified for the sake of file size and compile/load times. Source engine optimization took a particularly long time to become accustomed to.
4: The Release
Urban Flight was released on l4dmaps.com and l4dmods.com on October 30, 2011. It was well-received, quickly earning a user review score in the low 90’s. The post-release plan was to support the campaign by fixing cosmetic, gameplay, and performance issues discovered by players. In this regard, players were extremely helpful, often uncovering bugs that hundreds of hours of playtests did not pick up. In rare cases where an issue could not be fixed, or a player misunderstood what was happening, every effort was made to explain and resolve the situation. Five days after release, the first patch addressed 40 issues. Over the subsequent year and a half, well over 400 additional changes were made over 10 updates.
The third map’s bridge crescendo event saw a major change. Initially, two drawbridge spans existed on each side of the river, opening and closing in tandem. After the bridges were lowered and the gates were opened, survivors were instructed to run across with infected at their back, raising the bridge behind them after crossing the final span. However, spread-out teams could become separated, cut off by the raising drawbridge, with one or more survivors trapped on the bridge. The second draw span was quickly removed. With the last updates, the radio rooftop received an overhaul, making it a more dynamic environment for both a crescendo and (new!) survival gameplay. Further optimizations decreased file size, decreased load time, and increased performance.
On January 17, 2013, the campaign was released in the Steam L4D2 Workshop, where it is the second-highest rated campaign, with a five-stars and a 97% positive rating.
Work faster and simpler
When blocking out the level in the editor, I frequently found myself making art passes on areas while building them. My attitude at the time was one of “I’m going to have to decorate the level at some point anyway, might as well do so now and make it look better.” This was a mistake. It was a frequent distraction, and much had to be repeatedly changed and adjusted as the levels evolved. I should have limited myself to using simple shapes while putting together the basic geometry of the level, worked along the grid, and only added props and textures essential for gameplay. The faster the levels came together, the faster they could be playtested and iterated upon.
This is an area where early standardization of level elements would have been tremendously beneficial. Determining things like the proper width of the road and sidewalks, the height of rooms, and the width of hallways first would have made construction simpler, and would have saved development time by prevented having to re-adjust large portions of the campaign later.
Realism is boring
One thing learned from diving into reference photos is that the world is boring. Specifically, many real-world environments are visually boring without being conspicuous. They exist in the real world, so our minds rarely perceive them as such. Many walls are flat, undecorated, or unmarked. Huge surfaces bear endlessly repeating textures. Vast areas are flat or uninterested. It’s only when experienced within a game -- a consciously fabricated environment -- that these things stand out as being uninteresting or, illogically, unrealistic.
Once upon a time, I heard a term used in relation to a Valve game: contrived realism. Simply put, it means presenting a game world in a seemingly realistic, believable way, that doesn’t entirely hold up under scrutiny. At first glance, things look correct, facilitate gameplay well, and make for an interesting environment. But why is that fence there? What purpose does that serve other than to block my path? And why do all these roads seem to end in illogical dead-ends? Why is this railing just high enough that it can’t be jumped over? Games are packed with examples of this. Some are subtle, some stand out, and most of exist out of necessity.
Urban Flight is flat. Too flat. As I was still learning how to map for the Source engine, going crazy with things like winding roads and hilly terrain, was an extra complication on top of the general complications of learning everything. As a result, the campaign’s signature boulevard is a long, straight, flat road. While various areas of the level have their own highs and lows, much of the terrain is flat. It’s functional, but precludes some more interesting gameplay experiences. It’s not enough to environmentally realistic if it makes for a less interesting gameplay experience.
Playtest sooner and never stop
Undertaking the project in my free, non-working hours meant that progress proceeded somewhat slowly. Levels came together and evolved gradually, and I fought an internal struggle of needing to accomplish more before another round of testing. A session of Left 4 Dead can run a few hours, so better to have as many changes as possible on display. I should be less afraid, and been more willing to submit users to the half-finished, imperfect areas that were being iterated upon in order to get faster feedback.
The Steam Workshop is Amazing
The campaign was originally released on L4Dmaps.com, a platform which requires users to manually download each new version of a campaign. With the burden placed on the users (who do not check for updates everyday and don’t want to redownload the same campaign every day) campaigns cannot be easily updated in continuous releases. The Steam Workshop, with automatic updating to keep users synced to the most recent version of the campaign, would have been invaluable for rapid updating and testing during development.
Different map transition points
In playtesting, the map lengths seemed appropriate. Long enough for players to barely scrape to the safe room, hurt but victorious. Long enough to feel that each leg of the journey spanned a sizable chunk of the city. Long enough that scavenging for items mattered. Certainly not so short that players breezed through with little difficulty, reaching checkpoints with adequate health even before a fresh health kit. In terms of beginning-to-end distance, the maps are barely longer than the stock Valve campaigns.
Ultimately, some post-launch players felt that the maps were prohibitively long, specifically criticizing the mental and emotional punishment of being set back a full quarter of the campaign when dying so close to the end of a given map. This element of “wasted time” when failing to make progress has always been present in Left 4 Dead campaigns, but numerous players indicated that Urban Flight was particularly brutal.
While I had deliberately styled the pacing of the campaign on other four map campaigns, such as Swamp Fever, it’s likely that there was wisdom to be in breaking up the campaign into five chunks like The Parish, with a comparably short opening chapter, and marginally shorter subsequent chapters.
Moving the existing map transition points and breaking the map into five pieces would have had three major benefits: improving the “grind” for warier players, allowing each map to be figcaptioner in file size and area, and allowing each map to be more tightly detailed as a result of the figcaptioner area. That last point is more of aesthetic than functional, but even with many of the engine limits maxed out, the campaign has always seemed a bit sparse.