O'Reilly logo

Programming Game AI by Example by Mat Buckland

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Cohesion
Cohesion produces a steering force that moves a vehicle toward the center
of mass of its neighbors. See Figure 3.16, bottom. A sheep running after its
flock is demonstrating cohesive behavior. Use this force to keep a group of
vehicles together.
This method proceeds similarly to the last, except this time we calculate
the average of the position vectors of the neighbors. This gives us the cen
-
ter of mass of the neighbors — the place the vehicle wants to get to — so it
seeks to that position.
Vector2D SteeringBehaviors::Cohesion(const std::vector<Vehicle*>& neighbors)
{
//first find the center of mass of all the agents
Vector2D CenterOfMass, SteeringForce;
int NeighborCount = 0;
//iterate through the neighbors and sum up all the position vectors
for (int a=0; a<neighbors.size(); ++a)
{
//make sure *this* agent isn't included in the calculations and that
//the agent being examined is a neighbor
if((neighbors[a] != m_pVehicle) && neighbors[a]->IsTagged())
{
CenterOfMass += neighbors[a]->Pos();
++NeighborCount;
}
}
if (NeighborCount > 0)
{
//the center of mass is the average of the sum of positions
CenterOfMass /= (double)NeighborCount;
//now seek toward that position
SteeringForce = Seek(CenterOfMass);
}
return SteeringForce;
}
You might be a little disappointed that I haven’t included demos for separa
-
tion, cohesion, and alignment. Well, there’s a reason for that: Like Itchy
and Scratchy, they are not particularly interesting on their own; they are
much better appreciated when they are combined, which takes us nicely
into flocking.
How to Create Autonomously Moving Game Agents | 117
Group Behaviors

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required