TigSource Forums came thru! One of the replies to my post suggested that the behavior I was after was from the emergent behavior described as Boids. Emergence is a relatively synchronized behavior that can be defined by a few simple rules. The flocking of geese would be an emergent behavior. And, more importantly, so would herding reindeer. From Wikipedia:
Boids is an artificial life program, developed by Craig Reynolds in 1986, which simulates the flocking behaviour of birds.
As with most artificial life simulations, Boids is an example of emergent behavior; that is, the complexity of Boids arises from the interaction of individual agents (the boids, in this case) adhering to a set of simple rules. The rules applied in the simplest Boids world are as follows:
- separation: steer to avoid crowding local flockmates
- alignment: steer towards the average heading of local flockmates
- cohesion: steer to move toward the average position (center of mass) of local flockmates
So essentially what I need to do to make the herding mechanic work would be to apply these three rules to each of the deer objects in the herd group and have them act as a group. When finding a lost deer we could have him path-find to the point at the center of the group, then add him to a Herd_Group list which implements the Boids rules. I’ll need less of the first two than the second, as part of the game mechanic is pushing and guiding the herd with the dog.
Anyways, I thought it was pretty sick!
here’s an example of Craig Reynolds’ principles in action: