Agents in AI

Andrew Schurr

The goal of artifical intelligence has long been to create life-like systems that are capable of mimicking human behavior. One area in which AI has been developing over the past few years is computer games. The techniques of AI have been used to create realistic, challenging opponents in games ranging from Pong to the latest 3-D shooter.

Recently, first-person perspective games that simulate weapons combat have become popular with the masses. With the great strides being made in graphics and hardware, the first-person experience is getting more and more realistic. To keep up with these advances, the AI architecture used by these games has advanced to the point where it can be of interest to hard-core AI programmers.

Games like Quake III have begun to make use of "bots"; computer-controlled entities that use sophisticated artificial intelligence techniques to provide players with life-like opponents. These bots are referred to as "Agents" within the 3-D AI programming community.

 

The Agent

To be an effective opponent, the Agent's "brain" needs to be able to handle several different tasks.

NAVIGATION:

The AI Agent needs to be able to manuver around the level effectively. It must have the ability to follow different routes, locate items and weapons, and track down it's opponents. While it is possible to simply feed the Agent information about the level as it needs it (i.e. a list of x,y coordinates for all health containers), this makes the Agent seem omnisienct. A more realistic method is to give the Agent a series of algorithms for percieving it's environment and reacting to it as a human would.

For instance, this article explains how a neural network can be used  to give an Agent pathfinding and obstacle avoidence abilities.

http://ai-depot.com/BotNavigation/Obstacle-Introduction.html

 

This link gives a more general overview on how AI routines can be used to give an Agent various pathfinding abilities.

http://www.red3d.com/cwr/steer/

 

COMBAT:

Once an Agent manages to arm itself and locate the player, it needs to be able to effectively engage in combat. A real human has the ability to dodge, use cover, flee when wounded, and chase a wounded enemy. An Agent must be able to simulate this behavior.

This article offers some insight into the way that aiming for an Agent can be realistically modeled.

http://www.planetquake.com/botshop/study/vision0.html

 

These tutorials shows some code for an Agent used in Quake. The first gives the Agent the ability to "strafe", or move sideways, when it encounters gunfire, while the second gives the Agent the ability to flee when injured.

http://www.planetquake.com/minion/tutorial/tutor5.htm

http://www.planetquake.com/minion/tutorial/flee.htm

 

LEARNING:

To be truly life-like, an Agent must be able to learn from it's mistakes. This remains the most thorny problem for Agent programming. While it is comparatively easy to get a bot to mimic the behaviors of a human within a game environment, it is very difficult to get one to recognize patterns of behavior and incorperate them in a way that could be called learning. Some of the more advanced 3-D Agent bots have some rudimentary skills in this area, such as calculating how often a player moves to a certain area and responding accordinly. However, the larger applications in this area are still being developed.

This is an example of Agent learning in a different game, called Bolo. It demonstrates how an Agent can learn within the game environment.

http://www-white.media.mit.edu/~intille/inducting_indy.html

 

There are several sites that provide further resources and information about Agent programming in general, and describe how it can be used to create lifelike opponents. Many of them delve into the more complex aspects of AI, such as genetic algorithms and neural networks.

Game AI

The AI Depot

Planet Quake's BotShop

AI Cafe