Anyone can submit a bot and play. Participants do not need to be students any more (even though individual students usually have their own, easier category in the annual tournaments).
- All the games are 1v1. Game type is set to Melee.
Loss: A bot loses immediately under these conditions:
- If it loses all the buildings.
- If it crashes.
- If it slows down the game significantly. Every game frame takes some real-world time, depending on what bot is doing. The bot loses if he has:
- More than 1 frame longer than 10 seconds, or
- more than 10 frames longer than 1 second, or
- more than 320 frames longer than 85 milliseconds.
- Victory: The bot wins immediately if its opponent loses (see above).
- Draw: Draw results are no longer possible.
- Time limit: The game ends automatically either after 90 in-game minutes (86400 frames) or when no unit dies for 5 real-world minutes. When any of that happens, the win is assigned to the bot that has higher in-game kills+razings score, computed as BWAPI::Player::getKillScore() + BWAPI::Player::getRazingScore();
- Speed: By default, the games run at speed=20 (which is approximately 30% faster than the "Fastest" speed setting). Specific periods of the game are dynamically accelerated to maximum speed (speed=0).
- We stream every match live on our home page or at Twitch.tv. The replays are saved on the server and will be published after the tournament.
- Maps are selected randomly from our map pool.
- Complete map vision, or any other flags/cheats are forbidden.
- If the match result is evaluated incorrectly for some unknown reason, admins can fix it based on the replay file (replay files are accessible for users after logging in).
Here, we're getting a bit more technical.
- You need to submit a source code AND compiled bot (we will never publish or use your sources - we need them only for automated plagiarism check). We accept bots coded either as standard C++ BWAPI AI Modules or Proxy Bots or in JAVA (using BWMirror or JNIBWAPI). C++ bots need to be compiled as DLL or EXE files, Java bots as runnable JAR.
- Each bot needs to be submitted with a compatible BWAPI.dll file (follow the on-screen instructions while submitting the bot).
- The BWAPI.dll must be one of the versions supported by the tournament. The list of supported BWAPI versions expands over time and includes for example 3.7.4, 3.7.5, 4.1.0-beta, 4.1.1, 4.1.2 and 4.2.0.
- Using BWTA or similar libraries is allowed and encouraged. If you have some special requirements (external programs, libraries, etc.), let us know.
- Bots that behave suspiciously, don't run, or lag too much can be disqualified.
- The bots need to run on 32bit Windows 7 machines.
- Race: All three races (Terran, Zerg, Protoss) are allowed. The 'Random' race is allowed in the ladder and round robin phase of the tournament, but Random bots will not be allowed in the elimination tournament phase.
Writing and Reading Files
- You have read access to folder 'bwapi-data/read/' and write access to folder 'bwapi-data/write/', both of which are in the StarCraft root location (where StarCraft.exe is). After every match, the contents of the write directory is copied to the read directory with auto-overwrite. Your bot will be placed in 'bwapi-data/AI/' folder.
- Any reading or writing of other directories is forbidden. You have a 100MB limit for all the files in the read directory. If you go over this, you risk being disqualified.
- Your bot should never change current working directory (CWD). This might cause the tournament manager to think it's crashed and assign a loss.
- You can manually upload the contents of 'bwapi-data/read/' folder via bot submission interface, along with new versions of your bot.