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.
"Anomalous Materials"
c1a0d
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.
"Office Complex"
c1a2b
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.
A simple trigger_once
begins the sequence, targeting the divestart
multi_manager
. This triggers the scripted_sequence
entity (named dive
), the 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.)
The dive
scripted sequence grabs the monster_scientist
, 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 divestart
multi_manager
.)
The second 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.
The third multi_manager
entity controls the zombie falling down through the glass. zjump
, the 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 scripted_sequence
entity.
"We've Got Hostiles!"
c1a3c
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.
"Power Up"
c2a1
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.
c2a1b
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 c0a0d
: an 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.
c2a2h
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?