In 1986,
Craig Reynolds created a computer model of
flocking "
boids". In this, each "
boid" is guided by 3 steering behaviors:
Separation,
Alignment, and
Cohesion. This was presented at a SIGGRAPH '88, and has been used in
Half-Life,
Unreal, and
Enemy Nations
- Separation is defined to steer each boid to avoid crowding, and collision.
- Alignment allowed each boid to steer toward the average heading of other local boids. Without this, the flock resembles a swarm of bees, or flies.
- Cohesion prevents the flock from dispersing by steering each boid toward the average position of local flockmates.
This is a
stateless technique. Each iteration requires no memory of the previous, which is advantageous when memory constraints are an issue.