Difference between revisions of "Main Page"

Line 34: Line 34:
 
|{{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|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|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|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
 
|-
 
|-
 
|}
 
|}
Line 49: Line 59:
 
* [https://github.com/davechurchill/ualbertabot/tree/master/SparCraft SparCraft] is an open source StarCraft combat simulation package for Windows and Linux.
 
* [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/bwsal/ BWSAL] is a project that aims to develop several add-ons for BWAPI.
 
* [https://code.google.com/p/bwsal/ BWSAL] is a project that aims to develop several add-ons for BWAPI.
 +
* [https://github.com/thieman/korhal Korhal] is a Brood War AI written in Clojure on top of a custom fork of JNIBWAPI.
  
 
== Tutorials ==
 
== Tutorials ==
Line 55: Line 66:
 
* [https://bitbucket.org/auriarte/bwta2/wiki/Getting%20Started Getting Started with BWTA2]
 
* [https://bitbucket.org/auriarte/bwta2/wiki/Getting%20Started Getting Started with BWTA2]
 
* [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]
 +
* [http://www.goliathdesigns.com/2011/02/starcraft-neuroevolution/ StarCraft NeuroEvolution Unit AI]
 +
* [http://legionbot.blogspot.com/ Map analysis]
  
 
== Competitions ==
 
== Competitions ==
Line 68: Line 81:
 
Some unsorted references before organize everything
 
Some unsorted references before organize everything
  
* [[CHK Format]]
 
 
* [https://docs.google.com/spreadsheets/d/1bsvPvFil-kpvEUfSG74U3E5PLSTC02JxSkiR8QdLMuw/edit#gid=0 StarCraft: Brood War Attack Animation Frame Data]
 
* [https://docs.google.com/spreadsheets/d/1bsvPvFil-kpvEUfSG74U3E5PLSTC02JxSkiR8QdLMuw/edit#gid=0 StarCraft: Brood War Attack Animation Frame Data]
 
* [http://classic.battle.net/scc/faq/aiscripts.shtml Exactly how do the custom AI scripts work?]
 
* [http://classic.battle.net/scc/faq/aiscripts.shtml Exactly how do the custom AI scripts work?]
Line 77: Line 89:
 
* [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://nova.wolfwork.com/dataMining.html StarCraft Brood War Data Mining]
 +
* [http://eecs.wsu.edu/~ala/cdtldms/ Learning using SARSA]
 +
 +
== Map Editing ==
 +
 +
* [[CHK Format]]
 +
* [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).
 +
* 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.
 +
* [http://farty1billion.dyndns.org/EUDDB/ EUD Database], with [http://farty1billion.dyndns.org/dl.php?f=EUDTrig1.3_02-08-09.rar EUDTrig] to find unit offsets. With EUDTrig, you need to copy [http://windowsxp.mvps.org/utils/Comdlg32.zip comctl32.ocx] ([http://www.nitropdf.com/kb/article.aspx?id=10031 alternate location]) into the current directory. You need [http://www.artmoney.ru/e_download_se.htm ArtMoney] for monitoring the process and finding the hex values in the first place. Then, see this [http://www.staredit.net/?p=oldwiki&s=99 exported wiki article].
 +
* [http://www.staredit.net/starcraft/Main_Page Staredit Network's Wiki], and the [http://www.staredit.net/forums/ StarEdit forums]. Be sure to change the theme after login, as I find the default one annoying.
 +
* You have [http://www.staredit.net/starcraft/Switch 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 [http://www.staredit.net/starcraft/Triggers triggers]. Neutral (Player 12) cannot, and such triggers will be ignored.
 +
* [http://www.staredit.net/topic/12141/ 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. [http://farty1billion.dyndns.org/dl.php?f=EUDEnable_04-09-10.rar EUDEnable]. [http://www.staredit.net/topic/4500/&sess=65f783 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 [http://forums.starcraft.org/threads/37246-Death-Count-Timers Death Count Timers] instead of waiting.
 +
* How [http://wiki.teamliquid.net/starcraft/Damage damage] works, such as for burning buildings.
 +
* And overview of working with [http://www.zezula.net/en/mpq/main.html MPQ archives]. Use [http://sourceforge.net/projects/mpqdraft/ MPQDraft] to patch MPQ files. For reading and editing the contents, use [http://www.zezula.net/en/mpq/download.html MPQ Editor].
 +
* [http://classic.battle.net/scc/faq/staredit.shtml StarEdit FAQ]. [http://www.gamefaqs.com/pc/25418-starcraft/faqs/13473 StarCraft Mapmaker's Guide].
 +
* 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]

Revision as of 21:34, 20 June 2015

Welcome to StarCraft AI
The StarCraft BroodWar Resource for custom AI

List of bots

Bot Author Type Download Source code Description
Ticon small.png Krasi0bot Krasimir Krastev C++, .dll file DLL - Very well balanced
Picon small.png UAlbertaBot David Churchill C++, .dll file DLL GitHub Zealot rush
Picon small.png AIUR Florian Richoux C++, .dll file DLL GitHub Random strategies
Ticon small.png Nova Alberto Uriarte C++, .dll file DLL ZIP
Picon small.png XIMP Tomas Vajda C++, .dll file DLL - Cannons & Carriers
Ticon small.png ICEbot ICElab C++, .dll file DLL - Offensive Terran
Ticon small.png BTHAI Johan Hagelback C++, .dll file DLL Google Code Single base Terran
Picon small.png WryxoBot Martin Strapko Java, .jar file JAR - Mass Dragons
Ticon small.png Yarmouk I-Strategizer Research Group C++, .dll proxy - GitHub Case-Based Planning
Ticon small.png OpprimoBot Johan Hagelbäck C++, .dll dll DLL GitHub Can play all three races
Ticon small.png EMAPF Thomas Willer Sandberg C++ - Google Code
Ticon small.png ITUBot Volkan Ilbeyli C++, .dll dll - GitHub Able to do walling
Picon small.png SPAR PLANIART lab C++, .dll dll DLL ZIP
Ticon small.png StarPlanner Panagiotis Peikidis Java, .jar file - GitHub uses Goal-Oriented Action Planning

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.
  • 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.

Tutorials

Competitions

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.

Temporal links

Some unsorted references before organize everything

Map Editing

  • CHK Format
  • 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