New Google AI Challenge: Planet Wars
aerique.blogspot.com
aerique.blogspot.com
My blog post was just meant to get it on Planet Lisp and make the Lispers aware.
This blog came in my Google Reader feed from Planet Lisp and I was mostly excited about the possibility of a CL package. I just submitted with my Reader + HN greasemonkey script (http://github.com/fitzgen/reader-submit-to-hn) without a second thought...
Sadly, that's all gone. Mods are gone, the modding forum is gone. Rather than an engrossing programming game, Galcon is now a mind-numbing clickfest. I am delighted to see Google picking up the concept.
How about mimicking them? Can one perform in-process "context switches" to do the same thing?
If no: where do you draw the line? Must each second's decisions be deterministic from the board state?
If yes: what's the difference? Ease of programming seems a poor metric, and you could just nab something that's already written that does this for you, resulting in nothing but increased compilation times.
GGPs can pretty much play any game with no continuous or unbounded variables, i.e. any game with a finite number of states. Popular examples include tic-tac-toe, checkers, and Connect 4; here's a larger list: http://code.google.com/p/ggp-base/source/browse/trunk/ggp-ba...
Planet Wars could be played by a GGP, assuming some bound on the number of ships that could be created, but standard approaches like UCT, which don't take into consideration similarity between states [1], would fail hard against a specialized player.
[1] For example, if UCT saw a good move in a given state, it wouldn't apply that knowledge to the adjacent state in which only one ship is in a different location.
But mostly I was thinking on the playing side: I don't think any of the current GGP approaches can even come close to playing strategy-type video games, because they don't typically have any real notion of, as you mention, similarity between situations, or a decomposition into hierarchical or interrelated concerns. A Starcraft bot that treated Dragoon microcontrol as an equivalent-level problem to build order probably isn't going to do well. I think the robotics community might actually have a better starting point: architectures with interrelated components like SLAM, planning, motor control, etc., as opposed to trying to turn the "robotics problem" into one giant state space to be navigated by one giant algorithm. Trying to build an agent that plays two quite different strategy games well (Starcraft and Planet Wars) might be one way of driving the development of those kinds of decompositions.
The problem is really all about game size, not generality or lack of "strategy". UCT is general (indeed, it converges to minimax in the limit), but with a large branching factor and a long game time it can be intractable to get a statistically significant number of samples. I guess you can think about strategy as a heuristic that drastically lowers the computational cost of planning...
A. "the number of ships on non-neutral planets increases according to the growth rate for that planet."
What does "according" mean - simple addition? And what happens to the neutral planets - no growth? In which case, how many fleets do the neutral planets start with?
b. "If the result is less than zero, then your bot gains control of the planet."
And how many losses have you incurred - exactly the number of defenders? If the defenders win, do they suffer losses equal to the number of attackers?
The reason I'm asking is that, if all the game does is simple addition and subtraction (no defense advantage, no Lanchester-type law for combat), then there probably exists a very simple optimal strategy, and it's more a problem of mathematics than AI.
I've only played with it a little and my impression is that growth rate is an integer that's added to the planet's population every turn, but only occupied planets not neutral ones. (So a planet of yours with a population of 138 and a growth rate of 5 will have a population of 143 next turn (assuming no increase or decrease from friendly or enemy ships).)
The answers to your questions are simple addition, no growth, random numbers, yes, and yes.
http://bestonlinerpggames.com/game/972/Little-stars-for-litt...
I don't see how existence of the optimal strategy entails that this is not the problem of AI. After all, all finite state deterministic games can be essentially solved by traversing the game tree, searching for the best strategy. The thing is that in most games, this approach is not acceptable because of time and space issues. That's why we call for AI - to find a strategy which may not be optimal, but is "good enough" and does not take much resources to find.
Besides, I do not understand why do you think that simple optimal strategy exists. The game of Go has equally simple rules, finding good strategy in it is not easy though.
2) The rules are not clear for me either. Last night I wrote a simple engine for planet wars [1], and I had to make some important decisions about things which the game description did not cover - for instance, what is the order of events in game? Is the number of ships on players' planets increased before or after the fleets arrive to them?
Alas.
Edit: I suppose the outage was momentary; the forum is rather hopping.
I've downloaded my kit from: http://ai-contest.com/starter_packages.php
Also, for what it's worth: http://ai-contest.com/forum/viewtopic.php?f=18&t=405&...
I suspect I'm having a goofy Java issue, but that's likely a personal bias.
Good luck Colonizing and coding.