Do you have any blog posts about the process of making this? I see the technology link, but I'd like to hear a little more about the architecture. Something along the lines of a post mortem maybe.
* What sparked this idea?
* Was your initial set of features more simple or more complex?
* Any features you had to give up on?
* Any unexpected features you were able to add after you were forced to rearchitect it? (Ok, I may be painting my own experiences on you with this question.)
* How long did it take?
I haven't written a post mortem yet, partly because I'm still building it, and partly because I hadn't seen it under heavy load (although I woke to emails from linode screaming at me about high CPU usage)
* The idea is one that I've been toying with for years. I've made other experiments that got some notice here a few years ago, too.
* There are some extra features that I still want to add at some point ('formations' for pre-building shapes, as an example. The database table is there, but no functionality.)
* Nothing given up on entirely yet.
* The only rearchitecting that happened was replacing the board UI with a canvas implementation. The initial version used a table and was painfully slow. From past experience I knew that wouldn't cut it, but it was an easy starting point.
* the initial commit was... October 2nd, but I didn't start working on it till a week later. All in all, I've just grabbed time between other (paying) projects.
Really nice implementation btw.
I usually write two versions of it once I start learning a language. I'll write my first iteration with minimal exposure to the language then try and come back later and make it more idiomatic after I've spent some more time with the language.
I've done this with Go, JavaScript, Python, and C so far. Most of my iteration 1's start off with a Java flavor, my second iteration in python was pretty impressive with regards to how many fewer lines I had to use compared to the non-idiomatic version.
I really should have saved them all somewhere. It would make an interesting repository of sample programs.
My first one was in gw-basic :-)
My challenge has been accepted, but my challenger will not place his armies, and so I'm effectively unable to play.
Perhaps he's placing a really, really elaborate pattern.
Edit: He placed about 30 minutes after accepting. I could still see this being a problem, and so this is a type of bug report.
I think there are probably a few too many civilians in there as well, messed up any cool formations I had far too early for them to be effective.
For example, imagine a game where flocks of boids[1] did battle, but instead of setting their initial position, you programmed the rules of behavior that governed each boid identically. The fixed rules of the system are such that the more "cooperative" the behavior, the greater the chance of success. Individual boids aren't allowed to have any memory (i.e. stateless), so AI solutions are precluded.
[0] http://phonons.wordpress.com/2010/06/01/cells-a-massively-mu...
I dig how you are using "war" as not just a metaphor, but a game concept.