Difference between revisions of "Main Page"

(Added link to AttackOrderTimings spreadsheet)
 
(77 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
{{#seo:
 +
|title=StarCraft AI, the resource for custom StarCraft Brood War AIs
 +
|keywords=StarCraft,Brood War,Broodwar,AI,BWAPI,bots,BWTA2
 +
|description=Resource for custom StarCraft Brood War AIs or bots made with BWAPI
 +
}}
 
<div class="lp-banner-container">
 
<div class="lp-banner-container">
 
   <div class="lp-banner">
 
   <div class="lp-banner">
 
       <div>
 
       <div>
 
         <div class="mpwelcome">Welcome to StarCraft AI</div>
 
         <div class="mpwelcome">Welcome to StarCraft AI</div>
         <div class="mpsubtitle">The StarCraft BroodWar Resource for custom AI</div>
+
         <div class="mpsubtitle">The StarCraft BroodWar Resource for custom AIs</div>
         <div class="mplinks">[https://www.reddit.com/r/StarCraftAI/ Subreddit] '''·''' [https://www.facebook.com/groups/bwapi/ Facebook Group] '''·''' [http://webchat.freenode.net/?channels=BWAPI BWAPI IRC Channel]</div>
+
         <div class="mplinks">[http://forum.starcraftai.com Forums] '''·''' [https://www.facebook.com/groups/bwapi/ Facebook Group] '''·''' [http://webchat.freenode.net/?channels=BWAPI BWAPI IRC Channel]</div>
 
     </div>
 
     </div>
 
   </div>
 
   </div>
 
</div>
 
</div>
== List of bots ==
+
'''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.'''
  
{| class="sortable wikitable" style="text-align:center;"
+
<div id="main-wrapper">
!data-sort-type="text" width="2px"|
+
  <div id="main-column">
!data-sort-type="text" width="100"|'''Bot'''
 
!data-sort-type="text" width="120"|'''Author'''
 
!data-sort-type="text" width="100"|'''Type'''
 
!data-sort-type="text" width="100"|'''Download'''
 
!data-sort-type="text" width="85"|'''Source code'''
 
!data-sort-type="text" width="170"|'''Description'''
 
|-
 
|{{RaceIconSmall|T}}||{{player|Krasi0bot}}||Krasimir Krastev||C++, .dll file||[https://docs.google.com/file/d/0B0DevQUC5Mvaa0ZUVnF5VHplQVJVajh5OEpDakxFQ24wMEh3/edit DLL]||-||Very well balanced
 
|-
 
|{{RaceIconSmall|P}}||{{player|UAlbertaBot}}||David Churchill||C++, .dll file||[http://speedy.sh/cRCgs/UAlbertaBot.dll DLL]||[https://github.com/davechurchill/ualbertabot GitHub]||Zealot rush
 
|-
 
|{{RaceIconSmall|P}}||{{player|AIUR}}||Florian Richoux||C++, .dll file||[http://speedy.sh/73vQt/AIUR.dll DLL]||[https://github.com/AIUR-group/AIUR GitHub]||Random strategies
 
|-
 
|{{RaceIconSmall|T}}||{{player|Nova}}||Alberto Uriarte||C++, .dll file||[http://nova.wolfwork.com/files/Nova-exe.zip DLL]||[http://nova.wolfwork.com/files/Nova-src.zip ZIP]||
 
|-
 
|{{RaceIconSmall|P}}||{{player|XIMP}}||Tomas Vajda||C++, .dll file||[http://speedy.sh/xJeaq/Ximp.dll DLL]||-||Cannons & Carriers
 
|-
 
|{{RaceIconSmall|T}}||{{player|ICEbot}}||ICElab||C++, .dll file||[http://goo.gl/Zr3TWr DLL]||-||Offensive Terran
 
|-
 
|{{RaceIconSmall|T}}||{{player|BTHAI}}||Johan Hagelback||C++, .dll file||[http://code.google.com/p/bthai/downloads/detail?name=BTHAI_3.3-bin.zip&can=2&q= DLL]||[http://code.google.com/p/bthai/ Google Code]||Single base Terran
 
|-
 
|{{RaceIconSmall|P}}||{{player| WryxoBot}}||Martin Strapko||Java, .jar file||[http://speedy.sh/y83n5/Wryxo-Bot.zip JAR]||-||Mass Dragons
 
|-
 
|{{RaceIconSmall|T}}||{{player|Yarmouk}}||I-Strategizer Research Group||C++, .dll proxy||-||[https://github.com/RtsAiResearch/IStrategizer GitHub]||Case-Based Planning
 
|-
 
|{{RaceIconSmall|T}}||{{player|OpprimoBot}}||Johan Hagelbäck||C++, .dll dll||[https://github.com/jhagelback/OpprimoBot/releases DLL]||[https://github.com/jhagelback/OpprimoBot GitHub]||Can play all three races
 
|-
 
|{{RaceIconSmall|T}}||{{player| EMAPF}}||Thomas Willer Sandberg||C++||-||[https://code.google.com/p/emapf-starcraft-ai/ Google Code]||
 
|-
 
|{{RaceIconSmall|T}}||{{player|ITUBot}}||Volkan Ilbeyli||C++, .dll dll||-||[https://github.com/vilbeyli/ITUBot GitHub]||Able to do walling
 
|-
 
|{{RaceIconSmall|P}}||{{player| SPAR}}||PLANIART lab||C++, .dll dll||[http://www.planiart.usherbrooke.ca/projects/spar/files/SPAR.dll DLL]||[http://www.planiart.usherbrooke.ca/projects/spar/files/SPAR.rar ZIP]||
 
|-
 
|{{RaceIconSmall|T}}||{{player| StarPlanner}}||Panagiotis Peikidis||Java, .jar file||-||[https://github.com/pekalicious/StarPlanner GitHub]|| uses Goal-Oriented Action Planning
 
|-
 
|}
 
  
== Tools ==
+
== BWAPI ==
 
* [https://github.com/bwapi/bwapi BWAPI] is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar.
 
* [https://github.com/bwapi/bwapi BWAPI] is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar.
* [https://bitbucket.org/auriarte/bwta2 BWTA2] is a terrain analyzer library for BWAPI.
+
** [http://bwapi.github.io/ Documentation] '''·''' [https://github.com/bwapi/bwapi/releases Releases] '''·''' [https://github.com/bwapi/bwapi/issues  Issue Tracker] '''.''' [https://docs.google.com/document/d/11cq9ACPX4lpJcubc-Xq1ozvfXwrrE8Z07R8y1LjACss/edit BWAPI5 Technical Design (WIP)] '''.''' [https://docs.google.com/document/d/1cfciQltt-2DHXfdMWB7ryZ7JsUW42JAjYgBfOrJmHp0/edit#heading=h.v6he6uv2a6vh BWAPI 4.x.x Technical Overview]
* [http://bwmirror.jurenka.sk/ BWMirror] is a Java wrapper for BWAPI.
+
'''BWAPI extensions'''
* [https://github.com/JNIBWAPI/JNIBWAPI JNIBWAPI] is another Java interface for BWAPI.
+
* [http://bwem.sourceforge.net/ BWME] is a terrain analyzer library.
 +
* [https://bitbucket.org/auriarte/bwta2 BWTA2] is a terrain analyzer library.
 +
* [https://github.com/Fobbah/bwsal BWSAL2] is a project that aims to develop several add-ons.
 +
* [https://github.com/davechurchill/ualbertabot/tree/master/SparCraft SparCraft] is an open source StarCraft combat simulation package.
 +
* [https://github.com/tbalint/JarCraft JarCraft] is a SparCraft port in Java using [https://github.com/JNIBWAPI/JNIBWAPI JNIBWAPI]
 
* [http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/tm.shtml StarCraft AI Tournament Manager].
 
* [http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/tm.shtml StarCraft AI Tournament Manager].
 +
'''Using other programming languages'''
 +
* Java: [http://bwmirror.jurenka.sk/ BWMirror], [https://github.com/JNIBWAPI/JNIBWAPI JNIBWAPI]
 +
* [https://github.com/eishub/Starcraft/ GOAL]. An AI language on top of BWAPI, under development by University of Delft, Netherlands.
 +
* Python: [https://bitbucket.org/ratiotile/cybw CyBW]
 +
'''Other tools'''
 
* [http://plankter.se/projects/sscaitournamentwatcher/ SSCAIT Tournament Watcher].
 
* [http://plankter.se/projects/sscaitournamentwatcher/ SSCAIT Tournament Watcher].
* [https://github.com/davechurchill/ualbertabot/tree/master/SparCraft SparCraft] is an open source StarCraft combat simulation package for Windows and Linux.
+
* [https://code.google.com/p/bwdi/ BWDI]. Another StarCraft Broodwar interface. Unfinished but with interesting ideas.
* [https://code.google.com/p/bwsal/ BWSAL] is a project that aims to develop several add-ons for BWAPI.
+
* [https://github.com/JDongian/bwapi3to4 Migration scripts for converting BWAPI 3 source to BWAPI 4 source]
* [https://github.com/thieman/korhal Korhal] is a Brood War AI written in Clojure on top of a custom fork of JNIBWAPI.
+
* [http://www.teamliquid.net/forum/brood-war/111664-using-bwapi-to-take-spectating-to-the-next-level Replay watching enhancement].
 +
* [https://github.com/tscmoo/bwheadless bwheadless]. Run broodwar and bwapi on linux without graphics, using wine.
  
 
== Tutorials ==
 
== Tutorials ==
* [http://sscaitournament.com/index.php?action=tutorial BWAPI + BWMirror Tutorial (Java)]
+
* [[BWAPI and BWMirror (Java)]]
 
* [http://www.teamliquid.net/blogs/485544-intro-to-scbw-ai-development BWAPI Tutorial (C++)]
 
* [http://www.teamliquid.net/blogs/485544-intro-to-scbw-ai-development BWAPI Tutorial (C++)]
 +
* [[How to debug a BWAPI AIModule with Visual Studio]]
 +
* [[BWAPI Filters]]
 
* [https://bitbucket.org/auriarte/bwta2/wiki/Getting%20Started Getting Started with BWTA2]
 
* [https://bitbucket.org/auriarte/bwta2/wiki/Getting%20Started Getting Started with BWTA2]
 +
* [[Increasing StarCraft Speed]]
 +
* [[Multiple instances of StarCraft]] or how to run multiple bots in the same computer
 
* [http://www.teamliquid.net/forum/brood-war/484849-improving-mineral-gathering-rate-in-brood-war Improving mineral gathering rate in Brood War]
 
* [http://www.teamliquid.net/forum/brood-war/484849-improving-mineral-gathering-rate-in-brood-war Improving mineral gathering rate in Brood War]
 +
 +
* For development
 +
**[http://www.microsoft.com/en-us/download/details.aspx?id=40787 Visual Studio VC++ 2013 Express] is enough.
 +
**If you want to compile old bots (VS2008 projects) with VS2013. Install the [http://www.microsoft.com/en-us/download/details.aspx?id=8279 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 [http://www.microsoft.com/en-us/download/details.aspx?id=40784 VC 2013 Redistributable Package]
 +
 +
== Research ==
 +
* Research Papers:
 +
** [https://github.com/SKTBrain/awesome-starcraftAI A curated list of resources dedicated to StarCraft AI]
 +
** [https://github.com/Eric-Wallace/starcraft-research-papers A curated list of research papers on Starcraft BW and Starcraft II]
 +
** [https://github.com/bwapi/bwapi/wiki/Academics A curated list of BWAPI-related Research Papers]
 +
* [[StarCraft AI Benchmarks]]
 +
* [[StarCraft Brood War Data Mining]]
 +
* [http://eecs.wsu.edu/~ala/cdtldms/ Learning using SARSA]
 +
* [http://www.teamliquid.net/forum/legacy-of-the-void/482775-a-treatise-on-the-economy-of-scii A Treatise on the Economy of SCII]
 +
* [http://www.coursehero.org/course/starcraft-theory-and-strategy Game Theory with Applications to StarCraft]
 +
* [http://blogs.cornell.edu/info2040/2011/10/31/game-theory-applied-to-starcraft-ii/ Game Theory Applied to Starcraft II]
 
* [http://www.goliathdesigns.com/2011/02/starcraft-neuroevolution/ StarCraft NeuroEvolution Unit AI]
 
* [http://www.goliathdesigns.com/2011/02/starcraft-neuroevolution/ StarCraft NeuroEvolution Unit AI]
 
* [http://legionbot.blogspot.com/ Map analysis]
 
* [http://legionbot.blogspot.com/ Map analysis]
  
== Competitions ==
+
== Miscellaneous ==
 +
* [[Why not StarCraft 2]]
 +
* [[BWAI Launcher|Brood War AI Launcher]]
 +
* [http://www.entropyzero.org/BroodwarAI.html Brood War AI Project] - [http://www.icyhell.net/2008/04/18/brood-war-ai-project-v31/ download]
 +
* [https://github.com/davechurchill/ualbertabot/tree/master/BOSS/asset/images/units BroodWar unit images as transparent PNGs]
 +
* Funny videos
 +
** [https://youtu.be/Eb7o1ArBHg8 Retarded Units of Starcraft BW II]
 +
** [https://youtu.be/BcIACHhslmo Lego StarCraft]
 +
** [http://www.carbotanimations.com/starcrafts/episodes/ StarCrafts]
 +
  </div>
 +
  <div style="width: 5px;"></div>
 +
  <div id="main-column">
  
 +
== Bots ==
 +
Currently there are [[List of bots|'''{{#ask: [[Category:Bots]] | format=count}}''' bots listed]].
 +
{| class="wikitable"
 +
|-
 +
|style="vertical-align:top;"|
 +
* {{#ask: [[Category:Terran_Bots]] | format=count}} Terran bots
 +
* {{#ask: [[Category:Protoss_Bots]] | format=count}} Protoss bots
 +
* {{#ask: [[Category:Zerg_Bots]] | format=count}} Zerg bots
 +
|style="vertical-align:top;"|
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::4.1.2]] | format=count}} using BWAPI 4.1.2
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::4.0.1]] | format=count}} using BWAPI 4.0.1
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::3.7.4]] | format=count}} using BWAPI 3.7.4
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::3.6.1]] | format=count}} using BWAPI 3.6.1
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::3.0.3]] | format=count}} using BWAPI 3.0.3
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::2.8.0]] | format=count}} using BWAPI 2.8.0
 +
* {{#ask: [[Category:Bots]] [[BWAPI version::2.6.1]] | format=count}} using BWAPI 2.6.1
 +
|style="vertical-align:top;"|
 +
* {{#ask: [[Category:Bots]] [[Bot programmed in::C++]] | format=count}} using C++
 +
* {{#ask: [[Category:Bots]] [[Bot programmed in::Java]] | format=count}} using Java
 +
* {{#ask: [[Category:Bots]] [[Bot programmed in::C&#9839;]] | format=count}} using C&#9839;
 +
* {{#ask: [[Category:Bots]] [[Bot programmed in::Clojure]] | format=count}} using Clojure
 +
|}
 +
 +
== 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.
 
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.
  
* [http://www.starcraftaicompetition.com/ AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment (AIIDE)]
+
* [[SSCAIT|SSCAIT: Student StarCraft AI Tournament]] (games played and streamed all the time, finals take place in Winter)
* [http://cilab.sejong.ac.kr/sc_competition/ IEEE Conference on Computational Intelligence and Games (CIG)]
+
* [[AIIDE|AIIDE: AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment]] (part of the program of annual research conference, takes place in Summer)
* [http://sscaitournament.com/ Student StarCraft AI (SSCAI) Tournament]
+
* [[CIG|CIG: IEEE Conference on Computational Intelligence and Games]] (part of the program of annual research conference, takes place in Summer)
* [http://bots-stats.krasi0.com/ BWAPI Bots Ladder]
+
* [http://bots-stats.krasi0.com/ BWAPI Bots Ladder] (games played all the time)
 +
* [[BWAPI mini tour 1|BWAPI mini tournament]]  on [[liquipedia:iCCup|iCCup]]'s server with a mix of human and bot players.
  
== Temporal links ==
+
== StarCraft: Brood War's Mechanics ==
Some unsorted references before organize everything
+
* [[Chance to Hit]]
 +
* [[Unit Existence/Creation]]
 +
* [[Unit Behaviour]]
 +
* [[Frame Rate]]
 +
* [[Abilities and Bullets]]
 +
* [[Regeneration|How does regeneration work?]]
 +
* [[Damage|How much damage an attack will do to a unit?]]
 +
* [[Tricks, Glitches and Exploits]]
 +
* [http://classic.battle.net/scc/faq/aiscripts.shtml Exactly how do the custom AI scripts work?]
 +
* [http://www.codeofhonor.com/blog/the-starcraft-path-finding-hack How does default pathfinding work?]
 +
* [https://docs.google.com/spreadsheets/d/1bsvPvFil-kpvEUfSG74U3E5PLSTC02JxSkiR8QdLMuw/edit#gid=0 Attack Animation Frame Data] and the IceCC tool's decompilation of the iscript.bin file 'data\scripts\iscript.bin' from the MPQs: [[Media:iscript_all2.txt.zip]] ([http://www.campaigncreations.org/forum/viewtopic.php?t=1184 explanation])
 +
* [https://docs.google.com/spreadsheets/d/1LhC8rdqHTrhze6Gh7HitemGs-g2Xq-hVRDaA6X4bBnM/edit?usp=sharing Attack Order Timings]
 +
* [https://github.com/nturley/bwapi-notes nturley's Unusual Unit Morphs] and [https://docs.google.com/document/d/1p7Rw4v56blhf5bzhSnFVfgrKviyrapDFHh9J4FNUXM0/edit jaj22's Unusual BW unit transitions]
 +
* [https://docs.google.com/spreadsheets/d/1jlYDkXW2pQey1oGJlQRBiGjdMs0kfrdHAwzVI2zAjrU/edit#gid=0 StarCraft UnitType Data]
 +
* [https://docs.google.com/spreadsheets/d/1YWFzY0_MEE4fOy9HrvZCYSpRqjgSBdCeRYVxB6zmJpQ/edit#gid=0 StarCraft WeaponType Data]
 +
* [https://docs.google.com/spreadsheets/d/1FpB8e7VJYubaqTtMLoc457a319Wu8yT8jTM6hPq6pT8/edit#gid=0 StarCraft TechType Data]
 +
* [https://tl.net/blogs/519872-towards-a-good-sc-bot-p56-latency Latency and latency compensation]
 +
* [https://docs.google.com/document/d/1a-6NqHI3Leqe6FOZph_K5NLWx27VG1sa87bRSdjQotU/edit BW order timings data]
  
* [https://docs.google.com/spreadsheets/d/1bsvPvFil-kpvEUfSG74U3E5PLSTC02JxSkiR8QdLMuw/edit#gid=0 StarCraft: Brood War Attack Animation Frame Data]
+
== Map making/editing ==
* [http://classic.battle.net/scc/faq/aiscripts.shtml Exactly how do the custom AI scripts work?]
 
* [http://www.icyhell.net/2008/04/18/brood-war-ai-project-v31/ Brood War AI Project v3.1]
 
 
* [http://www.campaigncreations.org/starcraft/resources/staredit_tutorials/basics_of_ums_mapping Basics of UMS Mapping]
 
* [http://www.campaigncreations.org/starcraft/resources/staredit_tutorials/basics_of_ums_mapping Basics of UMS Mapping]
* [https://github.com/bwapi/bwapi/wiki/Academics Research Papers]
 
* [http://www.teamliquid.net/forum/legacy-of-the-void/482775-a-treatise-on-the-economy-of-scii A Treatise on the Economy of SCII]
 
 
* [http://www.teamliquid.net/forum/brood-war/95409-guide-map-making Guide Map Making]
 
* [http://www.teamliquid.net/forum/brood-war/95409-guide-map-making Guide Map Making]
* [http://nova.wolfwork.com/dataMining.html StarCraft Brood War Data Mining]
 
* [http://eecs.wsu.edu/~ala/cdtldms/ Learning using SARSA]
 
 
== Map Editing ==
 
 
 
* [[CHK Format]]
 
* [[CHK Format]]
 +
* [http://sc.nibbits.com/assets/unused-unprotector-2/ Unused Unprotector 2 StarCraft Tool] and the [http://www.staredit.net/sc1db/file/1468/ source code].
 
* [http://www.stormcoast-fortress.net/cntt/software/scmdraft/download/ 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 [http://www.stormcoast-fortress.net/temp/Scmdraft2-setup.rar ScmDraft 2] (0.8.1), located in the <code>temp</code> folder.  
 
* [http://www.stormcoast-fortress.net/cntt/software/scmdraft/download/ 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 [http://www.stormcoast-fortress.net/temp/Scmdraft2-setup.rar ScmDraft 2] (0.8.1), located in the <code>temp</code> 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 <code>Memory</code> condition will be enabled when creating a trigger).
 
* 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 <code>Memory</code> condition will be enabled when creating a trigger).
Line 109: Line 154:
 
* StarCraft [http://wiki.teamliquid.net/starcraft/List_of_Unit_and_Building_Sizes unit sizes]. You can use [http://www.stormcoast-fortress.net/cntt/software/DatEdit/ DatEdit] (<code>StarEdit</code> tab) to get the Placement box in pixels. The pixels for a Terran Dropship, for example, are height 37 and width 49. Since <code>scmdraft</code> is zero indexed, be sure to enter your locations for <code>bottom</code> and <code>right</code> as one less than what it actually is. In this example, <code>bottom</code> would be 36 and <code>right</code> would be 48.
 
* StarCraft [http://wiki.teamliquid.net/starcraft/List_of_Unit_and_Building_Sizes unit sizes]. You can use [http://www.stormcoast-fortress.net/cntt/software/DatEdit/ DatEdit] (<code>StarEdit</code> tab) to get the Placement box in pixels. The pixels for a Terran Dropship, for example, are height 37 and width 49. Since <code>scmdraft</code> is zero indexed, be sure to enter your locations for <code>bottom</code> and <code>right</code> as one less than what it actually is. In this example, <code>bottom</code> would be 36 and <code>right</code> would be 48.
 
* [http://www.staredit.net/topic/7783/ Frequently Asked Questions]
 
* [http://www.staredit.net/topic/7783/ Frequently Asked Questions]
 +
 +
  </div>
 +
</div>
 +
 +
 +
<center>
 +
[[File:Starcraft in south korea.jpg]]
 +
</center>

Latest revision as of 21:51, 16 January 2023


Welcome to StarCraft AI
The StarCraft BroodWar Resource for custom AIs

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.

BWAPI

BWAPI extensions

Using other programming languages

  • Java: BWMirror, JNIBWAPI
  • GOAL. An AI language on top of BWAPI, under development by University of Delft, Netherlands.
  • Python: CyBW

Other tools

Tutorials

  • 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

Research

Miscellaneous

Bots

Currently there are 61 bots listed.

  • 27 Terran bots
  • 22 Protoss bots
  • 14 Zerg bots
  • 1 using BWAPI 4.1.2
  • 4 using BWAPI 4.0.1
  • 32 using BWAPI 3.7.4
  • 5 using BWAPI 3.6.1
  • 3 using BWAPI 3.0.3
  • 2 using BWAPI 2.8.0
  • 2 using BWAPI 2.6.1
  • 38 using C++
  • 10 using Java
  • 2 using C♯
  • 1 using Clojure

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.

StarCraft: Brood War's Mechanics

Map making/editing

  • Basics of UMS Mapping
  • Guide Map Making
  • 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. Since scmdraft is zero indexed, be sure to enter your locations for bottom and right as one less than what it actually is. In this example, bottom would be 36 and right would be 48.
  • Frequently Asked Questions


Starcraft in south korea.jpg