Here is a simple agent based crowd system in Houdini. Agents hit a moving target. It has the following features:
....\_Sense of 'Smell' -> Collision Avoidance
....\_Sense of Vision -> Target Detection
....\_Inter-agent Communication -> Global Decision Making (who will shoot first)
....\_Collision Avoidance Direction
The agents will scan their environment, try to avoid collisions, pick out a target and calculate the best trajectory to hit it with a certain projectile speed. If the target cannot be reached with a given speed limit then the trajectory will miss the object. You can see that behavior when the blue cube goes too high.
It is all implemented in sops (except for the initial target object animation) so it could be farmed out on a random frames. The trajectory is calculated using a few VEX lines and the rest is standard Houdini stuff.