I'm a big Robocode guy (I help run RoboWiki.net) and I know it's used a lot in education. But Robocode, and Java in general, runs really poorly on the Raspberry Pi. So I started out with the goal of writing a lightweight Robocode-ish game that would run well on the Rpi, but it really grew into something unique and I'm pretty happy with it. If you know Robocode, I wrote up a rules comparison vs Robocode that might be helpful.
A few cool things about BerryBots for educational use:
- Fast and lightweight - Runs pretty fast on the Raspberry Pi. Can maintain 60 fps with a few moderately complex bots. Likewise, performance should be good on old/slow Linux machines too.
- Programmable stages - A big issue with Robocode is students plagiarizing strong bots (like mine ) off the internet. A teacher could easily write a custom stage for BerryBots, making it impossible to copy a bot off the web, as well as catering to whatever programming aspects they want to teach (eg path finding, classification algorithms). To give an idea, check out the Sample Stages, which show off a bunch of different styles of gameplay. This also means you can scale the difficulty of the stage to the programming level of the students, or have them write stages instead of bots.
- Simple APIs - The APIs and game rules are pretty simple. I think they're a lot simpler and more intuitive than Robocode.