├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to [http://unlicense.org] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome SC2 AI 2 | A curated list of SC2 AI code and resources 3 | 4 | If you want to contribute, please feel free to submit a PR. 5 | 6 | ## Table of contents 7 | 8 | - [Competitions](#competitions) 9 | - [APIs](#apis) 10 | - [C#](#csharp-apis) 11 | - [C++](#cpp-apis) 12 | - [Go](#go-apis) 13 | - [Java](#java-apis) 14 | - [JavaScript](#javascript-apis) 15 | - [Python](#python-apis) 16 | - [Ruby](#ruby-apis) 17 | - [Rust](#rust-apis) 18 | - [TypeScript](#typescript-apis) 19 | - [Frameworks](#frameworks) 20 | - [C#](#csharp-frameworks) 21 | - [Python](#python-frameworks) 22 | - [Libraries](#libraries) 23 | - [Python](#python-libraries) 24 | - [Open-source bots](#open-source-bots) 25 | - [C#](#csharp-bots) 26 | - [C++](#cpp-bots) 27 | - [Go](#go-bots) 28 | - [Java](#java-bots) 29 | - [Python](#python-bots) 30 | - [Machine Learning](#machine-learning) 31 | - [Tutorials](#tutorials) 32 | - [General](#general-tutorials) 33 | - [Python](#python-tutorials) 34 | - [Development tools](#development-tools) 35 | - [License](#license) 36 | 37 | ## Competitions 38 | 39 | * [AI Arena](https://aiarena.net) - 24/7 Ladder 40 | * [ProBots](https://www.versusai.net/how-to-compete-in-probots/) - Major Tournament Series 41 | 42 | ## APIs 43 | 44 | ### CSharp APIs 45 | 46 | * [ExampleBot](https://github.com/SimonPrins/ExampleBot) 47 | 48 | ### CPP APIs 49 | 50 | * [cpp-sc2](https://github.com/cpp-sc2/cpp-sc2) 51 | 52 | ### GO APIs 53 | 54 | * [s2l](https://github.com/aiseeq/s2l) 55 | * [go-sc2ai](https://github.com/chippydip/go-sc2ai) 56 | 57 | ### Java APIs 58 | 59 | * [ocraft-s2client](https://github.com/ocraft/ocraft-s2client) 60 | 61 | ### JavaScript APIs 62 | 63 | * [node-sc2](https://github.com/node-sc2/core) 64 | 65 | ### Python APIs 66 | 67 | * [python-sc2](https://github.com/BurnySc2/python-sc2) 68 | * [pysc2](https://github.com/google-deepmind/pysc2) - Machine-learning focussed SC2 AI API. 69 | 70 | ### Ruby APIs 71 | 72 | * [sc2ai gem](https://sc2ai.pages.dev/) 73 | 74 | ### Rust APIs 75 | 76 | * [rust-sc2](https://github.com/UltraMachine/rust-sc2) 77 | 78 | ### TypeScript APIs 79 | 80 | * [s2client-api-typescript](https://github.com/Zamiell/s2client-api-typescript) 81 | 82 | 83 | ## Frameworks 84 | 85 | ### CSharp Frameworks 86 | 87 | * [sharky](https://github.com/sharknice/Sharky) 88 | 89 | ### Python Frameworks 90 | * [sharpy-sc2](https://github.com/DrInfy/sharpy-sc2) 91 | 92 | ## Libraries 93 | 94 | ### Python Libraries 95 | 96 | * [ares-sc2](https://github.com/AresSC2/ares-sc2/) - an extension on python-sc2's capabilities 97 | * [cython-extensions-sc2](https://github.com/AresSC2/cython-extensions-sc2) - Cython extensions extracted from ares-sc2, for use in any python-sc2 based bot. 98 | * [SC2MapAnalysis](https://github.com/spudde123/SC2MapAnalysis) - influence maps, pathfinding 99 | * [queens-sc2](https://github.com/raspersc2/queens-sc2) - powerful queen management 100 | * [bossman](https://github.com/lladdy/bossman) - simple utility for tracking and making in game choices 101 | * [SC2_bot_chat](https://github.com/savelas81/SC2_bot_chat) - utility for sending chat messages 102 | * [sc2-helper](https://github.com/danielvschoor/sc2-helper) - StarCraft 2 AI helper tools 103 | * [sc2-pathlib](https://github.com/DrInfy/sc2-pathlib) - Pathfinding and terrain analysis library for Starcraft 2 bot api in Rust 104 | * [SC2-Map-Segmentation](https://github.com/Kowalski1024/SC2-Map-Segmentation) - provides fully automated segmentation for Starcraft 2 maps, similar to SC2MapAnalysis 105 | * [alphastar](https://github.com/google-deepmind/alphastar) - A package from DeepMind that provides the tools to train an agent to master StarCraft II 106 | 107 | ## Open-source bots 108 | 109 | ### CPP bots 110 | 111 | * [cpp-sc2/blank-bot](https://github.com/cpp-sc2/blank-bot) - empty starter bot with integrated cpp-sc2. 112 | * [cpp-sc2/commandcenter](https://github.com/cpp-sc2/commandcenter) 113 | * [MicroMachine](https://github.com/RaphaelRoyerRivard/MicroMachine) 114 | * [suvorov-bot](https://github.com/alkurbatov/suvorov-bot) 115 | 116 | ### CSharp bots 117 | 118 | * [Tyr](https://github.com/SimonPrins/TyrSc2) 119 | 120 | ### Go bots 121 | 122 | * [BlackCompany](https://github.com/NatoBoram/BlackCompany) 123 | 124 | ### Java bots 125 | 126 | * [Supalosa/testbot](https://github.com/Supalosa/testbot) - bot template with integrated ocraft. Built using gradle. 127 | 128 | ### Python bots 129 | 130 | * [VersusAI's python-sc2 bot template](https://github.com/Vers-AI/versusai-sc2-bot-template) 131 | * [burny-sc2 example bots](https://github.com/BurnySc2/python-sc2/tree/develop/examples) 132 | * [sharpy-sc2 dummy bots](https://github.com/DrInfy/sharpy-sc2/tree/develop/dummies) 133 | * [TrebbleBiscuit's sc2-ai-agents](https://github.com/TrebbleBiscuit/sc2-ai-agents/) 134 | * [Chance](https://github.com/lladdy/chance-sc2) 135 | * [oops](https://github.com/raspersc2/oops) 136 | 137 | ## Machine Learning 138 | * [HierNet-SC2](https://github.com/liuruoze/HierNet-SC2) 139 | * [Train your first Starcraft II learning agent](https://soygema.github.io/starcraftII_machine_learning/) 140 | * [Startcraft PySC2 mini-games and agents](https://github.com/SoyGema/Startcraft_pysc2_minigames) 141 | * [StarCraft II Unplugged : Offline Reinforcement Learning](https://gema-parreno-piqueras.medium.com/starcraft-ii-unplugged-offline-reinforcement-learning-part-i-1c9192fc03b) 142 | 143 | ## Tutorials 144 | 145 | ### General Tutorials 146 | 147 | #### How to begin 148 | * [Getting started competing on SC2 AI Arena (Text)](https://aiarena.net/wiki/bot-development/getting-started/) 149 | * [How to get started making your own StarCraft 2 bot (Video)](https://www.youtube.com/watch?v=qcRZydXKgi0) 150 | * [Vinsloev Academy - Learn Python - Project For Beginners [StarCraft 2 AI] (Video)](https://www.youtube.com/watch?v=4GsdHM1wBTg) 151 | 152 | #### Higher level concepts 153 | * [Bot debug demonstration by Supalosa (Video)](https://www.youtube.com/watch?v=RoOdi8w3dW4) 154 | * [High level bot architecture (starts @ 4 mins in) (Video)](https://youtu.be/qcRZydXKgi0?t=246) 155 | 156 | #### Misc 157 | * [How to convert maps to the AIE standard (Video)](https://www.youtube.com/watch?v=lTBFy-R01Wo) 158 | 159 | ### CSharp Tutorials 160 | * [Sharky Tutorial - how to make a StarCraft 2 Bot](https://www.youtube.com/watch?v=2Tf0jLTJQME) 161 | 162 | ### Python Tutorials 163 | 164 | * [VersusAI - Simple StarCraft 2 PythonBot Template To Get Started (Text)](https://www.versusai.net/labs/bot-making/simple-starcraft-2-bot-template-to-get-started-in-python/) 165 | * [Sentdex - Starcraft 2 AI with Python (Video)](https://www.youtube.com/watch?v=HlLK5BA0wT0&list=PLQVvvaa0QuDcBby2qVDsDv41GghEQfr5E) 166 | * [Brax - SC2 AI Development blog](https://brax.gg/category/starcraft/) 167 | * [VersusAI - Beginner's Guide to Speed Mining(Text)](https://www.versusai.net/guide/speed-mining-for-ai-bots-a-beginners-guide/) 168 | * [VersusAI - How to Create a Python Zerg Rush Bot from Scratch (Video)](https://youtube.com/live/73sGhC3Utv4) 169 | 170 | ## Development tools 171 | 172 | * [aiarena.superskill.me](https://aiarena.superskill.me) - Third party AI Arena ladder statistics 173 | * [Visual Studio Code Extension](https://stephanzlatarev.github.io/vscode-starcraft/) - Run your AI bots with StarCraft II within Visual Studio Code. 174 | * [local-play-bootstrap](https://github.com/aiarena/local-play-bootstrap) - A quick setup for playing games locally 175 | * [docker-sc2](https://github.com/cpp-sc2/docker-sc2) - A dockerized StarCraft II Linux client. 176 | * [aiarena-docker](https://github.com/aiarena/aiarena-docker) - Standard arena client docker environment used in competitions. 177 | 178 | 179 | ## License 180 | 181 | [![CC0](https://licensebuttons.net/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) 182 | --------------------------------------------------------------------------------