So, I basically wanted to create a list of some ideas and strategies I could think of at this point. Feel free to share any that you have; the more ideas we have, the better.
Concerning a sort of a "central intelligence"
tl;dr:
Make Arkons create plans and govern the army, with scout communications to keep every unit informed. This would allow to launch more complicated strats that would require collaboration of many units, as well as knowing when to form defenses, attack the enemy, or what units are needed to be created.
full version:
Obviously, this year the robots are only allowed to communicate between themselves and can not receive commands from a central entity, therefore they rather function as individual members of a community capable of launching attacks, forming defenses, or adhering to certain strategies. And without a doubt, it would be useful to have order in the army, and have ways of analyzing the situation and reacting appropriately. Again, as every robot is a separate JVM instance, the "central intelligence" in this case would have to be one or a group of the robots, in this case functioning as a sort of "government" to the army. This intelligence would be tasked with keeping track of the army (knowing the whereabouts and current tasks of the robots, as well as keeping track of the current head count), forming fleets to attack the enemy, sensing enemy attacks and zombie waves and reacting appropriately (by creating lines of defense), and managing resources. The most likely candidate would be Arkons, because:
They are powerful thinkers; have twice the computational power of any other robot (20,000 byte codes instead of 10,000).
They aren't disposable, and have high health, therefore surviving for much longer than any other type of robot. This makes the problem of losing information with the death of a robot a less frequent problem.
Keeping track of the head count in the army would be simple, as Arkons are the only type that can build units.
With that said, the most important factor to making the central intelligence effective would be an effective way of communication (I'm thinking scouts) between the robots that comprise it, as well as sending messages to the rest of the army.
In more detail, here are a couple ways to implement the intelligence:
'League of Arkons' - all of the Arkons in the army work together to formulate ideas and give order to other units. They generally tend to stay close together (within Arkon view range), but when one needs to leave the rest (for reasons such as collecting parts), a scout is created or assigned to transport info back and forth, including numbers of created bots, incoming attacks, orders to retreat or rejoin. The Arkons keep track of bots they have created, and every so often send signals to each other, to update the total head count. They communicate with the rest of the army through scouts, receiving the current situation, processing it, formulating ideas, and sending back orders through scouts. Obviously, the problem here would be to try and code Arkons to work together when formulating responses, and this is where the next idea comes in.
'Dictator Arkon' - The same as above, but only one Arkon actually commands the empire, the rest just create units and send info. This would be easier in terms of making the intelligence work, but would have less computational power, and the dictator would have to be well protected, as unimaginable chaos would happen if the dictator were to die.
The last couple of notes: if the computational power of Arkons is not enough to fuel the intelligence, other units might be drafted to help play the role. Also, the Arkons' task might be simplified so make individual fleets and defence lines think for themselves (such as collaboration of different type units, when to extend or retreat, which target to prioritize, etc.). Then, the Arkon's role in controlling fleets would be nothing more than "Here's 50 units, you work together on this front to defend off the enemy, send for reinforcements if needed".
Path Finding (?)
This might not be excessively necessary, but as there is ruble in the way of robots, it might be beneficial to create some sort of path finding method for traversing terrain, rather than using the basic MapLocation.directionTo(location other). The most probable candidate in my eyes is A star, although when sending large numbers of robots to a certain location something like this can be used to simplify the CPU strain. The only problem I see with path finding in general is unnecessary computations for something that is not too important.
A list of strategies to possibly use
Collaboration of scouts and turrets
Arkon bombs
Scouts chasing away zombies
Strategically positioned defense lines
Sending out robots in groups to achieve goals; such as attack fleets, or (for maps like closequarters) groups to clear out rubble in the way of parts.
Also, just as a fun thought, it would be interesting to use the code to train a neural network, and then improve it with direct neuroevolution, although it might provide serious CPU strain.
So, I basically wanted to create a list of some ideas and strategies I could think of at this point. Feel free to share any that you have; the more ideas we have, the better.
Concerning a sort of a "central intelligence" tl;dr: Make Arkons create plans and govern the army, with scout communications to keep every unit informed. This would allow to launch more complicated strats that would require collaboration of many units, as well as knowing when to form defenses, attack the enemy, or what units are needed to be created.
full version: Obviously, this year the robots are only allowed to communicate between themselves and can not receive commands from a central entity, therefore they rather function as individual members of a community capable of launching attacks, forming defenses, or adhering to certain strategies. And without a doubt, it would be useful to have order in the army, and have ways of analyzing the situation and reacting appropriately. Again, as every robot is a separate JVM instance, the "central intelligence" in this case would have to be one or a group of the robots, in this case functioning as a sort of "government" to the army. This intelligence would be tasked with keeping track of the army (knowing the whereabouts and current tasks of the robots, as well as keeping track of the current head count), forming fleets to attack the enemy, sensing enemy attacks and zombie waves and reacting appropriately (by creating lines of defense), and managing resources. The most likely candidate would be Arkons, because:
With that said, the most important factor to making the central intelligence effective would be an effective way of communication (I'm thinking scouts) between the robots that comprise it, as well as sending messages to the rest of the army.
In more detail, here are a couple ways to implement the intelligence:
The last couple of notes: if the computational power of Arkons is not enough to fuel the intelligence, other units might be drafted to help play the role. Also, the Arkons' task might be simplified so make individual fleets and defence lines think for themselves (such as collaboration of different type units, when to extend or retreat, which target to prioritize, etc.). Then, the Arkon's role in controlling fleets would be nothing more than "Here's 50 units, you work together on this front to defend off the enemy, send for reinforcements if needed".
Path Finding (?) This might not be excessively necessary, but as there is ruble in the way of robots, it might be beneficial to create some sort of path finding method for traversing terrain, rather than using the basic MapLocation.directionTo(location other). The most probable candidate in my eyes is A star, although when sending large numbers of robots to a certain location something like this can be used to simplify the CPU strain. The only problem I see with path finding in general is unnecessary computations for something that is not too important.
A list of strategies to possibly use
Also, just as a fun thought, it would be interesting to use the code to train a neural network, and then improve it with direct neuroevolution, although it might provide serious CPU strain.