Rules

Participants

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).
Please note that during (yearly) tournaments, only one submission per author is allowed due to the possibility of collusion and other shenanigans. If you have worked on more than one bot submitted to SSCAIT, please make sure to inform the SSCAIT admins by email ( [email protected] ) or directly at least one week before the tournament starts. Another option is to just submit an empty ZIP file which would disable the given entry automatically. This would allow the additional submissions to be promptly disabled before the tournament schedule gets generated. If it gets discovered that multiple bots written by the same author end up participating in the tournament, they will all be disqualified! Also please note the new rule about submitting clones of existing bots.

Games

  • All the games are 1v1. Game type is set to Melee.
  • StarCraft Brood War version 1.16.1 will be used for all games.
  • 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).

Bots

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.
  • The BWAPI.dll that you submit, must match one of the following MD5 hashes:
    • 1364390d0aa085fba6ac11b7177797b0
    • 2f6fb401c0dcf65925ee7ad34dc6414a
    • 4814396fba36916fdb7cf3803b39ab51
    • 5d5128709ba714aa9c6095598bcf4624
    • 5e590ea55c2d3c66a36bf75537f8655a
    • 6e940dc6acc76b6e459b39a9cdd466ae
  • Using BWTA or similar libraries is allowed and encouraged. If you have some special requirements (external programs, libraries, etc.), let us know.
  • 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. If you'd like your bot to continue playing in the second (elimination) phase of the tournament, your entry must have picked a specific race *before* the tournament starts.
  • Bots that behave suspiciously, don't run, or lag too much (e.g. lagging client based bots that the tournament module can't detect) can be disqualified.
  • The SSCAIT admins reserve the right to disqualify any bots that are implementation-wise too similar to previous entries (e.g. clones and forks) without adding anything novel / original to the table.
  • Bots are NOT allowed to:
    • intentionally crash StarCraft
    • pause the game, games in which a bot pauses the game will be counted as a loss
    • spam the in-game console
  • The following StarCraft bugs/tricks are permitted:
    • Plague on interceptor
    • Units pressed through
    • Drops to defuse mines
    • Mineral walk
    • Manner Pylon
    • Lurker hold position
    • Observer over turret
    • Stacking air units
  • All other bugs/exploits are forbidden. Bots caught attempted these exploits will be disqualified. This includes but is not limit to:
    • Flying drones and templars
    • Terran sliding buildings
    • Intentional stacking of ground units
    • Allied mines
    • Gas walk (in all cases including: to get through blocked entrances or ramps; to attack any units)
  • If you copy other bots or use IP/files/source code/logic/techniques etc from other bots, you must familiarize yourself with their licenses and ensure that you are not infringing their licenses. Copying other bot(s) is allowed, so long as it does not infringe their licenses and so long as you modify their logic or if you use/wrap it without modifying it and add some of your own logic on top of it, similar to how MegaBot used Skynet/Xelnaga/NUSBot in year 2017, or wrapping/modifying Randomhammer/UAlbertaBot/CommandCenter etc. If you do something like this, you must provide the source code and compilation instructions etc of the bots that you use, so that we can compile them. We decided 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. We encourage authors to take code from old years of this competition and improve it. If you copy a bot, please uphold the spirit of competition and ensure you make significant modification or addition before you submit it. We don’t want multiple apparently near-identical copies of the same bot competing! Additionally, please contact the original bot (in case it has been updated at least once during the past year) author and ask them for permission to upload it.

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.
  • The contents of the read/ and write/ folders are only accessible to you! No other bot author can view or download the contents of those two folders!