| |
Scripting
- "Making Things Happen In The Game"
By "scripting"
for Half-Life, I mean --
Creating
and naming entities, and setting
their properties, in order to get the complex and
often interactive game effects
that make Half-Life so much fun to play -- effects like rockets
that rumble and roar, moving objects
such trains and elevators, waves
of monsters materializing
from thin air -- a wide range of special effects.
Scripting, as
we mean it here, is a map editor techniqe.
This is distinct from coding, which involves
C++ programming.)
Entity Overview
You'll want to get very
familiar with the tutorials and reference materials that detail the
inner workings of entities. The Handy Vandal's Almanac
provides links to game design resources at numerous sites, categorized
by entity type and subject matter. Check out the Level Design
tutorials in particular, and the various entity guides in general.
FAQ's offer broad advice, along with bits and
pieces of useful specifics.
Broadly speaking, almost
all entities are programmable, or useable in programs:
- An entity
with a Name can be targetted by another
entity
- An entity
with a Target will activate the entity
named in the Target field
- When does
an entity activate its Target? This depends on the entity:
- Trigger_Once
= upon walking through it
- Func_Breakable
= upon breaking
- Item_HealthKit
= upon picked up
- Grunts, Scienists,
and Barney have a selectable set of conditions ... upon
hurt, upon death, etc.
Essential Entities
Game Control Entities
- Triggers
- invisible field, touch it and it activates its target
- Multi_Manager
- event sequencer: triggers up to 16 entities
- Trigger_Relay
- event relayer: several by the same can be used to trigger multiple
entities from one trigger; also can be used to toggle entity state
- Env_Global
- handles event states between levels
- MultiSource
- AND gate: when all entities targeting the MultiSource have fired,
the MultiSource fires
AI Entities
- AIScripted_Sequence,
Scripted_Sequence, Scripted Sentence
Light, Sound, Motion
|