Main Page
This is a collaborative wiki, so please, if you want to contribute send an email to Alberto Uriarte (admin[at]starcraftai.com) with your desired username. Public registration is disabled to avoid spam bots and vandalism.
List of bots (incomplete)
Bot | Author | Type | Download | Source code | Description | |
---|---|---|---|---|---|---|
Krasi0bot | Krasimir Krastev | C++, .dll file | DLL | — | Very well balanced | |
UAlbertaBot | David Churchill | C++, .dll file | DLL | GitHub | Zealot rush | |
AIUR | Florian Richoux | C++, .dll file | DLL | GitHub | Random strategies | |
Nova | Alberto Uriarte | C++, .dll file | DLL | ZIP | ||
XIMP | Tomas Vajda | C++, .dll file | DLL | ZIP | Cannons & Carriers | |
ICEbot | ICElab | C++, .dll file | DLL | ZIP | Offensive Terran | |
BTHAI | Johan Hagelback | C++, .dll file | DLL | Google Code | Single base Terran | |
WryxoBot | Martin Strapko | Java, .jar file | JAR | — | Mass Dragons | |
Yarmouk | I-Strategizer Research Group | C++, .dll proxy | — | GitHub | Case-Based Planning | |
OpprimoBot | Johan Hagelbäck | C++, .dll dll | DLL | GitHub | Can play all three races | |
EMAPF | Thomas Willer Sandberg | C++ | — | Google Code | ||
ITUBot | Volkan Ilbeyli | C++, .dll dll | — | GitHub | Able to do walling | |
SPAR | PLANIART lab | C++, .dll dll | DLL | ZIP | ||
StarPlanner | Panagiotis Peikidis | Java, .jar file | — | GitHub | Uses GOAP | |
Odin | Team of 5 persons | C++, .dll file | — | GitHub | ||
StarBot | Kyle Bignell | C++, .dll file | — | Bitbucket | ||
GarmBot | Aurélien Lermant | C++, .dll file | — | — | Hydra/ling/queen | |
Killerbot | Marian Devecka | C++, .dll file | — | — | Muta or lurker | |
LetaBot | Martin Rooijackers | C++, .dll file | — | ZIP | Various rushes | |
Overmind | Berkley team | Java | — | — | Mutalisk play | |
Skynet | Andrew Smith | C++, .dll file | DLL | ZIP | Zealot, later all tech | |
Tyr | Simon Prins | C++, .dll file | — | — | Marine, tank, bc | |
WOPR | Soeren Klett | C++, .dll file | — | — | 1 base zealot | |
tscmoo | unknown | .exe file | — | GitHub | z and t | |
Lightning | Wesley Heung | Java | — | GitHub | ||
FreScBot | Florent D'Halluin, Valentin Leon-Bonnet | C++, .dll file | DLL | Bitbucket | Only micro, can play 3 races | |
Bonjwa | Dustin Dannenhauer | C++, .dll file | — | ZIP | ||
CruzBot | Daniel Montalvo | C++, .dll file | — | ZIP | ||
HITA | Hiroto Takino | C++, .dll file | — | ZIP | ||
MaasCraft | Dennis Soemers | C++, .dll file | — | ZIP | ||
MooseBot | Adam Montgomerie | C++, .dll file | — | ZIP | ||
NUSBot | Team | C++, .dll file | — | Google Code | ||
Oritaka | Yoshitaka Hirai | C++, .dll file | — | ZIP | ||
TerranUAB | Filip Bober | C++, .dll file | — | ZIP | ||
Xelnaga | Ho-Chul Cho | C++, .dll file | — | ZIP |
Testing dynamic table
Bot | Author | Affiliation | ELO | BWAPI | Type | Binary | Lan. | |||
---|---|---|---|---|---|---|---|---|---|---|
AB3A | Tiago Henriques | 2.6.1 | Proxy | DLL | Java | |||||
AIUR | Florian Richoux | 2,507 | 3.7.4 | DLL | DLL | C++ | ||||
AdjutantBot | Nicholas Bowen | 2,131 | 3.7.4 | DLL | C++ | |||||
BTHAI | Johan Hagelbäck | 2,108 | 3.7.4 | DLL | DLL | C++ | ||||
Bigbrother | Luke Deshotels | 1,592 | 3.6.1 | DLL | DLL | C++ | ||||
Bonjwa | Dustin Dannenhauer | 1,584 | 3.7.4 | DLL | DLL | C++ | ||||
BroodwarBotQ | Gabriel Synnaeve | 2,077 | 3.7.4 | DLL | DLL | C++ | ||||
Bw-karl | LordBlackhawk | 3.7.4 | Client | C++ | ||||||
Chronos | Daan O. Bakker | 1,955 | 3.0.3 | DLL | DLL | |||||
Cromulent | Juan Bernardo Tamez | 1,625 | 3.6.1 | DLL | DLL | C++ | ||||
CruzBot | Daniel Montalvo | 1,746 | 3.7.4 | DLL | DLL | |||||
Dementor | Matej Istenik | 1,903 | 3.7.4 | DLL | DLL | C++ | ||||
EISBot | Ben Weber | 2,126 | 3.6.1 | Proxy | DLL | Java | ||||
EMAPF | Thomas Willer Sandberg | Proxy | C♯ | |||||||
FreScBot | Florent D'Halluin | 3.7.4 | DLL | DLL | C++ | |||||
GaoyuanChen | Gaoyuan Chen | 2,055 | 3.7.4 | |||||||
GarmBot | Aurélien Lermant | Proxy | Java | |||||||
GaudaBot | Paramm | 2,458 | 3.7.4 | DLL | DLL | |||||
HIJ | Ilja Honkonen | 1,614 | 3.0.3 | DLL | DLL | C++ | ||||
HITA | Hiroto Takino | 1,644 | 3.7.4 | DLL | DLL | C++ | ||||
ICEbot | ICE Lab | 2,460 | 3.7.4 | DLL | DLL | |||||
ITUBot | Volkan Ilbeyli | DLL | C++ | |||||||
ItayUndermind | Sabato Itay | 2,393 | 3.6.1 | Proxy | DLL | Java | ||||
Killerbot | Marian Devecka | 2,763 | 3.7.4 | DLL | ||||||
Korhal | Travis Thieman | 3.7.4 | Proxy | Clojure | ||||||
Krasi0bot | Krasimir Krastev | 2,465 | 4.0.1 | DLL | DLL | C++ | ||||
LetaBot | Martin Rooijackers | 2,211 | 3.7.4 | DLL | DLL | C++ | ||||
Lightning | Wesley Heung | Proxy | Java | |||||||
MaasCraft | Dennis Soemers | 2,187 | 4.0.1 | DLL | DLL | C++ | ||||
Manolobot | Cristian Conde | 3.0.3 | DLL | DLL | C++ | |||||
MooseBot | Adam Montgomerie | 1,918 | 3.7.4 | DLL | DLL | C++ | ||||
NUSBot | Gu Zhan | 1,621 | 3.7.4 | DLL | DLL | C++ | ||||
Nova | Alberto Uriarte | 2,379 | 3.7.4 | DLL | DLL | C++ | ||||
Odin | Björn Persson Mattsson | DLL | C++ | |||||||
OpprimoBot | Johan Hagelbäck | DLL | DLL | C++ | ||||||
Oritaka | Yoshitaka Hirai | 3.7.4 | DLL | C++ | ||||||
Overkill | Sijia XU | |||||||||
Overmind | Berkley team | 2,466 | 2.8.0 | Proxy | DLL | Java | ||||
SCAIL | Jay Young | 3.7.4 | DLL | DLL | C++ | |||||
SPAR | Simon Chamberland | 2,297 | 3.7.4 | DLL | DLL | C++ | ||||
Scbot | Swen Gaudl | 3.7.4 | Proxy | C♯ | ||||||
Skynet | Andrew Smith | 2,928 | 3.7.4 | DLL | DLL | C++ | ||||
Sqlitebot | Jeremy Cothran | 2.6.1 | DLL | DLL | C++ | |||||
StarBot | Kyle Bignell | DLL | C++ | |||||||
StarPlanner | Panagiotis Peikidis | Proxy | Java | |||||||
TerranUAB | Filip Bober | 1,610 | 3.7.4 | DLL | DLL | C++ | ||||
Terranswarm | Anderson R. Tavares | 3.7.4 | DLL | C++ | ||||||
Tinbrain | Tim Morton | 4.0.1 | DLL | C++ | ||||||
TomasCere | Tomas Cere | 1,968 | 3.7.4 | Proxy | Java | |||||
Tscmoo | Tscmoo | 2,385 | 3.7.4 | Client | C++ |
Tools
- BWAPI is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar.
- BWTA2 is a terrain analyzer library for BWAPI.
- BWMirror is a Java wrapper for BWAPI.
- JNIBWAPI is another Java interface for BWAPI.
- CyBW is a Python wrapper for BWAPI implemented in Cython.
- StarCraft AI Tournament Manager.
- SSCAIT Tournament Watcher.
- SparCraft is an open source StarCraft combat simulation package for Windows and Linux.
- BWSAL is a project that aims to develop several add-ons for BWAPI.
- Korhal is a Brood War AI written in Clojure on top of a custom fork of JNIBWAPI.
- BWDI. Another StarCraft Broodwar interface. Unfinished but with interesting ideas.
- Migration scripts for converting BWAPI 3 source to BWAPI 4 source
- Replay watching enhancement.
Tutorials
- BWAPI + BWMirror Tutorial (Java)
- BWAPI Tutorial (C++)
- Getting Started with BWTA2
- Improving mineral gathering rate in Brood War
- StarCraft NeuroEvolution Unit AI
- Map analysis
- For development
- Visual Studio VC++ 2013 Express is enough.
- If you want to compile old bots (VS2008 projects) with VS2013. Install the Windows SDK 7.1. Remember you should uninstall first any version of Visual C++ 2010 redistributable, otherwise Windows SDK setup will fail.
- For running BWAPI Bots on non-development machines (e.g Tournaments clients) you only need the VC 2013 Redistributable Package
Tournaments
Various venues host remote competitive AI competitions that allow developers from around the world to participate. These venues are often held annually and will sometimes offer prizes to the winners. It is also a great way to test your bot's capabilities.
- SSCAIT: Student StarCraft AI Tournament (games played and streamed all the time, finals take place in Winter)
- AIIDE: AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment (part of the program of annual research conference, takes place in Summer)
- CIG: IEEE Conference on Computational Intelligence and Games (part of the program of annual research conference, takes place in Summer)
- BWAPI Bots Ladder (games played all the time)
- BWAPI mini tournament on iCCup's server with a mix of human and bot players.
Temporal links
Some unsorted references before organize everything
- StarCraft: Brood War Attack Animation Frame Data
- Exactly how do the custom AI scripts work?
- Brood War AI Project v3.1
- Basics of UMS Mapping
- Research Papers
- A Treatise on the Economy of SCII
- Guide Map Making
- StarCraft Brood War Data Mining
- Learning using SARSA
- BroodWar unit images as transparent PNGs
- Funny videos
- Game Theory with Applications to StarCraft
- Game Theory Applied to Starcraft II
Map Editing
- CHK Format
- Unused Unprotector 2 StarCraft Tool and the source code.
- Scmdraft map editor. Under downloads, you will obtain version 0.8.0, but this is not the latest version. Instead, you will want to look at the news page and get ScmDraft 2 (0.8.1), located in the
temp
folder. - Unfortunately, the author did not update the version number in the build, so it incorrectly says 0.8.0, making things quite confusing. You will need this if you want to be able to create Extended Unit Death (EUD) triggers (the
Memory
condition will be enabled when creating a trigger). - The downside of using EUDs is that the memory offsets change with every version of StarCraft; I doubt that will be a problem these days though.
- EUD Database, with EUDTrig to find unit offsets. With EUDTrig, you need to copy comctl32.ocx (alternate location) into the current directory. You need ArtMoney for monitoring the process and finding the hex values in the first place. Then, see this exported wiki article.
- Staredit Network's Wiki, and the StarEdit forums. Be sure to change the theme after login, as I find the default one annoying.
- You have 256 switches that you can use to set/reset game state. Death counters are an alternative, and they trigger at a rate of 1 death count = 84 milliseconds.
- Only Players 1 through 8 can own triggers. Neutral (Player 12) cannot, and such triggers will be ignored.
- How to make 4 players share minerals + gas. Lousy resource, but hard to find anything on this.
- It looks like a lot of the good EUD's are patched. EUDEnable. This post clears up exactly what is being read (4 bytes at a time). Many of the tutorials simply assume that all other bytes are 0, which is often incorrect.
- Using Death Count Timers instead of waiting.
- How damage works, such as for burning buildings.
- And overview of working with MPQ archives. Use MPQDraft to patch MPQ files. For reading and editing the contents, use MPQ Editor.
- StarEdit FAQ. StarCraft Mapmaker's Guide.
- StarCraft unit sizes. You can use DatEdit (
StarEdit
tab) to get the Placement box in pixels. The pixels for a Terran Dropship, for example, are height 37 and width 49. Sincescmdraft
is zero indexed, be sure to enter your locations forbottom
andright
as one less than what it actually is. In this example,bottom
would be 36 andright
would be 48. - Frequently Asked Questions