2018 Registration is open!
You must register by September 1st, 2018 in order to compete.
Only register if you agree to releasing your source code and data - see the rules.
To register, send an email to David Churchill with
the following information:
Subject: SCAI2018 ENTRY
Entry Name :
Contact Person Name (First, Last) :
Contact Person Email Address: :
Race (in full game) :
DLL or Client :
BWAPI Version :
Brief Description of Bot / AI Techniques :
Bot Submission Guidelines
When submitting your bot, *please* follow these guidelines for submitting your bot's final version. To submit the final version of your bot, email email@example.com a single zip file containing:
- A compiled binary version of your bot we will use for immediate testing
- A folder containing the full source code of your bot
- A readme file containing compilation instructions, including any environment variables or external libraries (boost, etc) used in your bot, with links to the official download pages for those libraries (we will have the latest version of boost and all versions of BWAPI installed)
- Use this past UAlbertaBot submission as an example
The official versions of the BWAPI libraries we will use are here, your bot MUST COMPILE with one of these downloads, depending on which you chose when you registered:
Additional Submission Notes:
- DO NOT include BWAPI or large external libraries with your submission
- We *WILL NOT* compile your project with any submitted BWAPI library code as it has to compile with the standard versions available on the BWAPI websites
- If you do not have any additional files other than your compiled .dll and your source code, your submission probably shouldn't be over 5mb, so if your final submitted .zip file is larger than that, go through it and see what it is you are submitting that is so large. For example, UAlbertaBot from 2013's .dll + code submission was 3.1mb when zipped, so yours shouldn't be much larger than that.
- To ensure your bot works on our systems, please test your code on a fresh copy of Windows (easiest on a Virrtual Machine) before submitting. Please do not have any code that only works on a specific version of windows, or has any hard-coded directories for includes, linking, or configuration files that we may not have
- Make sure your Visual Studio projects do not contain any links to headers or link to files on your specific machine, for example no linking to c:\users\yournamehere\whatever.h, this will cause a lot of headaches for us. Use windows environment variables to point to libraries if you are using them and tell us which ones you are using somewhere. A *very good* way to test this is to install a clean windows XP virtual machine and try to compile your code on it. However hard it was to compile on that machine, it will be at least 19x as hard for me to do it after all the code is submitted.
- Remember, if we cannot compile your code without extreme headaches, your bot *will not* be entered into the tournament, since it is the version WE COMPILE that we run. So be as accurate as possible with instructions in a readme file in the top level of the zip submission
Environment Variables / Project Settings
Trying to compile all of your submissions can result in a bit of a headache,
due to the number of different configurations in your Visual Studio project files. To make this year's
submission / compilation process much easier, PLEASE adhere to the following scheme inside your
Visual Studio (and possibly Java) projects:
If you are using Windows (which you probably are) create Environment Variables named "LIBRARY_DIR" for
each included library. For example, if your bot uses BWAPI and BOOST, you would make the environment variables
BWAPI_DIR and BOOST_DIR. Then, inside your IDE's project settings, point your project to these Environment Variables rather than
hard-coded directories on your computer.
This will not only make it MUCH easier for us to compile your code, but for you to compile your code as
well, if you (for example) change your BWAPI version. All you need to do is change the environment variable
as opposed to changing multiple instances of the hard-coded directory in your project. If you stray from
these suggested settings at all, please provide the details and a GOOD reason for doing so in your
submission's README file.