reinforcement learning on Doom
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
Dockerfile
FAQ.md
README.md
crowdai.json
mock.wad
random_agent.py
run.sh
submit.sh

README.md

VDAIC2018 Multiplayer Starter Kit

CrowdAI-Logo

gitter-badge

vizdoom_deathmatch

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

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-multiplayer-starter-kit.git
cd vizdoom2018-multiplayer-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 !.

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 6 -p 1 --multiplayer

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 random_agent.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-multiplayer-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-multiplayer-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-multiplayer-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_multi_player"
      • grader_id - "vizdoom2018_multi_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_multi_player",
  "grader_id": "vizdoom2018_multi_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-multieplayer
  • push the contents of this repository into this new private repository
git remote add crowdAI git@gitlab.crowdai.org:<your-crowdAI-user-name>/vizdoom2018-multiplayer.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-multiplayer-track-2/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-multileplayer/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)