October 26, 1999
I won't be able to deliver a new CGF version with solid tactical AI at November 1st (something I expected
to do).
Instead, I need about a week of extra time. During play-testing (over 100 missions per day), I've been able make
numerous detailed improvements, but I've also ran into unexpected situations requiring more work.
An example of a problem I had overlooked: what does a sniper team do if the sniper
falls/gets blasted from a roof and cannot get up to his intended sniping positions (as in Urban or Actcity2)?
(Calculating good sniper positions without hints from the script seriously eats CPU time, so I
need to be careful). Bummer!
The (funnier) examples of the detailed improvements, resulting from 400+ counter-sniper
missions at Urban are:
- bots now will perform fast reloads of the AQ2 sniper rifle and M3 shotgun,
thus they'll pump shells into the rifle in a continous fashion, without taking aim in
between (it's an AQ2 feature I never discovered during actual AQ2 games, but instead
learned from browsing the code). Do try this at home!
- with their sharp eye for detail, the CGF bots will notice you more promptly if you're
bleeding (eject blood action style). They won't show mercy, though.
And for the people who wonder about the custom icons and blue fonts in my screen shots:
go fetch 'Devo's Face Lift' from the Action Guild. You'll love it.
William
October 23, 1999
A small update, with some info on a 'AQ2 optional weapons' experiment. The
next CGF version may have built-in support for additional eye and ear candy:
AK47 assault rifle, the UZI submachine gun, M82A1 sniper "rifle" and the
Glock17 handgun.
I've been experimenting with some Action Guild 'optional' weapons. As the screenshots demonstrate,
most of the work has been completed. You're able to use them next to the original weapons.
In other words, you're able to carry both the AK47 and the M4, the UZI and the MP5, etc.
Keep in mind though that these additions are meant as eye and ear candy only. The weapons
look and sound different, thus making for more immersive CGF missions: its great to
distinguish between hostile AK47's on your left and good old friendly M4's on your right.
However, the weapons are functionally equivalent to the AQ2 counterparts (and consume
the same ammo).
Most of the optional weapons offered originate from the Terror Quake2 mod,
a more realistic AQ2 spin-off that really features a large number of different weapons.
Some weapons animations were changed
by AQ2 fans to fit the AQ2 sequence. I've sent the Terror Quake2 team a request for permission
to use and distribute the additional weapon models and sounds (and I promised them 'breakable glass'
and 'fog' source code in return), but I have yet to receive a reply.
I could use some help: I'd like to have VWEPs for the Q2 male as well (TQ2 supports
the SAS, terror and messiah model only).
William
October 5, 1999
Here's long update, with:
CGF 0.80 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.
I've completed most of the work on the CGF vision, tracking and aiming:
(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 doesn't make the bots less lethal. To the contrary. The
bots now take into account which way their targets face. When, for example, they see
me not facing them, they 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!).
Mission Development Support
Developing CGF missions for the previous CGF beta's was a bit like sailing the Titanic:
CGF, especially when using Borderfield's
mission editor, provides plenty of luxury and features, but small errors easily get fatal.
(Note that, unlike the Titanic, CGF is beta).
There was also few (if any) information on the error cause.
That will be a thing of the past in the new version. The main sources of trouble are now
dealt with in a more friendly and robust fashion:
- incorrectily defined locations (for example, pointing to somewhere in the floor)
- not being able to insert a formation of bots at a specific location
(when that location is cramped or when the formation only fits when shifted and rotated)
- stuck bots slowing down the game
When you'll set the 'developer' cvar to '1' (or enable the developer mode in the Borderfields editor Options),
CGF will write information on locations and bots-in-trouble to a log file. For example:
mission# | time | mission = "urban2_streets5.cgf"
=========|=========|========================================================
00000089 | 156.4 | mission started
00000089 | 156.4 | location definitions verified and ok
00000089 | 156.4 | fog settings: mode 2, density 0.00,
| rgb=[0.60, 0.50, 0.60], begin 200, end 1600
00000089 | 156.5 | autoposition: column : 2, n=224, <195, 1091, 408>, y=0
00000089 | 156.5 | autoposition: use yaw: y=0
00000089 | 156.5 | autoposition: found fit near n=224, <195, 1091, 408>, y=0
00000089 | 219.3 | bot Painter-2 suicides because of failing plans:
SubPlotAction "Move To Location" [
Sequence
[
>> NormalMoveToLocation(563,-724,280) // at node = 596
] // Sequence
] // SubPlot
As you might be able to understand from the log info above, locations are explicitly now
verified (and you're informed about the location causing problems, if any). You are notified of team insertion problems, if any, (and there's an "emergency" routine that prevents the team being put into the wall).
And bots getting stuck perform a nifty suicide while providing information on their
mental state.
Being able to obtain some diagnostics for problematic missions speeds up mission
development (and route file development), and allows developers to avoid problems.
Tentative CGF 0.80 release date
You may have noticed a number of new features lying on my desk here: terrain understanding,
fog, door handling, realistic vision, developer
support, and route file creation support (documentation applies to test version CGF 0.79,
not to existing versions).
However, the AI still needs some tweaking, especially to really benefit from the 'bot & player performance statistics'
it records. There are also a few bugs that need ironing out. And a slightly bigger
delay is caused by a upcoming biz trip. I probably can take a few days off afterwards, enabling me to work full-time on CGF.
Realistically, November 1 would make a good date to release those 'improved mean bastard' CGF 0.80
bots, complemented 'out of the box' by a good set of route files and missions.
William
Old News