
If the
bad guy is in room 3, and you are in room 1, then you cant
see the bad guy, and he cant see you. However, since its
all modeled in the computer, it knows where you are, and thus
can tell the bad guy Hes in room 1, go get him.
This is cheating at the worst level. The computer has more information
than you do, so it becomes unbeatable. The challenge is to limit
what the bad guy can see and hear, so he can only respond to that
stimulus.
So given
these conditions, it isnt that hard to write code to deal
with the decisions a bad guy can do. If he sees you, he shoots
at you, if you shoot back, he decides to either run away, duke
it out, or find some cover to shoot at you from. What happens
if you run away? Well, lets make him follow you. Now we run into
the next big problem. Path following. If, as in slide 3, I meet
up with this guy in room 1, and I run from him into room 3, how
does he track me? Doing this in a convincing manner is the hardest
thing currently in games to get right. There are a number of approaches
to doing this, some more expensive in processor time than others,
and some more accurate than others. Here a couple of them.
Map markers.
This is the system we used in Heretic II. Markers were
placed in the map all within line of site of each other. Bad guys
followed a direct line from one marker to the next, thereby navigating
the world. This also has the advantage of allowing information
regarding the world, such as doors, holes and so on to be embedded
within the markers, allowing the bad guys to leap chasms, and
open doors at will. The downside is that these markers have to
be placed in each map that bad guys inhabit.

Way point.
Similar to the marker system, the bad guys themselves drop markers
in the world every 10 seconds, to create a kind of bread
crumbs path. The down side here is that initial forays into
unseen areas mean some wall bumping before there are enough
way points to successfully navigate the world. Plus, with each
bad guy dropping these markers, you seen end up with a ton of
them.
The last
method is the most successful, which involves real world cognizance.
IE doing traces in the world to find out where walls are, where
the floor is, what obstacles are in the way and so on, and making
real choices about what to do next. This is EXTREMELY expensive
on processor time, but is the only real solution to
the problems of path finding. We do have a new system we are working
on, but I cant go into details at this time, mainly because
no one has explained it to me yet.