Power Up: More Special Effects in Half-Life
(May 13, 2018)
(Community guide by Windawz, with information adapted from the Half-Life Red Alert site)
As discussed in the original guide, Half-Life cleverly used entities and sequences to give the virtual world of Black Mesa more life than was common in PC games at the time. In this guide, we'll go over more examples of notable scripted sequences and special effects used throughout the game.
The scientists in the stalls of the Sector C bathroom (where the player first gets the HEV suit) are an interesting bit of entity reuse. These scientists don't use the normal scientist entity; instead, they use a special one,
monster_sitting_scientist. This is normally used for the scientists typing at computers and terminals throughout the lab. They have only one animation, that of typing, but as they're never seen from the legs up, this isn't much of an issue.
One of the most noteworthy scenes in this part of the game is of a scientist diving out of the window of an office, with a zombie falling out of the upper walkway and another breaking through the wall following suit. This is a complex scene, consisting of three separate
multi_manager entities to trigger and delay each of its parts.
trigger_once begins the sequence, targeting the
multi_manager. This triggers the
scripted_sequence entity (named
func_breakable glass (named
window), and the two other
multi_manager entities (both named
zombie), in that order. (
zombie is also the name of the
scripted_sequence used to begin animating the zombie that breaks through the wall.)
dive scripted sequence grabs the
divingbob, and flings him through the window. A
trigger_push gets him running away towards the player, and a separate
trigger_relay kills off the
trigger_push after it's been used. The zombie breaking through the wall,
breakout begins his
kick_punch_wall sequence, as the
zombie targetname has been triggered. (An additional
trigger_once acts as insurance in case the
zombie targetname isn't triggered by the
multi_manager controls the breaking of the wall, which is made up of several
func_breakable entities. Once destroyed, the zombie has a path to take and will likely begin to give chase to the player.
multi_manager entity controls the zombie falling down through the glass.
scripted_sequence that throws the zombie,
jumperz, through the glass, goes first, followed by the shattering of the
zwindow breakable. An
env_sprite and an
ambient_generic are paired to cause the blood and thud of the zombie hitting the floor. Another
trigger_push gets this zombie moving once more, with another
trigger_relay to delete it once it's been used.
Here's the above sequence in flow chart form, showing what triggers what. The green boxes refer to the scientist sequence, the blue boxes refer to the zombie breaking out of the wall, and the red boxes refer to the zombie falling from the walkway. The numbered arrows represent, in seconds, the length of time the action is delayed.
Another scene, where a scientist dangles precariously from a ladder, can be found on the same map. The player comes into contact with two triggers as they ascend. One trigger causes the scientist to bemoan his inability to hold on to the ladder, using a
scripted_sentence entity playing the
!sc_dangling sentence, and another trigger higher up in the shaft causes him to play his
fall_elevator sequence using a
"We've Got Hostiles!"
There's a scene in this map where large chunks of debris fall on the player as they navigate a duct system, trying to make it to the surface as it's bombarded by mortar fire. In addition to some concrete
func_breakable entities, a few larger pieces of debris fall, including a fan and part of a ladder, both of which are actually
func_train entities set to fall when the player enters the ducts.
This map provides an excellent example of the use of
env_beam. A pipe acting as a blow torch sticks out of the top floor of this area. This is created by an
env_beam entity with its
texture set to
sprites/fire.spr and its two ends set up at the mouth of the pipe and the end of the flame. The beam's damage value is set to 1000 so as to seriously injure whatever it touches. Spawnflags 1 (Start On) and 256 (Shade End) are also set; some beam sprites might look best when you to shade the start instead.
On the way to the generator room, you pass through a shaft filled with toxic waste. Similar to the lava pits in Quake, this shaft has blobs that fly up out of it at the player. The setup is similar to the toxic waste cannister during "Black Mesa Inbound", in map
env_shooter targeting two
multi_manager entities that trigger one another in a five-second loop.
In another part of the map, a badly wounded marine is dragged into a hole in the wall by a bullsquid, breaking his leg and leaving blood stains about. Once again, the scene is perfectly tuned to the brushwork, with a
multi_manager triggering both the
scripted_sequence for the bullsquid and the one for the soldier.
This map provides a rare example of a model being used as decoration in a GoldSrc map. The spinning, holographic globe inside the rocket bunker is actually a
cycler entity. Normally reserved for Valve's internal use in "zoo" maps, the
cycler gets its name because it cycles through the model's sequences when shot. This is why the globe bleeds and jitters slightly when shot. Two
env_render entities give the globe its transparent effect using the "additive" render mode.
There's still yet more examples of Valve being creative with reusing entities and creating elaborate sequences to delight and shock the player. Being inventive pays off, doesn't it?