Revised Rules

(more details)

Software Requirements

All entries must use BWAPI version 3.6(.1) and run under Windows XP SP3. No exceptions. For each entry we need a DLL that can be used by chaoslauncher to start a game or a batch file that starts a proxy bot (see Submission).

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: In a match a bot LOSES on time iff

   >= 2 frames exceed 10 seconds
or >= 10 frames exceed 1 second
or >= 200 frames exceed 55ms

Also, unlike the first Starcraft AI competition, this year we demand that all source code and data files needed to compile and run the competition entries will be made available to the public as free software with a license that is compatible with the GNU public license.

We received a variety of opinions on this matter and decided, in the end, that to foster research it is best to have the next generation of programmers stand on the shoulders of giants, rather than re-invent the wheel. Please note, that program authors retain the copyright of their code. Also, releasing code as free software will allow new authors to take code from the previous competition and improve it. This has worked well in the past in the International Planning and ORTS competitions.

We reserve the right to reject entries if we feel the authors attempt to obfuscate their code (like using silly or deceiving variable names or encoding their algorithm in a 10MB FSM transition matrix stored on disk). Authors who are concerned about the source code leaking information that has not been published yet, are encouraged to submit a technical report to their institutions that describes their entries prior to submitting the code.

To simplify this process we ask authors to only use standard development tools, that can be invoked via shell commands (such as Visual C++). In case remote access is not feasible, we will need detailed instructions for building each DLL.

Hardware Configuration

The tournament will be run on 20 undergraduate lab machines. Each program will get exclusive access to a PC with an Intel E8500 CPU and 4 GB of RAM.


Each player can choose its race and will play complete games against other players. Currently, BWAPI (3.6.1) does not support random race selection, so you need to choose one fixed race. Games are timed. If the winner of a game is undecided after 1 hour, the player with the higher Starcraft built-in score at that point in time wins.

Our goal is to maximize the number of played games to make the results statistically significant. We will play as many round-robin rounds on 20 lab computers in 5 days as possible.

In between rounds storage will be cleared. I.e., any data written to disk will be removed. Originially, we had planned to allow entries to store persistent data on disk for opponent modelling purposes. However, in addition to network file locking problems, this can create fairness issues if the tournament software is allowed to schedule games asynchronously (which it does to maximize the number of played games).


We have selected 10 maps for the full-game competition. For each encounter of any two programs a subset of those maps will be chosen randomly (see The map files are ordered lexicographically:

0: (2)Benzene.scx
1: (2)Destination.scx
2: (2)Heartbreak Ridge.scx
3: (3)Aztec.scx
4: (3)Tau Cross.scx
5: (4)Andromeda.scx
6: (4)Circuit Breaker.scx
7: (4)Empire of the Sun.scx
8: (4)Fortress.scx
9: (4)Python.scx

Bots who registered earlier will host the first game when you are paired with them, and hosting toggles in subsequent encounters.


Although we only accept 30 entries, we encourage teams 31-35 to submit their bots as well because some teams might withdraw.

For submitting an entry create two zip files: and, where %botname% is the name of your entry (e.g. and All zip files must contain a single root directory %botname% in which all other files reside.

The src-zip %botname% directory must contain all source, library (including BWAPI and BWSAL, BWTA if necessary, but no huge libraries or executables that can be downloaded, such as boost or jdk), and data files files and readme.txt (sample) that explains how to build your DLL or exe file. Following the instructions we will try to compile your submission. If this fails, we will contact you and try to resolve the issues. If we can't successfully build your DLL or exe files, your submission will not take part in the tournament. The src zip and replay files will be made available here after the tournament.

If you submit a DLL bot, the exe-zip %botname% directory must contain either your DLL (%botname%.dll) and any other files you want present in bwapi-data\AI\ folder for your bot to use.



For proxy bots, the exe-zip %botname% directory must contain all files your bot needs and a batch file named run.bat that contains the command(s) needed to start your bot. Your bot MUST exit after one game.

Example: Files in zip archive:  


run.bat:  UAlbertaBot.exe

Submit your entry using the following template via email AFTER we have released the MD5 checksum of our files:


Text (copy & paste):

Bot Name                          :
Contact Person Name (First, Last) :
Contact Person Email Address:     :
Affiliation                       :
Random 32-bit number (hexadec.)   :
Race                              :
DLL or ProxyBot                   :
Brief Description                 :

Don't forget to attach: and and note that you need to submit a new random number (because we didn't release ours in time). Late entries will be rejected.

Conflict of Interest

Organizing AND participating in events like this can be tricky, in particular if some choices, like which maps we use, are made "randomly", and we get access to competitors source code prior to running the tournament.

We address these problems as follows: 1) for choosing maps we will use the standard Java pseudo random number generator that will be seeded by the XOR combination of "random numbers" all program authors provide when they submit their entry. Our random number is 0x7829D823. 2) Before accepting zip files, we will distribute the MD5 check sums of our zip files to all participants. This way, participants can be confident that we don't change our entry after seeing their source code.

Last modified on