# How do I implement group formations in a 3D RTS?

I managed to get pathfinding work for a single unit, and I managed to avoid agent-agent collision, but now I need to be able to send a group of agents to some location.

This is my set-up so far:

• Waypoint pathfinding
• The minimum distance between two nodes is a little bigger than the biggest bounding sphere radius allowed for an agent.
• Agents avoid collisions with other agents by doing some steering behaviour I based on clearpath

So now I need to send my agents somewhere in group. I have read some posts saying that some way to do it is to create a group leader and give the other units offsets to his position.

But then the problem is, what if the group formation cannot be achieved? e.g. you want to form a rectangle, but at the target position there is a structure nearby which prevents you from creating a rectangle setup.

• I´m at work so I don´t have time to write up a proper answer, but here are my zero point two cents: Use a Boids flocking algorithm and then represent obstacles as objects that the Boids are repulsed from. – Nailer Apr 27 '12 at 14:06
• @Nailer he flocking algorithm would work as long as they are moving , but then how would I detect if their final position is "okay", and notify them that they can stop moving? Don't worry, I can wait for your answer ;) – xcrypt Apr 27 '12 at 14:35

There is actually a pretty nice article about this over at Gamasutra. And covers topics like formations and resolving collisions:

And another article from them on the same topic, which is a bit shorter but has more pseudo code examples:

Finally, a nifty thing to think about when implementing your system is the idea of a "Flow Field" Supreme Commander 2 used this; And it's based on Washington State University's Crowd Flows research.

• Thanks, I have seen the continuum crowds pathfinding stuff from supreme commander, but I think I'll stick with what I have atm. I'll try that when I get a bit more exp, because yeah it looks really nifty ;D – xcrypt Apr 27 '12 at 16:43

I think you can have a invisible "flock entity" that is the boss of the formation, and make so the other creatures position himself relative to this entity. If this entity can rotate, then the relative position will rotate too.

...oopos.. you are already doing that.