L4D Level Design/Checkpoints
- Getting Started
- Your First L4D Level
- Ladders
- Visibility
- Nav Meshes
- Checkpoints
- Checkpoint Rooms
- Outdoor Levels
- Level Organization
- Level Standards
- Clip Brushes
- Elevators
- Panic Events
- Breakable Walls
- Finale Events Part 1
- Finale Events Part 2
- Finale Events Part 3
- Additional Finale Components
- Nav Flow
- Advanced Nav Editing
- Versus Maps
[edit] Checkpoint Requirements
In the last section, you made the simplest nav mesh that a level can have. The nav areas were marked from "PLAYER_START" to "FINALE". This allowed the flow to compute for the director to properly spawn in the Infected. There are other types of flows that Left 4 Dead uses. Every campaign consists of 5 levels:
- Level 1: PLAYER START to CHECKPOINT
- Level 2: CHECKPOINT to CHECKPOINT
- Level 3: CHECKPOINT to CHECKPOINT
- Level 4: CHECKPOINT to CHECKPOINT
- Level 5: CHECKPOINT to FINALE
A Checkpoint Room is the room that transitions from one level to another. To make a checkpoint room, you'll need to have several things set up in your level:
- A Checkpoint Door – that the player uses to enter the room
- An info_changelevel brush entity
- An entity called an info_landmark
- A nav area labeled as CHECKPOINT inside the room
- A level to transition into
The destination level also requires several things:
- A Checkpoint Door – that the player uses to exit the room
- An info_landmark with the same name as the previous level
- A nav area labeled as CHECKPOINT inside the room
- An info_survivor_position inside the Checkpoint Room
[edit] Creating a Checkpoint Door
Let's start with the checkpoint door.
Open your level called "tutorial03.vmf" in Hammer.
In the Camera viewport, go to the upper story area in the 2nd room you created and look at the wall above the platform you created.
Click on the Entity Creation Tool on the Tool Bar and select "prop_door_rotating_checkpoint" from the Objects drop-down menu.
In the Camera viewport, look at the corner where the platform meets the wall and left-click to place the prop_door_rotating_checkpoint.
Open up the Object Properties dialog box by pressing Alt+Enter or by going into select mode and double-clicking on it.
Click on the World Model row and click on the Browse Button on the right side. Type "checkpoint" in the Filter and select the model "checkpoint_door_02.mdl".
Click on the OK Button.
Now, change the following properties:
Name: "checkpoint_entrance"
Pitch Yaw Roll (Y Z X): "0 270 0"
Disable Shadows: "Yes"
Spawn Position: "Open counter-clockwise"
Click on Apply and then close the window.
You should now see a checkpoint door model in the Camera viewport.
Position the door so that it's sitting on the platform floor and inside the wall at the middle of the thickness of the wall. You may need to adjust the grid size to move it into position.
Now we have a place on the wall where we want to cut a hole for the door.
[edit] The Clipping Tool
Instead of scaling and duplicating this wall brush that we need to cut a hole in, we're going to use the Clipping Tool to split our brush into the sections we need to make the hole.
Select the wall brush that the checkpoint door is sitting inside.
Click on the Clipping tool icon on the Tool Bar to go into the Clipping tool. (You can also press Shift+x).
In the Top viewport, left-click and drag down where the left edge of the door is.
Let go after the two points form a vertical line like in the image above.
You should be left with the brush split into a white outline and a red outline with the helper nodes of the clipping tool in place along the middle. The white outline signifies the part of the brush that will be left behind and the red outline shows what will be deleted.
Press Shift+X once. This will flip which side has the white outline and which side has the red outline.
Press Shift+X again. This will change the clipping mode to keep both sides of the split.
Press Enter to make the split. You can press Esc to exit the tool without any changes made.
Now that we have one cut made, we need to make a couple more. Select the wall brush with the door still sticking in it and enter the Clipping tool again.
Decrease your grid size so that you can accurately clip along the edge of the right edge of the door and then left-click and drag to form a vertical line down that edge.
Press Enter to perform the split.
Select the brush that the door is still stuck inside and raise the bottom of it in the Side viewport so that it lines the top of the door model.
We now have the hole for our checkpoint door to sit in.
Remember that now that we've created a hole in our level, we need to seal it. We will seal this hole with the checkpoint room.
Select the checkpoint door again for now and you'll notice that it has a blue sphere in the middle of it in the Camera viewpoint and a circle in the middle of it in the other viewports.
In the Top viewport, left-click and drag to the left edge of the brush.
There should still be one circle/sphere at the center of the model. Drag this one to the same spot on the Top viewport but also drag it down in the Side viewport so that its under the first one that you dragged.
What you've done is make the prop_door_rotating_checkpoint use this line as the pivot for which way the door rotates.