Articles

Bot Navigation for the Layman by Captain Mellow

    A bot's navigation is extremely important. If a bot cannot move effectively around the level, then it cannot locate & use weapons & powerups, & it cannot find the player. This can make the bot the worst kind of camper, & makes for extremely boring DM.
Roaming AI
    A bot must be able to roam the level, to feel its way around. How well does it roam? Does it bounce around from wall to wall? Does it get stuck in corners? Can it find its way up stairs? Can it walk along a ledge or ride up a lift, or will it fall off? Can it see items & players? How well does it decide where to go next? It all depends on how well a bot's ai has been coded.
Nodes
    Most bots orient themselves by dropping "bread crumbs" as they explore a level using their roaming ai. These bread crumbs are called nodes.
Placing Nodes
    Now, how the nodes are placed into the bot's awareness is handled differently from bot to bot, with mixed results:
  1. Via Roaming AI: In this case, of which the Reaper bot for Quake is a good example, the bot places its own nodes as it explores a map using its own ai. This works well, but only as well as the ai can explore a map. Some powerups & weapons might be placed in an area that the bot's roaming ai cannot get to. A BFG may be located on a ledge that the bot will jump off of before it reaches the item, or behind a door, or on a lift, which it may not be able to operate. Map layout can make or break the success of this type of bot, unless the roaming ai is further developed, which unfortunately can lead to more CPU overhead.
  2. Via Player RI: That stands for Real Intelligence, as opposed to Artificial Intelligence, & what better base for navigation than a real human player? The Omicron for Quake is the prime example of this approach. This type of bot will cause the player to place nodes as he plays the level, & the bot may be able to save this info for later use. This has some major advantages, because by using the player's movement to learn a map, it will learn of areas & items that an ai would not be able to find, & its movement will of course be much more like a human player. Once it has sufficiently learned a map, its node-placing mode can be turned off to free up CPU overhead.
  3. Via Static Nodes: The Frogbot for Quake doesn't learn maps. It can only play on certain maps which its programmer has taught it by coding the nodes into the bot. This results in less CPU overhead than the previous two methods, because the bot is not learning anything new. It's not placing nodes, or causing the player to place nodes. & its roaming ai is much simpler. Also, this type of bot will already know everything it needs to know to play the level like a pro--location of powerups/secrets/weapons, prime sniping locations, etc. This results in a very lean & mean bot that is limited to a few maps, but plays them extremely well.
Following the Nodes
    After placing the nodes, the bots then find their way around by going from node to node. Depending on how smart the bot is, it will determine the shortest path to take by calculating the shortest number of nodes between it & its goal. A really smart bot will also take into account the different heights & ledges of a map, so it doesn't try to go to a node that is inaccessible & then get stuck. Some bots will even follow sound cues to determine where the player is & track him down, or make an educated guess as to where a player is going & take a shortcut to head him off!

TOP