VDAIC 2017 @ CIG

Visual Doom AI Competition (VDAIC) 2017 @ IEEE Computational Intelligence and Games (CIG'17)

The competition is over. The results can be found here .

Visual Doom AI


The last year's competition has been successful with a number of participants which submitted high-quality bots. Nonetheless, the bots have not yet achieved the human level in any track. There is much room for improvement.


The participants of the Visual Doom AI competition are supposed to submit an agent (in Python or Lua) that plays Doom using mainly visual input. Our ViZDoom framework gives a real-time access to the screen buffer as the only information the agent can base its decision on. The winner of the competition will be determined by a multiplayer deathmatch tournament.

Machine Learning

Although the participants are allowed to use any technique to develop a controller, the design and efficiency of the Visual Doom AI environment encourage to use machine learning methods such as deep reinforcement learning.

Competition Tracks

1. Limited deathmatch on a known map.

The only available weapon is the Rocket Launcher, with which the agents start. The agents can also gather Medikits and ammo (map01 in cig.wad).

2. Full deathmatch on an unknown map.

Different weapons and items are available. Five maps are provided for training. The final evaluation will take place on several (secret) testing maps.

Deathmatch Evaluation

Your controller will fight against other submitted controllers for 10 minutes on a given map. We will sum the results over at least 10 games (on the same map in the limited deathmatch track and on different maps in the full deathmatch track). The controllers will be ranked by the number of frags, where frag for this competition is defined as:

frag = number of killed opponents - number of suicides

We reserve the right to disqualify bots that behave random-like or/and are unintelligent in an evident way.


Prizes will be 500USD/300USD/200USD in each track (note the IEEE CIS awarding policy).

Would you like to sponsor the competition? Contact us.

Important Dates

  • 31.05.2017: Warm-up deathmatch submission deadline
  • 31.06.2017: Elimination round submission deadline
  • 15.07.2017: Elimination round results announcement
  • 31.07.2017: Final round submission deadline
  • 25.08.2017: Results announcement (CIG)

Rules of Engagement

Last change: Wed Jun 21 19:26:35 CEST 2017

Each team is allowed to a single submission with 1 bot. Teams and bots aren't allowed to cooperate.

Changes compared to 2016 edition:

  • crouching is forbidden,
  • respawn time of 10 seconds added,
  • new ViZDoom version (1.1.2).

During the contest, ViZDoom will have somewhat limited capabilities. It will be enforced by loading _vizdoom.cfg and +vizdoom_nocheat flag but anyway here is the list of settings and methods your agents aren't allowed to use during the competition:


  • loading your config file,
  • using ANY resolution,
  • using available buttons except for CROUCH,
  • using available game variables excpept for POSITION_X, POSITION_Y, POSITION_Z
  • using ANY available screen format,
  • changing the render options (render_crosshair/weapon/decals/particles),
  • setting agent's name and color via add_game_args("+name AI +colorset 0") (or in a config file),
  • using doom2.wad or freedoom2.wad - it is your choice,

All paths and configs are set so that running the programs from the team directory is required so run the agent from their directory and do not change it during runtime.


  • tinkering with the file system outside your agent's root directory,
  • network communication (unless you need localhost for something),
  • using send_game_command method (e.g. adding bots),
  • using new_episode method


  • using depth, automap and labels buffers (they will be filled with random noise),
  • changing mode, scenario path, vizdoom path,
  • using USERX variables,
  • using CROUCH button (won't have any effect)
  • using POSITION_X, POSITION_Y, POSITION_Z game variables (zeros or noise)
  • using For more information about how the code will be run and how to prepare agents please refer to the submission page.


Getting started

  1. Install ViZDoom environment.
  2. Preferably read the tutorial.
  3. Read how to get started.
  4. Follow the the submission instructions.


To make a submission for the competition follow the submission page guidelines.

Selected submissions might be published on this website after the competition is finished.

Technical Information

  1. Each controller will be executed on a separate machine having a single CPU and GPU at its exclusive disposal.
  2. The machine specification: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 16GB RAM + GTX 960 4GB.
  3. Environment: Docker on 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64).
  4. Nvidia Driver Version: 375.39.