About the Project
Camp Hope is a 3 mission campaign for L4D2, which takes roughly 30 minutes to complete. The campaign is set in a military base in the woods of Vermont and is nick named Camp Hope by other survivors. The map supports offline single player, online co-op and online versus game modes.
I worked on this project in my spare time and it took around a month and a half to go from the planning stages to a playable map. A large section of time was spent play testing the level and iterating on geometry and game play feedback. The map is now fully playable from start to finish and would be ready for an environment artist to come on board and start detailing the level.
I decided to take on this project for several reasons. First, I’ve used the Unreal Engine for most of my past projects; I wanted to gain experience of a different engine with different design methodologies. I wanted to test how well I could script events and encounters in a different environment. I also wanted to gain more experience designing and creating single player levels; creating a mod for a pre-existing game was ideal for this. Finally, I wanted to take a project from the planning stages to a game play ready blocked out level, creating solid design documents as I went.
Over the past few projects I’ve been working with a design and planning process that works best for myself but also provides enough information for other team members. With each project I’ve been improving and streamlining the process as much as possible. The process I used is as follows:
Concept – I developed the basic idea for the level in a concept document, from the theme, to the objectives throughout the map and a basic layout.
Pencil Layout – With the general concept ready, I set about drawing the layouts for the map on paper. The aim is to get a general layout, without going into too much detail, as this would likely change when working in 3D.
2D Digital Layouts – With the pencil drawings complete I then recreated them in 2D with Adobe Illustrator. Converting to a digital map layout is an important step as I can quickly create multiple versions of the layout showing different information such as weapon and health locations or the critical path. It also allows for the designs to be shared to other members of the team or used in the level design document.
3D Mock-up and Design Document – The next stage was to create the level in 3D with Google Sketchup. I prefer to use Sketchup over 3DS Max or blocking out in the editor as it allows me to create the layout extremely quickly. It stops me trying to put too much detail into the models and it also produces clean and easy to view layouts for use in the design document. Creating it in 3D here also allows me to find areas that might have looked suitable in 2D but aren’t suitable when viewed in 3D. The mock-up can be quickly changed before spending time on the block out.
I also created the level design document as I went along to ensure all information was recorded. This ensures all my ideas are present for myself and other team member to look over. I try to get as much information and depth into the level design document that time allows.L4D2 - Camp Hope - Level Design Document
Block Out – Finally I set about blocking out the level and scripting the encounters in the L4D2 Authoring Tools. The block out was created using BSP and standard development textures, the scripted events were created using Source logic entities and the input/output system. I was careful to play test as I went along and make changes based on this feedback, more on that in the iteration section.
Wayfinding with Lighting
Lighting in any game is important, but great lighting is especially important in horror games. Poor lighting will quickly kill the horror atmosphere and the player will lose their immersion in the world. I spent a lot of time during the block out working on the lighting; trying to make sure it wasn’t too dark in some area or too light in others and also trying to keep an atmosphere that keeps players on the edge.
As well as using the light to create an appropriate atmosphere I also used it to help guide the player through the level. Players will naturally follow the light, especially in a horror game as it’s where they feel safest.
Here you can see I’ve used a spotlight to guide the player in the appropriate direction. As they arrive at the hole in the fence the spotlight shaft will direct their gaze to the left to where it is lighter. In the immediate distance they’ll see the light outside the doorway to the building. This will draw the player along the critical path for this area. They can of course explore to the right side of the hole, but naturally they’ll want to go to the left. The watch towers and spotlights also help to reinforce the military base theme.
Here you can see the spotlights almost create stepping stones along the main path. The player should subconsciously know this is the right direction as the spotlight beams are facing in the direction of the critical path and parts of the ground are lit up which will pull them along.
Another example is where I’ve used the light to draw the player to an objective; here the players need to activate the button to start the scripted event, the light highlights this to the player and naturally pulls them to the correct area.
Unlike most first person shooters which feature designer placed enemy spawns, L4D2 features a Director AI which is in charge of where enemies spawn. The AI decides what type to spawn and also any special events like large zombie mobs or special zombies. This makes it difficult for designers to create scripted events using zombies; therefore these types of events are usually best avoided. Instead of creating scripted enemy encounters, I used the design of the geometry and layout to create challenging and interesting sections of the level.
One good example of this is shown below. Here the players need to travel across a crashed tanker, if a player is knocked or pulled off the tanker they’ll need to travel back through a section of the level alone or hope the rest of the team joins them. This is referred to as a ‘Return’ by Valve.
Another example is where players are traversing the roof tops and need to pass over narrow planks between the buildings. These areas are perfect for special zombies to attack and force players down into the horde of zombies below. Windows along the path also create places for zombies to ambush the players as they move across the rooftops.
When creating any scripted events I made sure to ensure they wouldn’t become predictable on future playthroughs. I used a mixture of randomised logic and director queries to create scripted events that will keep players on their toes each time they play.
One example of this is in the laboratory section. The survivors enter the laboratory and find some containment chambers occupied by zombies. I’ve scripted this section so depending on how well the players are doing the Director AI will decide whether normal zombies will spawn or more difficult specials will spawn. I also used the director query and a randomiser to decide if the containment doors will break open when players get nearby. By utilising these methods I ensured that on future playthroughs the player won’t be able to predict what happens.
One of the most important processes in games development is iterating on designs. No matter how well anything is planned, it’ll never be quite right the first time. Iteration on this project didn’t just start during the block out phase. Each time I re-created the level layout during the design phase, such as going from 2D digital to a 3D mock-up I was making changes to improve the level.
I made sure to start play testing the level as soon as I started creating the block out, first working to improve the flow and layout of the geometry, then moving onto improving the scripted events and navigation meshes. A lot of time was spent ensuring that any scripted event would continue to be interesting and surprising for players who replayed the map (which is common for L4D2 players).
Play testing during development also highlighted several areas of the map that needed work to improve the player experience and also areas that I could further expand upon the story of the map. Some of these areas are shown below.
On the original plan, the survivors would pass through this area quickly by climbing up over an overturned tanker to get past the fence. Through playtests, I found that this area posed no real challenge to the player and the space could be better used. Instead, I created a scripted obstacle. The survivors would need to travel into the buildings and then underground to activate the backup generator and then power up the security system found on the top floor of the nearby building in order to open the gate. This change along with the panic event created a far more challenging, entertaining and memorable section of the level.
Another area that changed after playtesting was the underground facility at the start of mission 2. Here, I previously planned for the survivors to move through a corridor and then straight into the elevator section. I realised after playing through the map that I could use this section to add more depth to the story of the level. I added an additional section before the survivors reached the elevator which took them through a laboratory. This section first showed a zombie inside a containment chamber (which opens up to surprise the survivors) and then leads them through to another section showing more containment chambers that have been breached. This leads the survivors to believe that the reason the secure facility was over run might be due to the experiments escaping from the laboratory.
Iterating on the level from the very early planning stages and throughout the block out phase improved the player experience of the level greatly. Making changes based on feedback is an important skill for any level designer to have.
Overall I’m pleased with the result and the extra knowledge and experience I’ve gained from this project. I would also love to revisit it at some point and take it all the way though to a completed L4D2 map.