VDAIC2018 Singleplayer starter kit

CrowdAI-Logo

gitter-badge

VideoGif

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 git@github.com:crowdAI/vizdoom2018-singleplayer-starter-kit.git
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/run.sh -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} \
  /home/crowdai/run.sh

and you should see something along the lines of :

================================================================================
Beginning execution of mock.py
================================================================================
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 https://gitlab.crowdai.org by following the instructions here.

  • Setting things up the first time
# Clone Repository 
git clone git@github.com:crowdAI/vizdoom2018-singleplayer-starter-kit.git
cd vizdoom2018-singleplayer-starter-kit
# Point to new Origin 
git remote rename origin oldorigin
git remote add origin git@gitlab.crowdai.org:<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 : 'https://gitlab.crowdai.org/<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 gitlab.crowdai.org (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:

https://gitlab.crowdai.org/<your-crowdAI-user-name>/vizdoom2018-singleplayer
  • push the contents of this repository into this new private repository
git remote add crowdAI git@gitlab.crowdai.org:<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 : https://www.crowdai.org/challenges/visual-doom-ai-competition-2018-singleplayer-track-1/submissions 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 :

https://gitlab.crowdai.org/<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:

FAQ

Check out our FAQ section for common questions

Author(s)