home >> Bot navigation
last update: oct 2006


A Bot navigation system can be decomposed in several sub-systems/processes:
a1- A set of precomputed data ( eg: waypoints+connections between waypoints covering the whole playable area)
a2- A Nav-AI process to compute a path from a starting and ending positions (eg: A*, read A-star), using the hereabove data;the path is assumed to be a sequence of elementary path segments (eg: a sequence of destination waypoints).
b- A trajectory control system that operates on one or two path segment(s) at a time( eg: the current destination waypoint and the next), and includes processes to handle switching between one path segment and the next, or to decelerate and stop on the final destination.
c- low level controls provided by the engine, basically to modify velocity value( modulus) and direction.

Processes for trajectory control as addressed here deliberately exclude trajectories fully computed from splines and the like. In other words, trajectories are not computed and stored as a sequence of points on a curve, but derive from appropriate - and hopefully simple and less CPU consuming- control laws.

Only trajectories for a bot moving on the ground will be addressed. Still, some solutions readily works or can be easily extended to "3D" moves ( swimming, no gravity world, jumps, ladder climbing,...).
I also assume that the bot/mobile does not move on another moving object( in a train, on a conveyor belt,...) nor in an environment moving relativeley to the ground reference frame( airplane in wind, ship in current,...), and that it is not "perturbated" by the game engine collision management.

The focus is on bots, but most of what is written here can actually apply to other mobiles ( cars, airplanes,...).