CGF bot vision, tracking and aiming
Action Quake2 and the AQ2 maps provide us with moody, dangerous, and 'single-shot-kill' worlds.
Being seen often is fatal. Darkness sometimes is your friend. You've based your tactics on this...
When fighting CGF bots, you thus expect these bots to see as much (or as little) as you. And
that's what's happening now.
(Legend: 'bod' is percentage of subject body being visible, 'dst' is distance to viewer,
'ang' is field of vision angle, 'lit' is percentage light, 'red' represents reduced vision
because of transparent windows or water, 'spd' is subject movement, 'tot' is aggregated
visibility score (higher is better). The recorded vision data was added by hand, using a
paint tool).
Being visible vs. being seen
If a bot looks in your direction, he doesn't necessarily see you. The further away you are, the
darker your location, the fewer parts of your body being visible, when you sit instead of stand,
when there's thick fog, when you're behind glass or in water, the smaller your chances of being spotted.
If however, you fire without a silencer (actually: suppressor), you move instead of being
static, chances of being spotted increase. And if you're in the center of the bots view
(as opposed to near the edge of his field of vision), you're more likely to be spotted as well.
The longer a bot looks in your direction, the better his chances of spotting you. Bots with irvision
see better in the dark, bots with zoomed sniper rifles have smaller fields of vision, but deal better
with distance. And higher skill bots see better in general.
(Actually, the only two things not modeled in the bot's vision are (1) skin visibility, thus
the effects of camouflage, and (2) contrast / silhouetting, thus when you stand out against a bright
background / sky / muzzle flash. Both could not be modeled because Q2 doesn't provide
sufficient in-game information on textures).
Basically, this means that in the (upcoming) CGF 0.80, you can realistically hide in the dark. And using
high values for gl_modulate is as much of a cheat as it is in real life.
Tracking
Once we humans have spotted something, seeing it and tracking it becomes easier - we know what to look for.
However, it takes a little while before we actually interpret what we've spotted and are able
to track it: was it a door being opened, or a threat moving?
When we've really started tracking our threat, we even know where to look if the threat is
temporarily hidden from our view by a pillar or tree. And that prediction, of course, is very important
when we try to aim...
In the CGF AI, vision and tracking are modeled as described here. In other words, once you're spotted and
in their view, the bots get better at seeing you and predicting where you go...
Aiming
Aiming at a target is very much related to vision and tracking, but not the same. For example, a moving threat
is easier to spot than a static threat, but harder to aim at. And if you've start moving yourself,
your aim degrades, no matter how long you've been tracking a target.
The CGF AI aim is primarily determined by the gunner's movements (after halting, the aim
steadily stabilizes), the tracking time, target movement (relative to the gunner, that is -
targets moving straight towards you are just as easy to hit as static targets), and
a bit by poor visibility conditions (glass, water, darkness and fog).
Of course, the Action Quake2 determines the bot's gun accuracy the same way as it does
for human player.
Vision summary and bot lethality
The vision, tracking and aiming in the (upcoming) CGF 0.80 are about 'as good as it gets'. I couldn't
think of many more relevant factors to include. Most tactical shooters in available in the shops are less
fair towards the player.
Note that the more realistic vision (compared to previous versions) doesn't make the
bots less lethal. To the contrary. Tactics have been improved to ensure the bot scans
its environment smarter. And bots are less likely to give away a visibility advantage:
When, for example, they see a threat facing some other direction (thus not seeing them)
the bots take their time to steady their gun instead of spraying immediately.
This tactic saves some ammo and makes head shots more likely. (This feature arose from a discussion
with Jaxankey - thanks!).