AUTONOMOUS AGENTS

askROMvectoragent1

I read this cool paper the other day called Steering Behaviors For Autonomous Characters . It's a presentation from the Game Developer's Conference by a really smart chap named Craig W. Reynolds.

The paper describes a variety of types of programmatic locomotion for autonomous agents (for example, video game characters) and outlines a framework for implementing these various kinds of locomotion in code. Some of the agent locomotion behaviors he describes are:

[seek] Get the food!
[flee] Watch out for bombs!
[evasion] Don't get caught!
[pursuit] Kill your prey!
[obstacle avoidance] Don't run into a wall!
[collision avoidance] Don't run into another agent!
[wander] Just move around aimlessly!

The core idea of his model is that after an agent has chosen what they are going to do (using a behavioral AI), the agent will "steer" themselves to acheive that goal. Rather than be controlled by an external force, all of an agent's locomotive forces are generated within each agent's code.

This prototype FLA illustrates the vector addition that is at the core of the vectoragent concept: Each agent has a forward velocity and a steering force. When the steering force is added to the forward velocity, we generate the resultant velocity vector. By sliding the three sliders you can see how the direction and force of the (green) resultant vector is determined by the vector sum of the other two values.

Download .FLA

This is just the beginning - stay tuned as the vectoragent evolves.

Go to next episode



email me