Lateley I have been very busy with a school project. We build a prototype/proof-of-concept client-server implementation of a game based on the roborally boardgame : http://en.wikipedia.org/wiki/Roborally
The question was how to design a programmable RoboRace implementation that catches the attention of high-school students and facilitates their nterest in Artiﬁcial Intelligence.
RoboRally board game is originally published in 1994 by Wizards of the Coast. Each player is represented by a robot in the game. During the game, the goal of each player is to keep his robot alive and to be the ﬁrst to reach a pre-designated number of checkpoints in a particular order. Each turn, the player will get up to 9 cards, with a speciﬁc movement attached. The player needs to arrange the order of the cards in order to form a movement for the robot the winner will be the ﬁrst robot who reaches the ﬁnal check point.
Based on the description of the RoboRace given to us and on our general understanding of RoboRally board game, in our design of our new Roborace computer game, we have some similar functions with the existing RoboRally games. The agent’s behaviour is not anymore controlled by the order of he cards; instead, the behaviour is controlled by a scripting language which we created. Robots get points by getting to the flag or “killing” another robot. They also get points substracted when they are killed.A robot in the RoboRace game should not only follow the pre-deﬁned behaviours but it should also learn from experience. That is, by introducing some game AI techniques, we aim to bring some “intelligence” to the robot.
It’s a prototype which is good enough for showing of at a presentation. But it’s not a finished product. I’ve suggested to open source the work but I don’t know whether they will do that. So I can’t publish anything.
We build a java-applet gui (which could be improved to run of a website). We also needed a server (python) to run the game logic and simulator environment.
We designed a programming language to program these robots and I was in charge of parsing it for errors and converting it to python. The language is almost a subset of python. I used regular expressions for the parsing and conversion. I have also programmed most of the functions which are called by the users.
And we needed a scientific report. Sadly we didn’t have time to do a lot of evaluation before handing in the report.
update : I produced roughly 140 kbyte of python source code though heavily commented because of these regular expressions in about 3 weeks. I choose python to implement some practical assignment in december because I knew I had to learn python for this school project. I already suspected python was very cool but using it myself made me realize it was even cooler than I suspected. I wrote a small testsuite which uses the unittest framework to put “Simple Language Agents” through the parser and convertor. I’m sure I will use python + unittest more often in the future.