The domination game is a game played by two teams of agents. They will combat one another and accumulate points through capturing control points on the map. The team with the most agents on a control point will capture that control point. These control points remain captured by the same team even when left alone. Agents are capable of picking up ammo, that spawns at designated positions on the map, and use it to shoot other agents. Upon death, agents will respawn in their teams’ designated spawn areas. Agents can freely roam the map, but are unable to walk through walls or other agents.

Within one iteration an agent can turn, change its speed, and shoot (in that order). To assure that simulations can terminate in reasonable time, there is a reaction time limit per iteration per agent. Simply, if the agent exceeds this limit it will not do anything. Map layouts (walls, control points and such) are known at the start of the game, but other info are not commonly known and have to be observed by the agents (ammopacks and agents).


If you’re not going to read any of the other documentation, just do the following.

  1. Copy and modify the basic agent found in the source code (agent.py).
  2. Make sure your folder structure looks like this (you only need the domination module):
  1. Create another file, put the following code in there, and run it:

    from domination import core, run
    class MyScenario(run.Scenario):
       REPEATS = 10
       SETTINGS = core.Settings(max_steps=100)
    MyScenario.test(red='my_agent.py', blue='domination/agent.py')

Indices and tables