This combination of bots, fire teams, tactics and scripting (dubbed “Computer Generated Forces” or CGF) aims to combine the best of single player missions and thrilling Action Quake2 (AQ2) team play.
Action (Quake2), but with three extra ingredients CGF aims to provide tactical fire team combat to single player ActionQ2. It does so by adding three extra ‘ingredients’: bots, teams, tactics and terrain understanding, and scripts / missions.
ActionQ2 is about location based damage, about weapon accuracy which depends on your posture and movement, about the use of cover and the need to reload, about the movement problems when your legs hurt, and about the single bullet head-shot skill.
CGF bots act as a client in the AQ2 game, and are subject to the same rules as you are. And be assured, these bots understand cover, aim for the head (shot) when possible and deal with weapon peculiarities such as the M4 muzzle climbing.
CGF bots can hear and locate sounds, and their sighting and aiming is affected by light and dark areas. When their targets move out of sight, these bots will predict the most likely locations of their targets.
Upon contact, the bots won’t run towards their threat, but instead seek to position themselves on tactically strong locations offering lines of fire.
ActionQ2 takes place on maps that require more skill than standard Q2 maps because of the many (realistically) small ledges, the increased falling damage and the large number of dark areas.
CGF bots communicate like a LAN-based clan within their team: they inform each other of threats, and co-ordinate their attacks and defense within their team. They also use the AQ2 radio sounds to inform other players.
According to a reviewer:
The sounds tracking was impeccable and certainly a lot better than mine. Upon opening a door I heard the footsteps suddenly start as they ran to the stairs to block me off. Another man had covered the window although I`m not sure how much luck was involved in this manoeuvre it certainly felt very real.
Teams, Tactics and Terrain Understanding
ActionQ2 is famous for its team play. On many AQ2 servers, players can be seen co-ordinating their efforts to eliminate that last enemy sniper, or covering each others backs. Good teams try to keep in touch and within mutual support of each other. And occupying and holding certain map locations may be essential to the team’s victory.
The feel of ActionQ2 team play therefor is difficult to approach. However, the CGF bots try hard. They run around with co-ordinated team tactics in mind. They try to stay in touch with team buddies, warn each other, assist each other by watching for threats and employing suppression fire. When the situation calls for it, the bots will use bounding overwatch advance and pullback maneuvers.
CGF offers dedicated sniper AI, and even more: the sniper/spotter combination. In that combination, the spotter acts to spot possible targets and relays them to the sniper. In addition, the spotter tries to safeguard the sniper from any assaults.
CGF bot teams contain 1 to 8 members. Multiple teams may be part of the same force (in which case they don’t try to kill each other, but don’t execute the same orders either). There may be more than two forces, allowing for, say, a team “deathmatch” between four opposing teams.
Tactical combat decisions are made at fire team level (according to instructions from the mission script).
The fire team takes into account the (predicted) threats, their position, distance to and from that position, spread of the team itself and the threats, threat movement direction, and the lines of fire to and from the threats, and actual firing.
Based on this assessment, the fire team decides on the tactics to use. In “powerplay” situations, a fire team won’t hesitate to have all its members engage the threats. However, when looking into the muzzles of a larger number of threats, the fire team will decide to pullback and fight another day. But when running into a large number of threats which happen to look the wrong way, the fire team won’t waste much time and benefit from the opportunity.
Smart use of the terrain: instead of the red shortest path, the green path and blue wait/reassembly nodes offers more cover and stealth during a patrol deeper into ‘Tokyo’
Smart use of the terrain is essential in AQ2. Sniping isn’t done from the middle of the road. Running around in brightly lit places doesn’t offer much stealth. Roof areas cannot be controlled from the streets.
A significant part of the CGF code is dedicated to tactical terrain understanding. Bots have a good hunch for the better tactical positions. They often prefer a safer route “under cover” over the shortest path, and are able to do a stealthy approach by hugging the walls and using shadows. They understand that the position just around the corner can provide them cover, and make intelligent guesses where threats might show up. (See illustrations above).
More important, this terrain understanding is “simply” derived from the map and the standard route file – no hints are required from the mapper or the route file creator. The bots thus should understand any AQ2 map.
According to a reviewer:
When the enemy moved together I was impressed some of the time by the way they appeared to cover there backs the last man would always check his six. When entering buildings they do tend to rush it. Which can be a valid tactics but because you know they will do it you can use to your advantage. Camping around a door will not work. You may get the first one but the second will be in by the time he`s down. When entering rooms they appear to check standard camping positions instantly and apart from small movement bugs looks rather like a SWAT team.
Scripts and Missions
In contrast with the conventional “spawn a bunch of bots using some menu” approach, CGF requires a bit more work to get the bots doing their thing. However, this is for a good reason: CGF provides more than just customization of teams, bot outfits and bot skills.
Using scripts, CGF offers the means to define objectives for a mission or fight, and initial positions and instructions for each team.
CGF thereby is able to provide both “standard” teamplay, and to stage small or large battles. Examples of the latter include missions to eliminate a specific enemy, to assault and conquer a specific map location, or a three fireteam assault on a heavily defended sniper tower (as is shown in the preview movie).
Mission outcomes (based on the objectives) determine the next script to be run, basically allowing for ‘campaigns’ or rudimentary ladder tournaments.
You’ll be able to download scripts from a number of web sites, to modify them and enjoy them on your AQ2 maps. And a few handy members of the AQ2 members will create their own battles from scratch and publish them. Creating missions shouldn’t be that hard as the AI is soley instructed via simple team commands as ‘moveup’, ‘defend’, ‘snipe’ etc.
[The use of scripts is not exactly new: games such as Command & Conquer and M1 Tank Platoon II internally use scripts for each map to give AI hints where and how to fight. This hints define the overall strategy and the AI itself will take care of the tactics. Basically, CGF uses scripts for the same purpose but allows for external scripts to be distributed separately.]
According to another reviewer:
The mission titled ‘hitman’ puts you in the role of the hitman and asked to take out “Mister Sabotage (head honcho of the warez business in Urban). Similar to protect the president, where you play the assassin. The second mission titled, ‘streets’ as William describes, “throws you into a series of streets fights, with the sole goal to survive .” As you successfully beat the bots, you move on to a more difficult missions and less help from your teammates.
We have already started to see people creating their own missions to use with CGF.
CGF == Bots, Missions, Tactics, and Scripting in Action!
By now, you should understand that CGF is more than bots and scripts: it is intended to offer computer generated forces (CGF). It should offer new ways to enjoy big tactical fights in ActionQ2 (without the need for a net connection), and enable new ways to use the terrific existing and new AQ2 maps.
CGF isn’t some commercial add-on; it’s just a big out-of-hand hobby of mine, with some help from the AQ community.
CGF represents ongoing work. I’ve been working on this since December ’97, and will work on this for some more time. There are plenty of fun things to achieve using this code base :)
-William van der Sterren