Flocking is a computer model for the coordinated motion of groups (or flocks) of entities called boids. Flocking represents group movement—as seen in bird flocks and fish schools—as combinations of steering behaviors for individual boids, based on the position and velocities of nearby flockmates. Though individual flocking behaviors (sometimes called rules) are quite simple, they combine to give boids and flocks interesting overall behaviors, which would be complicated to program explicitly.
Flocking is often grouped with Artificial Life algorithms because of its use of emergence : complex global behaviors arise from the interaction of simple local rules. A crucial part of this complexity is its unpredictability over time; a boid flying in a particular direction may do something different a few moments later. Flocking is useful for games where groups of things, such as soldiers, monsters, or crowds move in complex, coordinated ways.
Flocking appears in games such as Unreal (Epic), Half-Life (Sierra), and Enemy Nations (Windward Studios).
Flocking was first proposed by Craig Reynolds in his paper "Flocks, Herd, and Schools: A Distributed Behavioral Model," published in Computer Graphics, 21(4), SIGGRAPH'87, pp. 25-34.
The basic flocking model consists of three simple steering behaviors (or rules):
Steer to avoid crowding local flockmates.
Steer toward the average heading of local flockmates.
Steer to move toward the average ...