Build a tank.
Write its brain.
Win the rumble.

robocode-s is a reimplementation of Robocode with a Rust engine and robots that run in their own process, talking to the engine over an open protocol. Classic Java robots run unmodified, turn for turn identical to classic Robocode.

Download Get started Rankings

Classic

Existing robot jars run as they are. Every turn matches classic Robocode exactly, checked against real RoboRumble robots.

Any language

Robots talk to the engine over an open protocol, so they can be written in Java, Kotlin, Python, C#, Rust or C/C++ and run locally, in a container or on another machine.

Reproducible

In deterministic mode the same seed gives the same battle on every machine. Find a bug once, replay it forever.

The rumble

A distributed league: volunteers run the battles, results are cross-checked, and every matchup can be watched in the browser.

Where we are

robocode-s 0.1.0 is out. Classic Java robots, the samples and real RoboRumble bots alike, fight identically to classic: headless from the command line, or in the desktop GUI with debug painting, recordings and replays. Robots run sandboxed, locally or on other machines, and battles are deterministic by default. Download it for Windows, Linux and macOS from the download page. Follow along on GitHub.

  1. M0 Bootstrap: repository, CI, design Done
  2. M1 Headless engine + classic Java robots, bit-exact Done
  3. M2 Desktop GUI: viewer, debug paint, replay Done
  4. M3 Sandbox, remote runners, installers Done
  5. M4 The rumble: rankings, volunteers, submissions Planned
  6. M5 Robots in Python Planned
  7. M6 Battle replays in the browser Planned
  8. M7 Online editor Planned
  9. M8 Robots in .NET, Rust, C/C++, Kotlin Planned