DISC - SuiteBot II

Game rules

Game objectives and scores

The mechanics of the game is a bit similar to the legendary Bomberman. Your agent can move around a map and place bombs that explode after a while. The explosion destroys everything in its surroundings which gives you points. The objective is to collect as much points as possible. You can watch a sample replay of the game.

Moving

Each round your agent can move or plant a bomb. Legal moves are UP, DOWN, LEFT, RIGHT, HOLD and PLANT_BOMB. By playing HOLD the agent effectively skips the move and remains at current position. Planting bombs doesn't change agent's position and is explained later.

It is fine to step on home bases or bombs and in such case nothing happens. However, if two agents occupy the same field they collide and both die. Because agents actions are evaluated simultaneously, two agents can swap places without colliding.

If your agent dies during the round it automatically respawns at your home base. The respawn happens in the same round, so you always have exactly one agent to control.

Each game consists of 100 rounds.

Game plan

Game plan is a rectangular area mapped to a torus. If a player reaches the left border and continues left, they show up at the right border. Analogically for the top/bottom borders.

warping

The coordinates of the top-left field are [0,0]. The coordinates of the bottom-right field are [width-1, height-1] where width and height are the dimensions of the game plan.

Explosions and scoring

An agent may choose to PLANT_BOMB as its action. Doing this will place a new bomb on the field the agent is standing on. After planting the bomb, your agent has 4 rounds to escape. At the end of 4th round an explosion happens which kills every agent in its reach, mines the resources on fields and sets off every bomb in a chain reaction.

If an agent plants a bomb on a field where a bomb already is, the old bomb is removed and new is placed instead. The countdown is reset. This may be useful to stop an oponent's bomb from exploding and placing my own instead.

You gain points by destroying stuff with your bombs. At the beginning, every field has 1 point and hitting it with an explosion collects the 1 point for you. A second explosion hitting the same field will not give you any additional points. Killing an oponent agent gives you 10 points. There is no penalty if your agent dies in an explosion. An AI with the most collected points after the last round wins the game.

Consider a field which is in explosion radius of a bomb planted by agent A and also in radius of agent B's bomb. If both bombs explode at the same round, the point from destroying the field is not given to any of the players. If both bombs would belong to the same player the point would be awarded. The same applies to killing enemy agents.

Round evaluation

Rounds are evaluated in this order:

  1. Agents move.
  2. Colliding agents die.
  3. Agents plant bombs
  4. Bombs explode.
  5. Dead agents respawn at home bases. Any agents standing at enemy home base are killed and respawned as well.

Move time limit

The AI has to respond to a request within 200 ms, otherwise it forfeits a move (a HOLD move is played). If it fails to respond within 1000 ms, it is considered down and will no longer be queried for the end of the round. All its moves from that move onwards will be considered HOLD.

200 ms is plenty of time for a CPU. You don't need to worry about the limit unless you do something very CPU intensive.

RAM usage

There's no hard limit for RAM usage. However, we ask you not to go crazy when it comes to implementing memory intensive algorithms as the RAM of the game server is obviously limited. If you plan to do something that would get the RAM consumption above 50 MB please let the organizers know.

Game package

Download one of the following zip files and replace your starter package with the content. This will provide you with APIs tailored to the game rules.