How to Compete

Both the AIIDE and CoG competitions will have the same guidelines for registering, submitting, and competing in the competitions. The schedules and rules for each competition can be found in the menu above.

Be sure to read all of the rules for whichever competition you are submitting to, available in the menu above.

Registration

You must register by the deadline of a given competition in order to compete. All registered bot names and race selection will be made public at the end of the registration deadline, before bot submission.

To register, send an email to Dave Churchill with the this template: register.txt

Submission

You must be a registered competitor in order to a submit a bot to the competition. The submission must be made in full by the submission deadline in order to compete. Any registered bot that does not submit by the deadline will be disqualified.

When submitting your bot, *please* follow these guidelines for submitting your bot's final version. To submit the final version of your bot, email dave.churchill@gmail.com a single zip file containing:

Additional Notes

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.

Competition Rules

The following common rules apply to both the AIIDE and CoG competitions.

BWAPI Version

The official versions of the BWAPI libraries we will use are here, your bot must work with one of these downloads, depending on which you chose when you registered. Your bot MUST be compiled with one of the official release versions of BWAPI to ensure that it does not have any advantage due to API modifications.

Bot Naming

Each bot will be given an in-game name identical to the bot name used during registration. Names will be case-sensitive. No special characters are allowed.

One Bot Per Author

No individual person may appear as an author for more than one bot.

Game Type

The game type for the competition will be 1 vs 1 full game of StarCraft: BroodWar 1.16.1 with fog of war enabled. No cheat code will be enabled or allowed during the competition.

Time Limit

Games will have a 'frame limit' of 86400 frames, to simulate one hour of gameplay. If a game goes this long, it will be stopped and the in-game score will be used to determine the winner.

Bot Time-Out

Make sure that each onframe call does not run longer than 42ms. Entries that slow down games by repeatedly exceeding this time limit will lose games on time. In particular a bot will be given a game loss if one of the following occurs:

>= 1 frames exceed 10 seconds, or
>= 10 frames exceed 1 second, or
>= 320 frames exceed 55ms

Game Speed

All games will be played at setLocalSpeed(0) (fastest setting). Please make sure that your bot functions correctly on this setting. To avoid problems, base your 'timings' on unit counts or currentFrame() and not machine time. The in-game lobby game speed slider will be set to Normal (i.e. latency frames = 3)

Persistent File I/O

Bots will have read access to folder 'bwapi-data/read/' and write access to folder 'bwapi-data/write/', both of which will be in the standard location under the StarCraft root directory. IMPORTANT: File I/O works as follows:

Again, due to the nature of overwriting the read folder with the contents of the write folder, your file names should be unique at least to the current opponent. Two popular choices for file naming schemes are:

Software Rules

In-Game Rules