Strategy on high level
Initial input processing:
- Pre-calculate all path length between zones, because there was about 900-1000 millisecs for reading and processing before the first round.
Input processing per round:
- Set a zone’s owner ID and mineable platinum source only when it is visible. Owner ID not always contained the proper information as the game description said. Just when the zone was visible for own pods.
Zones processing per round:
- Check if a zone worth to be explored. Means: zone has platinum on it, or has linked zone, which was not already visible before. This check is vital in the initial phase of the battle, helps fast exploration. (I know this could be improved, but didn’t have the time and brain for it
- For every newly explored zone (which just became visible), calculate the ‘shortest reachable zones count’ for every linked zones of it. This helped a lot to distribute pods if they have to go in different directions.
Discover/Conquer zones strategy:
- Quick and efficient discovery is a major part of my AI. It was improved all the time.
- First pod(s) check linked zones if they have platinum on them. If yes, then move to the zone with most platinum.
- Second if no platinum in the vicinity then move to the direction which have the most unexplored neighbor zones. This helps accelerate exploration a lot.
- Third check the above calculated ‘shortest reachable zones count’ and move towards the most promising direction.
- Pods distribution (when a zone have a lots of pods): Send more pods in the direction which have higher value of ‘shortest reachable zones count’.
- The tricky part is when all the neighbor’s of a zone is under my command (means owned). At this point the AI has to decide in which direction(s) the pod(s) worth move. Also calculated this using the ‘shortest reachable zones count’ of possible destinations, but divided by the distance between zones. Using this formula helped to sort possible explorable zones and choose the most promising.
- Disrupt any discover activity if enemy owned zone sighted and take over it. This helps track and hunt invisible infiltrators
Attack and defence of zones:
- If neighbour has enemy, but has more platinum than current zone, then attack with enough pods to conquer.
- If current zone has platinum and there is any enemy in the vicinity, then stay on that zone.
- If neighbour zone has more platinum and there is any enemy in the vicinity, then move to that zone to protect.
- Only attack or defend if there are not enough pods to keep/conquer the zone. This helps prevent “overprotection/overattacking”.
Special tactics for already owned zones:
- Check if a zone possibly in danger of take over by enemy in the invisible zone. Means: is there any enemy owned zone which can be reachable from that zone.
- If the zone - with platinum -, in danger of unnoticeable take over by the enemy, send guard to it in certain intervals.
Special tactics for long battles, which could lead to “undecided” matches:
- There are maps with just some narrow passages between bases. These narrow passes could lead to battles which don’t really end in victory from any of the sides because similar platinum sources.
- To help win some of these battles I implemented a logic, which kicks after 125 rounds: command 1 pod to discover all the previously not worthy to explore (grey) zones. I think this was a little help sometimes. ^^
Special tactics for maps where bases are really close to each other:
- Check in the first round is the distance of bases smaller than 9. I found that above 8 zones the exploration could be so extended, that the “natural” defence of bases could be enough to repel fast attacks. (This “magic” value could be calculated based on map size, but not worth the effort for me in practice.) If the enemy base is near, then send a few pods towards it to give them a goodbye note
- If the own base is in danger (means: enemy has more pods within a certain distance - for example 3 - than my own pods count)), then order enough own pods to come back to the base to defend.
- If the bases are really close to each other (means: less than 3 zones distance): order 1 pod to sit permanently in the base. This helps to prevent invisible sneaky attacks when my AI sends out pods to explore, but enemy comes in the shadow…
Possible improvements:
- Distribute more pods where more platinum discovered over time.
- Send reinforcements where more enemy sighted.
- Movement could be improved with evade manoeuvers, when enemy is overpowered and own pod could try to sneak besides them.
This wall of text just grasped some high level of tactics.
Have fun 