starter kit for vizdoom2018-singleplayer track
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

VDAIC2018 Singleplayer starter kit




How to start your participation in Visual Doom AI Competition 2018 - Singleplayer Track (1)!

Local build

Instructions for building and testing the image locally.

Install Dependencies

  • docker : By following the instructions here
  • nvidia-docker : By following the instructions here
  • repo2docker
pip install crowdai-repo2docker

Cloning repository

git clone
cd vizdoom2018-singleplayer-starter-kit

Build Image

Assuming you have docker setup on your machine. You can now build the image by :

export image_tag="my_submission_image"
crowdai-repo2docker --no-run \
  --user-id 1001 \
  --user-name crowdai \
  --image-name ${image_tag} \
  --debug .

Start Server for a Mock Evaluation

In a dedicated tab (terminal) you need to run a host for your agent to be able to connect to the game (also in single player!).

export host_container_name="vizdoom_host_container"
docker rm -f $host_container_name #Ensure an old instance of the container is not present

docker pull spmohanty/vizdoom2018_host_image 
docker run \
  --name $host_container_name \
  --net=host \
  --env="DISPLAY" \
  -it spmohanty/vizdoom2018_host_image \
  /home/crowdai/ -b 0 -p 1

Run Agent Locally

export container_name="my_submission_container"
docker rm -f $container_name #Ensure an old instance of the container is not present

export image_tag="my_submission_image"
docker run \
  --net=host \
  --name ${container_name} \
  --env="DISPLAY" --privileged \
  -ti --rm \
  ${image_tag} \

and you should see something along the lines of :

Beginning execution of
AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
Press 'Q' to abort network game synchronization.
Contacting host: |

Now your agent should be able to connect with the local instance of the grader and start a mock evaluation.

TL;DR : Creating a Submission

Note: This section assumes, that you have setup your SSH keys on by following the instructions here.

  • Setting things up the first time
# Clone Repository 
git clone
cd vizdoom2018-singleplayer-starter-kit
# Point to new Origin 
git remote rename origin oldorigin
git remote add origin<YOUR_CROWDAI_USER_NAME>/vizdoom2018-singleplayer-starter-kit.git
git push origin master
# Update Author
sed -i 's/spMohanty/<YOUR_CROWDAI_USER_NAME>/g' crowdai.json
git commit -am "Update crowdai.json"
  • Submitting to crowdAI
git tag -am "version 0.1" v0.1
git push origin v0.1
echo "Check the status of your submission at : '<YOUR_CROWDAI_USER_NAME>/vizdoom2018-singleplayer-starter-kit/issues'

Creating a Submission

Making your first submission is actually much easier.

  • Create a private repository on (name is arbitrary) The repository should contain:
    • Dockerfile that installs dependencies, copies any files and setups anything you require (see a sample Dockerfile)
    • crowdai.json file which may contain any arbitrary fields that you like (e.g. description of the submission) but must contain the following three field:
      • challenge_id - "vizdoom2018_single_player"
      • grader_id - "vizdoom2018_single_player"
      • author - name of the author (string), for teams, pleas also create a field 'authors' containing a list with all authors Sample crowdai.json:
  "challenge_id": "vizdoom2018_single_player",
  "track_id": "vizdoom2018_single_player",
  "author": "Johnny the Leader",
  "authors": ["Johnny the Leader", "Steve the Devops", "Goeff the AI guy", "Bill the Intern" ],
  "license": "MIT",
  "version": "alpha of pre beta",
  "algorithm": "A3C on steroids",
  "expected_result": "Total Anihilation"

Lets say you created a repository at:<your-crowdAI-user-name>/vizdoom2018-singleplayer
  • push the contents of this repository into this new private repository
git remote add crowdAI<your-crowdAI-user-name>/vizdoom2018-singleplayer.git
git push crowdAI master
  • remember to modify crowdai.json to use your author information.
  • create and push a new tag :
git tag -a v1.4 -m "my version 1.4"
git push crowdAI master
git push crowdAI v1.4

Every tag you push is counted as a submission. And a new submission should reflect on the challenge page at : You will be able to see your AI agent actually play the game and see more details about your submission evaluation of your submission on :<your-crowdAI-user-name>/vizdoom2018-singleplayer/issues

as a new issue (though it's not necessarily an issue) 😉.

A video of the game will also be generated and available from the leaderboard. How cool is that? :godmode:


Check out our FAQ section for common questions