Designing a Level (Alternative Tutorial)
Before the Hammer is even opened, there are several activities that should be completed. These activities are recommended to produce a consistent level and to limit compilation times during early editing.
Create the theme
In Half-Life 2, in general, each level between loading sequences has a theme or a purpose. Deciding on a purpose for a level provides for a consistent level. Several themes for levels are described below.
- Decide on an architecture that will be used throughout the level.
- Decide what NPCs the player will meet during play in the level.
- Introduce entities that will be encountered in the level and provide opportunities for the player to become familiarized with them.
Examples: "Point Insertion," "We Don't Go to Ravenholm"
A level's entire purpose may be solely to introduce the types of characters that the player will meet during level play and how to interact with them. The theme of the level should be narrow in scope to provide consistency. "Point Insertion" introduced the Combine architecture, provided interaction with Combine soldiers and scanners, gave the player indications that alien slaves were not dominant players as they were in the original Half-Life. The level introduced entities such as turnstiles, control consoles and doors that the player would be seeing and interacting with during level play. Zombies and antlions would've been startling and inconsistent if encountered in the Combine-inhabited city.
"Ravenholm" was certainly a different style of architecture than the laboratory areas and, following an easy introduction to the Gravity Gun while playing with Dog, gave the player opportunities to use the gun in combat, finding out what and what could not be affected by the gun.
Earn and use a new weapon
- Determine what weapon or weapons the player will be given or "earn."
- Provide opportunities to use the weapon in different ways.
Example: "Route Kanal"
"Earning" a new weapon and using it is a common theme for Half-Life 2 levels. In "Route Kanal," Freeman starts out with a crowbar. He soon takes out a couple of soldiers and "earns" the pistol. As he continues, he has numerous opportunities to use it: shooting enemies directly, shooting explosive barrels, shooting supply crates. Using the pistol only, he makes his way through several hazards against much stronger weapons.
Solve one or more puzzles
- Determine a goal or reward for solving the puzzle. The goal is most often to just continue the level. However, the reward may be to "earn" a new weapon.
- Determine a complete concept for the puzzle. Having a complete concept for the puzzle will save design time later. Rearranging architecture and entities later in the level design to provide access to a part of the puzzle which was not well conceived can be time-consuming and frustrating.
Solving puzzles is a part of HL2 and can be used to provide a break from combat. Some levels require the player to solve a puzzle during a firefight.
For instance, in "Route Kanal," the player must figure out how to swim through the canal while under fire, climbing on platforms and jumping to gain the route to cover. Then, as a respite from the firefight, the player must figure out, at leisure, how to pile concrete blocks on a platform to get to the next portion of the level.
Shoot 'em up
Some levels may be nothing more than the opportunity for straight-forward combat.
- Determine which enemies the player will meet. Obvious choices are patrols of soldiers or caches of zombies. Rarely would a player have to fight both soldiers and zombies in the same area, however.
- Determine a route which the player must take through the opposing force. A level in which the player can simply run past the enemy defeats the purpose. Ensure the concept of the level includes "pinch" points past which the player must pass, perhaps blocked with objects to move with the gravity gun, or a door or gate which must be opened, only after enemy fire has been eliminated.
Determine the main routes
- A sketch on paper of the entire route through a level lays the foundation for a later more detailed design of the entire level. This is particularly important in a level intended for "single-level" play - a single level to be played from beginning to end.
- Without a concept of where the player will start out or end up in a level can result in a patchwork of ladders, steps or bridges which detract from the consistency of a level's design.
Determine the type of architecture
Level architectures can vary greatly. By determining what type of architecture the level is set in simplifies the choice of textures and entities to be used later in detailing the level. Determine if the scene will be an outdoor scene with alleyways and large buildings or indoors with stairs, ramps, hallways and rooms.
Lay out the map with blocks
The initial phase of level design blocks out the route the player must take.
- Use just three or four textures, such as the orange and gray dev textures and the skybox texture. Detailed texturing should be much later in the process.
- Lay out rough blocks for buildings, bridges and open doorways to outline the route the player must take through the level. Swing doors or lift gates can be added later.
- For outdoor levels, add a single light environment. Scene lighting is expensive with regard to compiling time.
- For indoor levels, limit the number of light entities to that necessary to test the route through the level. Again, scene lighting takes a lot of compile time.
- During this phase of design, do not add unnecessary entities or models such as NPCs, barrels or pipes. An exception may have to be made if, for instance, the level requires piling crates on one another as part of the primary route through the map.
- If the level requires stairways, use simple stairs without rails or supports. However, ensure the steps are sized correctly and room layout is sufficient to allow the proper height to be reached. Having to later resize a room that is too small for a long enough run of steps to reach the proper height can be time-consuming. See the section below of making separate test maps.
- Test the layout often, perhaps after adding just a few blocks or hallways. Determine if the size of the map and areas within the map give the "feel" for the level that is desired.
Prototype with test maps
Using separate small maps to test portions of the larger level map saves large amounts of compile time.
For instance, if the level requires an assault by a patrol, create a new map to layout simple block obstacles or cover and determine the general desired movement of the troops. From this map, the required area needed in the level map can be more precisely laid out. However, don't add the NPCs to the level map until later.
If the level requires jumping across gaps or moving entities to gain access to ledges or stair sizing, a test map can be used to determine the proper distances without requiring a complete compile of the level map. Once the information has been determined, adjust the level map but do not add entities such as crates or barrels to the level map unless required.
Detail the entire map incrementally
Avoid detailing a small portion of the map at a time. By making small increases in detail throughout the entire map, a more consistent approach to the architecture can be achieved. In addition, if adjustments to room sizes or assault areas need to be made, the effort in detailing a room or stairway may be partially or wholly lost.
If a firefight is important to the level, a few NPCs can be added here and there to determine if the player has adequate cover or the angles around obstacles are approximately correct.
- Playtest the layout often. In addition to ensuring the sizing is correct, ideas for additional details to be added later can be discovered.