6. Bot goals

Several different physical goals were determined after analyzing human players in the Quake environment. These goals are related to entities in the Quake environment. It is possible to divide the different goals into two types. These two types are nearby goals and long term goals. 

6.1 Nearby goals

A nearby goal is a goal one can move to in a straight line. The bot understands several different nearby goals. These are items, structural systems, waypoints, enemies and roam goals.

Item

The items that are reachable from the current position of the bot are nearby goals. When the bot wants such an item it will walk towards it and pick it up. To determine if the bot wants an item or to choose the best item out of several fuzzy logic is used. When the bot has an enemy the evaluation of the items is slightly different than when there's no enemy.

Structural system

There are several structural systems the bot doesn't really understand. The bot will use such systems but doesn't fully understand their relation with the rest of the environment. For instance the bot will ride a platform but doesn't know where it's leading to. The only structural systems the bot really understands are elevators and teleporters. The other structural systems, when reachable, are only used as nearby goals.

Waypoint

The waypoint system is used to translate long term goals into nearby goals. One waypoint is a nearby goal and leads the bot towards a long term goal.

Enemy

When fighting the enemy is a nearby goal. However an enemy can become a long term goal when chasing.

Roam goal

Roam goals are used to explore the environment. The roam goals used by the Omicron bot are random visible spots in space. When a roam goal is chosen several spots are evaluated and the one furthest away is chosen.
 

6.2 Long term goals

A long term goal is a goal one can't directly move to. The goal most often isn't visible as well. A player has to remember a path through the environment to travel towards the goal.
The bot understands several different long term goals. These are normal long term goals, walkabout goals, sound goals, chase goals and retreat goals. The bot translates long term goals into nearby goals using the waypoint system. When the bot wants to go to a certain long term goal it chooses a waypoint leading to the goal. Arriving at that waypoint the bot chooses the next waypoint leading to the long term goal. These waypoints are nearby goals.

Normal long term goal

A normal long term goal is an items that is useful for the bot. The bot can't directly walk to the item, otherwise it would have been a nearby goal.

Walkabout goal

A walk about goal is also an item, but the bot isn't going to such an item because it is useful. The bot travels to the item to find enemies. When the bot wants to fight, it will go to the location of items, assuming other players will go there as well, because the items are useful for them.

Sound goal

A sound goal is the location of a sound caused by a possible enemy. When the bot was able to locate a sound and wants to fight it will go to the origin of the sound to find an enemy.

Chase goal

When the enemy of a bot all of a sudden isn't visible anymore and the bot wants to chase, this enemy will become a chase goal. The bot will try to take the shortest path towards the enemy. The waypoint system is used to achieve this.

Retreat goal
 
When the bot is fighting and isn't "feeling" too well, it might want to retreat. In this case the bot uses a retreat goal. This goal is different from the other long term goals. The bot isn't traveling towards the physical goal (the enemy), but is moving away from it. Just like the bot follows waypoints to get near the enemy when chasing, the bot now tries to get as far away as possible, using the waypoint system.