VDAIC 2016 @ CIG Submission

Submission guidelines

The competition is over but the page is left here for the future reference.

Submissions should be made using the submission form but read the following guidelines before filling the form.

Last update: Sun Sep 11 01:24:30 CEST 2016

Note that a requirement for about.pdf (short agent description) was added in the latest update!

The form requires you to give a link (or two in case of participation in both tracks) to your code bundle(s) and here is a couple of words about how to prepare the bundle(s):

  • bundle should be a zip archive $TEAM_NAME_track${1 or 2 or 1n2}.zip, do not use spaces (use undersocres or camelcase), e.g. MyAwesomeTeam_track1.zip, in case of using the same agent in both tracks name the bundle $TEAM_NAME_track1n2.zip e.g. MyAwesomeTeam_track1n2.zip
  • top level of the bundle should contain ONLY a directory named $TEAM_NAME_track${1 or 2 or 1n2} (the root directory),
  • contents of the bundle should not exceed 1GB.

The root directory should contain a README file listing dependencies and some additional (optional) information which could be helpful or even essential to run your code. The root directory should also contain some additional files (sh for Linux and bat for Windows):

  • make.sh/make.bat - a script building/preparing your program (by e.g. running cmake, ant or maven and setting up whatever you want); if you do not need any building produce an empty script (or print your favourite quotation) so we know that nothing is missing,
  • run.sh/run.bat - script that launches your agent; your program should expect to find all vizdoom binaries in ./bin directory - it will be copied on runtime; you should not be concerned about setting any paths to wads/vizdoom as it will be done automatically by loading _.vizdoom.cfg (during init) supplied by us.
  • about.pdf - a short description of how your agent works. There are no requirements regarding format or length of the description (except for it being a pdf) but it is required. Description provided with sample bundles is just a placeholder and should not be treated as a baseline.

Make sure to add any symlinks required in e.g. Python's import vizdoom in make script or preferably beforhand (e.g. ln -s bin/python/python.so). Note that symlinks can be created even if the linked file (vizdoom.so) does not exist. Please do not copy the binaries - especially on runtime.

A code bundle should be structured as follows:

TEAM_NAME.zip
\----TEAM_NAME(your root directory)
     \----README
     \----make.sh or make.bat
     \----run.sh or run.bat
     ....other files and dirs which are NOT wads or binaries

We prepared a minimalist, sample bundles in case you have any doubts:

How the code will be run

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.

We have also prepared bundles showing how (more or less) we are planning to run your code. The bundles contain already unzipped sample teams (the same as above).

Note that the binaries and cig.wad might slighlty change with time due to corrections of yet undettected bugs and issues. Original bundles were created for version 1.1.0pre-CIG2016-warm-up. Current versions use Windows 1.0.4 release and Linux build made at the time of this commit(Mon Aug 22 18:41:55 CEST 2016).

To test how it all goes run run.sh or run.bat as follows:

########## WINDOWS ONLY ##########
# Run your program as the host:
run.sh -host YOUR_TEAM_DIRECTORY
# The same on Windows:
run.bat -host YOUR_TEAM_DIRECTORY
##################################

########## LINUX ONLY ##########
./run.sh --help
Usage: run.sh TEAM [OPTIONS]
Using join xor host is mandatory.
Options:
    --help                       Show this help.
    -h, --host  PLAYERS_NUM      Run as a host.
    -j, --join  HOST_IP          Join a game on the given ip.
    -r, --record  RECORD_FILE    Recording file name (none by default).
    -m, --map  MAP_NUMBER        Map number in {1,2,3,4,5} (none by default).
    -d, --doom                   Use doom2.wad instead of freedoom2.wad

# Host a game with 8 players on map01 
./run.sh YOUR_TEAM_DIRECTORY --host 8 -map 1
# Join a game hosted locally
./run.sh YOUR_TEAM_DIRECTORY --join 127.0.0.1
##################################

The host version waits for 7 other players to join you so to run a quick check change -host 8 in _vizdoom_host.cfg to -host 1 or spawn 7 other instances with -join. Note that -host 1 runs actually in a single player mode so it would be the best idea to try to run a truly multiplayer game (e.g. with human) to check if everything works correctly.