GETTING TECHNICAL
You may have seen Ray Harryhausen credited with Technical Effects (meaning special effects) for his amazing stop-motion animation in movies like Mighty Joe Young, It Came From Beneath The Sea, and The Beast From 20,000 Fathoms. Well, this column isn't really about special effects, just technical game details and behind-the-scenes programming stuff that we thought you might find interesting. We'll be updating it regularly, or whenever Lars thinks of something.

10/28/02: MAY BE HAZARDOUS TO YOUR HEALTH
Since we have thousands of individual humans running around in TCFH, I needed to lighten the AI processing for them. A large part of AI can be summed up as "don't do stupid things", and one of the most important ways for people to not be stupid is avoid getting killed by hazards around them. Hazards can be found in anything nearby: the monster, the military, fires, or even just moving cars. Since humans respond to most threats in the same manner (ie: run away), they don't really need to know the exact nature of each threat. Also, threats are pretty universal to all humans and are location-based. These simplifications allowed me to move the information about danger to a map overlay, rather than have each human constantly check for the hazards around it. Anything that represents or creates a hazard to humans places a relative hazard value in the map.

That map automatically softens and decays to represent the natural dissipation of threat information, and also so hazard sources don't have to clean up after themselves (but they do need to refresh it periodically if the hazard is continuous.) Human AI now only needs to check the hazard map in their immediate area to know if they are threatened, rather than query all possible hazard sources, check ranges, direction, etc. If a human is in a hazard above a certain threshold, they simply move towards a location on the hazard map with a lower hazard -- towards safety. By changing the thresholds at which humans respond to hazard levels, I can represent panic levels and create "braver" humans (like soldiers). By changing the hazard value the monster generates, I can dynamically adjust the "fear factor" of the monster based on its behavior. Hazard sources can also indicate where a hazard may be in the near future to act as limited forewarning, such as the impact target of a crashing plane...this lets people run out of the way before getting flattened.

The image shows the hazard map overlay: the large circle is the monster, lines are tanks driving, smaller circles are bombs or fires (coloration isn't meaningful other than to show contrast and aid debugging).