Overview video

BerryBots is a programming game. A player programs a ship that moves around the stage, sees gameplay events, and shoots at other ships. The API and game rules are simple and it's easy to get started in just a few minutes.

The stage is also configured and controlled by a program, so the gameplay on every stage is different. The sample stages include mazes, jousting, a race track, several arcade style games, and a few battle stages. You can program custom stages for tournaments or to focus on certain types of programming problems, like pathfinding or classification algorithms.


BerryBots tries to follow in the footsteps of Robocode, Robot Battle, Logo, and many other great programming games. You "play" these games by writing code to control a bot that moves around the screen. They can be used in educational settings to make learning to code more fun, or to provide a platform for exploring algorithms and AI.

BerryBots' origins can be traced back to a discussion at the RoboWiki, starting with a request from a legendary Robocoder to port Robocode to the Raspberry Pi. A few months later, I got Raspberry Pi fever. I ordered one to try writing a new programming game with the Raspberry Pi as the target platform.

I began with the goal of creating a simplified, Robocode-esque game with good performance on the Raspberry Pi. What I ended up with is a lightweight, flexible game that runs fast enough for the Raspberry Pi, has simpler APIs and game rules than Robocode, but also introduces a few elements that add a lot of gameplay depth, like walls on the playing field, programmable stages, simpler team support, and a secondary weapon.

More videos
Open source

BerryBots source code is released under the zlib license. Grab it from the Download page or the GitHub repository.


Fork me on GitHub