During grad school I took a course in Artificial Intelligence and another in Distributed Agents. For these classes I created a game that explored emergent behaviors of swarming agents. Players could design a small set of rules and release a swarm to compete against other players. The game is written in Java and uses PHP and SQL for the web interface.
Currently powered by Warcraft 2 Sprites… thanks blizzard!
AIBattle: distributed war agents. A number of small agents are placed on a large world map with the goal of survival by hunting and defending their castle, but ultimately, eliminating the enemy. Each agent has a very small range of vision and it is your job to design its very simple operating algorithm.
As the agents interact with their world, they gain experience for doing damage and killing other units (including sheep). As this experience increases, your agents become stronger and they upgrade to a Hero. Total team experience is also accumulated at the castle. As team experience increases, new units are created and released from the castle.
Aggressive vs Defensive: Brains that are programmed to be more aggressive tend to do better in situations where army sizes are small, such as brawls. (Think Lion) Brains that are highly defensive use their large numbers to provide safety. (Think Gazelle)
Grouping vs Wandering: Brains that stay grouped survive much more often, but brains that wander tend to cover more ground and, therefore, discover the enemy castle quicker. Brains that force grouping seem to do better, but brains do group naturally because of similar motives.
Cooperation vs Individualism: Brains seem to cooperate without any type of communication, but when they cooperate using shouts they can display more intelligent behavior by passing messages between each other. I think a good mix of both would work best.