So this has been in the works for a bit, and now that I have the basic server software up and running I can let the cat out of the bag! We (some friends and I) are having ourselves an AI competition writing Go bots (Go the ancient Japanese board game). All the details of the competition are on the wiki at ai.mindstab.net and the client (and server) software can be gotten from ai.mindstab.net/wiki/index.php/Goserver.
Anyone who is interested is more than welcome to join our merry little band of novice AI hackers. Just sign up on the wiki and make your presence known.
As for writing the Goserver software, that was an interesting little adventure. We built it around GnuGo's twogtp.py initially. This was my first time really working in Python, and I've got to say it was a pleasure. The language does a really credible job of getting out of your way and just letting you do stuff. There are a few odd little things about the language but once you get up to speed coding in it they hardly seem a problem. I still think I like Ruby overall for elegance, but until Ruby 2.0 lands with it's proper VM, execution speed isn't even comparable. Not that for this server that was an issue, more that we had a bunch of already written python code in gtptwo.py, which is is why Python was chosen. Still defiantly pleased, it's a fine language. So yeah, fun times.
As for a little more history for the 0 people who are interested, we're using GTP (Go Text Protocol) for the communication between engines and server. It's a protocol penned by the folks at GNU for GNU Go but being adopted else where. So there's plenty of software that can speak GTP as a client and several engine vs engine pieces of code using GTP out on the web GPLed for public use. However, running an actually Go server means you need to facilitate lots and lots of matches and also keep track of scores. Code for all that for the different internet Go servers is all closed source, which is why we had to write our own before we could start the competition. That done, we're all ready to Go!




