University of Waterloo Computer Science Club with Google support has organized a sport programming event to create bot for real time strategy game called Galcon. It looks pretty simple - we have planets and fleets (both on planets and in space) and we need to either conquer all planets or to have most powerful fleet. Bots can be written in most major languages - C#, Java, Python, C++, Scala, PHP - and you need to download "starter package", run emulator from console and train until your Perfection can be uploaded.
Strategies that can be implemented is the biggest value, yet its worth nothing without the code. I will not go into genetic programming, since its a burden to store chromosomes and run same maps and bots for couple of hundred times over to generate stable kind. And by the end it will still have hard-coded matrixes that cannot be changed against new opponent, let alone "figure out" its antistrategy in mid flight.
So some strategy list
- Attack planets using mixed sorting - proportional to its productivity and reverse to its defence and distance.
- Send assistance to own planets that are attacked or have biggest productivity to defence ratio. This will equally normalize forces among all planets
- Predict future battles, taking into account all incoming ships and planet growth rates (with its overtake steps)
- Take into account general region topology
some maps give opponent too much advantage(maps are symmetrical) - Change agressiveness depending on future prediction by predicting fleet size + X steps ahead
* planet productivity
Tactics (custom behaviour)
- "Leech" — attack neutral planets that are attacked by enemy so that its overrun right after enemy takes over. It becomes complicated if enemy uses stream attacks instead of single fleet
- "Frontier" — send support to planets that are closer to enemy
- "Galactic threads" — don't send big single fleets, but small threads instead depending on source planet productivity
- "Preventive strike" — attack enemy planets that are closer in overall. This increases future prediction, because enemy has to fly a lot - otherwise small enemy planet in the center can become key strategic post to launch attacks that cannot be avoided.
- "Retreat"
— abandon planet if you already know that it will be overrun and there is no support to give + bad future estimation (no reason to exchange ships 1:1) + there is neutral planet nearby that can give productivity boost
See also forum, galcon forum, tcp server.