L4D2 Level Design/Gauntlet Finale

From Valve Developer Community
Jump to navigation Jump to search

Gauntlet Finales were introduced into Left 4 Dead 2 with The Parish campaign. Rather than having the player holdout at a specific location, the Gauntlet forces to player to hurry to the end of the level, where the rescue vehicle is already waiting for them. In The Parish, the players must run across a bridge to make it to the evac helicopter. This article will demonstrate how to successfully create a working Gauntlet Finale, and customize it to your liking.

The article assumes that you have a good grasp of working in Hammer and are familiar with the way Left 4 Dead entities work.

Safe Room

This is where you'll begin your gauntlet, it all begins with a simple safe room. It's highly recommended you use an adequate amount of medkits, as well as throwables and secondary medical items. In The Parish, there are 8 medkits in the saferoom, four throwables, and one melee weapon.

A simple safe room.


Map Layout


A Simple Safe Room.

This is the most important part of the finale, the path the player takes to his escape.


The Entities


Collision brushes.

The second thing to do is to put in a couple of nodraw-textured brushes so that the player and objects will appear to collide with the locker. Valve left the locker with no collision model of its own probably because it would require more expensive VPhysics calculations to include one (since the locker is a concave shape), so brushes are used to act as the solid sides and base of the locker.

The collision brushes should be 2 units thick and follow the edges of the locker. Putting one in for the locker base is also useful. Don't forget to tie all of these brushes to a func_detail, otherwise they will play havoc with your visleaves.

Note.pngNote:You may want to set the animation of your locker to aid in creating the collision brushes. In the properties of the model, go to the "Model" tab and select the sequence "open". Don't forget to set this back to "ref" afterwards, as changing the default animation in this tab can cause problems in Hammer.


The Rescue Vehicle


Items in the locker.

Place your desired items into the locker and rotate/position them. I have used health kits and pistols here, since I designed this locker to be present at the beginning of my campaign. If you are using other items, it's best to pretty much fill the entire bottom of the locker model with a layer of items.

If you are using items such as pipe bombs, molotovs or boomer bile, you'll want to set their "Count" value to 10, or maybe higher. This means that players will be able to take more than one item from each spawner in-game; of course, if you just want single item pickups (like the health kits in the picture), set the "Count" value to 1.

Tip.pngTip:Some items, such as adrenaline, do not have a count value my default and only allow a single pickup; this can be overriden by disabling "Smart Edit" and adding a keyvaue called "count" with a value of whatever you choose.

Name all the items you have added as "static_locker_items".


The Navigation Mesh


The locker opening sound.

Set your locker's animation back to "ref" (to close the lid) and add an ambient_generic somewhere near the locker. The position doesn't really matter, as we'll be specifying the origin point of the sound in the ambient_generic's properties.

The properties can be left at the defaults, apart from these:

  • Name: static_locker_snd_open - This will allow us to trigger the sound later on.
  • Sound Name: Trunk.Open - The soundscript entry for the locker opening sound.
  • SourceEntityName: static_locker - This is the name of the prop_dynamic locker model. When triggered, the sound will originate from the locker model rather than from the position of the ambient_generic itself.


Custom Gauntlets


The template spawner.

Next, we need a point_template in order to spawn our items when we want them. Simply ticking the "Must Exist" flag on the items may cause their glow effect to be visible through the edges of the locker model, so the point_template ensures that the items are only created when they are needed. For lockers which may or may not be present, the point_template allows the spawning of the items only if the locker exists.

Setting up the point_template is simple:

  • Name: static_locker_template - The name of the point_template.
  • Template 1: static_locker_items - When triggered, the point_template will spawn our static_locker_items (that we named earlier) at their appropriate spawn points.


Note.pngNote:This article is a work-in-progress. It is currently being updated.