the contest is almost over and im interested in what approaches you took with your bots. I can think of several methods and im courious if anyone used them and what problems they had. So maybe i can learn something from other users without having the trouble to implement a -lets say genetic algorighm- myself

- Game tree expansion
Advantages:
Things like the importance of the center on some maps come natural to this method..Also it avoids any blunder like attack neutrals just to have your front planets taken within the next turns
Disadvantages:
That tree is damn huge. you need to prune it heavily. Also within one second its very difficult to get any meaningful results. Pruning the tree has other disadvantes like
orchestrated attacks (launch some ships now, that are later joined by others launched from different planets) are not possible. Moves like "attack planet with 61 ships with 5 ships from this planet and nothing else" are the first branches of the tree that get cut....
- Bot made by genetic algorithms
Advantages: its cool...other than that: none

Disadvantages: you can be happy if you finally have a bot that issues a valid order. You must carefully choose what kind of mutations/crossovers you allow to happen.
- Neural net
Advantages:
You need like PLAYERS * MAXPLANETS input nodes for planets and how much ships are on them and whom they belong. another HUMAN_PLAYERS * MAXPLANETS * MAXDISTANCE input nodes for how many ships are arriving, when and to whom they belong, and the same for distances an planet growth.3 hidden layers of unknown (a lot) node count and then some output node. Its easy to implement , not likely to exceed time limit and guaranteed to find the optimal solution. At least I'm somewhat sure because you do a stochastic gradient descent...bla bla...

disadvantages:
neccecary node count for hidden layers not known
you need A LOT of time and EVEN MORE cpu power, not likely to be strong within acceptable time
All of these methods have the disadvantage that they have no domain knowledge. They should find the right moves but perform poorly in carrying them out (like using to many or too much ships, not attacking as soon as possible, etc) on the other hand whe have the
-Hashtable-Bot
Advantages:
Opens a TCP connection to a server where all situations and their optimal moves are precalculated. The client is easy to implement...

Disadvantes:
Might be considered cheating. You need a fast server with a huuuuge storage
-Handcrafted shiny hardcoded student-bot (most likely contestant *g*)
Advantages:
Step-by-step improvements, you actually KNOW why it does what it does. Pretty good tactics because the "obviuos" correct move are easy to describe (attack with one more ship than defender has on the turn you arrive etc...)
Disadvantages:
Most programmers will spend their time forcing some strategy into their bots after they continuously loose when failing to taking planets in the center, or taking them just to be sniped. This results in bots with lots of tweaking, weird "measures" of how good a move is, redundant code that performs the same task in different manner, lots of "commented out" and generally messy code. I know it. I've seen it

Some may hardcode a gametree of depth 1 for this...When i do this, what would the opponent do... but in the end, all these bots are doomed to reach a point, where additional "improvements" conflict with other parts of the bot and actually make him perform worse.
What i think is most promising, is a combination of a hand made bot that nows how to perform certain tasks, and a generic "learning" algorithm that provides a strategic value for every possible task or even better: every task combination. This algorithm can be based on any of the methods mentioned in the beginning. space.invaders seems to do something similar to this and I am curious how well they perform in the end.
Things like opponent modelling where you try to learn how your opponent works and exploit his weaknesses (we dont have to play optimal, just better than him...) are left out because that would be at least unusual. So finally...feel free to tell me what your experiences are or if im mistaken with any of my statements. After all I did not do any of the cool stuff, I just wrote the first things that came to my mind about them...
And also...if you did something completly different...le us know

amstan here: Please use this topic, do not make new ones.