In the army, there can be specialised agents in firing or locating other agents. Evidently, it should be possible to include these behaviors into a single agent and make the whole army be a group of "I can do anything" agents. However there are time constraints and code contraints (agents cannot have threads) that suggests that having specialised agents is better.
DynamicSquadron | A dynamic squadron substitutes a captain by other soldier whenever current captain dies and there is a teamleader in the squadron |
Soldier | Is an agent able to receive orders and execute them. Additional capabilities like being a sharp shooter or locating targets are left as possible extensions of this role. |
SurviveABattle | The main goal of the game is to survive a round in robocode. The best survivor wins |
Captain |
A captain commands soldiers. In principle, a captain is supposed to be good at planning and interpreting the state of the battle.
An interesting possibility is assigning special perception capabilities to the captain, like being responsible of locating targets. Also a captain may not have this skill, but organise the radar information of its soldiers in order to locate efficiently a target. |
DynamicArmy | In a dynamic army, leaders are substituted by others whenever they die. This army is composed of several squadrons. There is no "general" role in this version. |