Welcome to the RR docs!ΒΆ

In Robot Rumble, you develop robots that fight in one-vs-one arena battles. We currently support Python and Javascript, but more languages are planned. A very basic robot program looks like this:

Python

def robot(state, unit):
    if state.turn % 2 == 0:
        return Action.move(Direction.East)
    else:
        return Action.attack(Direction.South)

Javascript

function robot(state, unit) {
  if (state.turn % 2 === 0) {
    return Action.move(Direction.East)
  } else {
    return Action.attack(Direction.South)
  }
}

You write a program for an individual robot, and then, every turn, that program is run for every robot on your team. Global state is allowed, so how you make your robots work together is entirely up to you.

Robots fight in a 19x19 octagonal arena. In the picture below, dark squares are the wall, and green squares are spawn points. Every 10 turns, any robots still left in the spawn area are removed, and a batch of up to 4 robots randomly spawns for each team.

_images/arena.png

Every turn, a robot can either move or attack in one of four directions.

_images/grid.png

Every robot starts out with 5 HP, and attacks do 1 damage. There is no collateral damage, but there is friendly fire. If more than one robot moves into the same location, priority is given in a clockwise order starting from the North.

The health is represented by the shade of the robot. The blue and red squares in this image are robots on the two opposing teams of an actual game:

_images/health.png

If you have more robots in the arena after 100 turns, you win!