Above is a picture of the old version of map 03, the garage, from 2009. While that version of the map played alright, there was still a lot of room for improvement. At the time it was too similar to the Episode 1 garage. In mid 2010 we debated about what we wanted to do with the environment heading into the end of the year. At that time a lot of the enviroments in-game had already been heavily revamped during what we considered our 2nd art pass phase. We decided to start a new version of the garage from scratch. Doing this marked the beginning of our Third Art pass phase, which became the final and most inspirired art pass. So far it's seen the majority of our content go way beyond how it used to look and feel, as well as started the entire total conversion aspect of asset overhauling.
Through redesigning this area, it eventually went from that, to this:
Instead of being a series of strung together small to medium semi-destroyed garages like the old version and like Episode 1′s garage, this version takes place nearly entirely in one large collapsed underground garage. The main floor area includes the expanded Antlion Guard fight while the rest of the garage is an upward explorable zombie adventure to the surface.
While this new garage was an improvement, the layout was still very rough and the art still left a lot of room for improvement. Nearly all of the debris and broken concrete slabs in the version pictured above were made from displacements or brushes and the entire garage used mostly stock Half-Life 2 content, which included the debris piles mentioned in a previous blog post. Over the next few weeks we set out to replace or edit most of the stock content used in the map and replace the brush/displacement placeholders with proper models.
We tried to keep all of the models very modular and tried to use the same textures as the remaining brushes in the garage to save on texture memory and keep a continuous look. On certain models separate damaged materials or modified normals were used to give the models a more damaged look compared to the remaining sections of the garage still somewhat intact. Along with the new models we refined the layout, lighting, and post process effects. The latest version of the garage uses nearly all custom content or modified stock content and came out much more unique and exciting than the previous garage. Below are a few shots of some of the modular models used in the environment and a screenshot of the near-finished garage.
We modified the stock Valve concrete wall textures in these models, desaturating them to fit the color theme and oldness of the garage a bit more. We wanted to make sure the Garage felt like it had been abandoned for quite some time, and antlions utilized it as their home. Eventually to stay consistent with the rest of our asset conversion, we ended up completely repainting all of the garage textures from scratch, including creating a variety of blends for both the models and brush surfaces. Bumpmaps were also eventually added to models the broken models pictured above, where the bumpmap completely handled adding detail to the surface via light angles, versus directly painting it on everywhere.
Later on during the art pass process we started talking about adding in foliage. Foliage played a pretty big part in conveying the garage had been abandoned for a great deal of time.
Why did we change it?
- It was Ugly. Art wise we’ve been spending a lot of time transitioning from stock Hl2 content to fully custom generated content. This ranged from models, sprites, and even soundscapes. This was the first map were we fully went into the “entirely custom content” test, and went wild with it.
- It was Dark. The previous map was super dark. Monotonously lit throughout. Early on we knew the entire lighting mood and theme had to change, so we went with the inverted of what Episode featured: Warm lighting, and mostly fire lit sections with occasional lights that still had power. This overall change added a lot of color variation throughout making the garage feel slightly more vibrant than previous. The next biggest change was the central light source. We put a big sink hole in the ceiling of the garage and redirected the sun to cast right down into the garage. For light bouncing we rigged up a couple of fake light entities with a fairly large constant. The Guard battle takes place on the lowest floor, where the majority of the sun light is hitting. This was an art choice we were very happy with, as the light not only acts as a vista or center piece for the environment, but also functions to light up enough of the gameplay areas, a problem we had with our previous garage.
- Gameplay was boring. The guard battle was pretty disappointing in the older version of the garage. You killed him, then progressed through a fairly empty layout gameplay wise. In a later version of the garage we created an entire side section to the main complex, where the guard battle would take place. This made the area funner than before, but was still not as great as it could have been. In the latest revision of the garage we spawn in antlions randomly throughout the base floor. Also, because the ground is mostly debris and dirt, the Guard can now bark to summon antlions to aid in the fight. The battle instantly went up in scale.
- Needed better embedded story telling. Another missing aspect of the environment had been explaining why the garage was so heavily damaged. The 7 hour war was already enough of a reason for us before, however, we still wanted to go that extra mile and try to add a little more pizzaz that also helped extend the gameplay in that area. The garage became a Rebel owned location, taken over by antlions. We litered the map with supplies and and rebel fortifications and traps for the player to have fun using. At this point in the game the player has already encountered quite a few zombies. We didn't want to make zombie combat tiring, even though we heavily use a new introduced enemy here. Rebel traps and fortifications really added a fresh perspective on zombie gameplay, while adding embedded story telling elements.
On the fly editable fog
Fog has played the largest role of really making an area feel right. So much that we completely tossed the valve stock fog system. Gone are the days were you have to recompile your map to see fog changes. For city17 we created a custom fog system that can be changed real-time.
How it works:
- Player steps into a brush based entity volume
- Volume looks up a fog script instance and then fades an existing fog to that, or turns on/off fog if the script defines. THis works by sending these values to the fog master entity in the world.
- Fog can be changed if the player leaves the volume, and the volume defines to use a new fog for leaving.
Anyone who's work with left 4 Dead 2 might be familair with how the fog system works there. This system is fairly similair, though without the need to recompile your map. A fog script instance looks like this:
"subway_fog_interiors" -System name for the volume to lookup
"primarycolor" "47 45 43 255" -Color of the fog
"secondarycolor" "73 67 67 255"
"start" "-1" -Distance to start fog intensity
"density" "0.45" -Controls the overall density of fog
"farZ" "99999" -Where to cull the world
"lerpspeed" "0.01" -Speed that defines fade time for the fog system when the player steps into a volume
This system allows us to literally have an infinite amount of fog variations, without ever having to exit the game, or recompile the map. SImply change the fog values, save the text file, then noclip out and back into the volume you are editng. Easy as pie. On average we have about 7-10 different fog setups for a single map.
Thats all for today! Stay tuned for another update tomorrow! Follow us on Twitter for updates on what's going on in development, as well as our blog for City 17 and other development news from us. If you'd like to get in contact with us, be sure to email us at firstname.lastname@example.org.