ZZZKBot
ZZZKBot is a bot (AI) for Starcraft: Broodwar. It is designed to compete against other bots. It is not designed to compete against humans. It uses BWAPI as an API for interacting with Starcraft: Broodwar. I am not intending to support/maintain/develop ZZZKBot in future, although I haven't ruled it out either.
Install / Use
/learn @chriscoxe/ZZZKBotREADME
ZZZKBot - ReadMe
Description
ZZZKBot is a bot (AI) for Starcraft: Broodwar. It is designed to compete against other bots. It is not designed to compete against humans. It uses BWAPI as an API for interacting with Starcraft: Broodwar. See CIG2018_ENTRY.txt for more information about the (1.8.0) version that was submitted for the CIG 2018 Starcraft AI competition.
Project Status
I am not intending to support/maintain/develop ZZZKBot in future, although I haven't ruled it out either. See BUGS.md.
In the longer term, I am more likely to start a new project than simply keep modifying the ZZZKBot project. I.E. with a different primary goal than just a Zerg bot that beats other bots in competitions. E.g. beating humans, or playing as other race(s), or a bot that can play Broodwar & SC2, or a bot with much less hand-crafted logic, or write a bot properly from the ground up. The approach I used to write ZZZKBot was to code it in the quickest possible time, at the expense of quality / attention to detail.
Support/donations/sponsorship or perhaps even job offers (would be my dream job!) to write or help write a "proper" Broodwar or SC2 bot that actually uses some sophisticated AI/ML techniques (perhaps alongside minimal hard-coded logic?), possibly eventually using more appropriate hardware would be helpful, i.e. via https://www.paypal.me/quatari or alternatively add me in LinkedIn but be sure to mention it's about Starcraft AI otherwise I may ignore connection requests.
So far, I've been working on my Starcraft bot sporadically just before competition deadlines just as a hobby, using simple techniques to reach low-hanging fruit against other bots, using my existing personal hardware, but I have been following the Broodwar and SC2 AI scene and papers closely and have a lot of ideas for more sophisticated (and resource-intensive...) AI/ML techniques I would like to experiment with in a bot and would love to work on something more serious/useful/ambitious in Broodwar/SC2 AI.
Some things to know about ZZZKBot
- It's open-source, and 100% free - it uses the widely used "GNU Lesser General Public License (LGPL) version 3" license.
- It depends on other libraries, but they and their dependencies (and their dependencies, ad infinitum) are also open source and 100% free.
- The other libraries it depends on are as follows (their dependencies are not listed):
- BWAPI
- BWAPI is an API for interacting with Starcraft: Broodwar. Starcraft and Starcraft: Broodwar are trademarks of Blizzard Entertainment. BWAPI is a third party "hack" that violates the End User License Agreement (EULA). BWAPI uses the "GNU Lesser General Public License (LGPL) version 3" license.
- BWAPI
License
See LICENSE.txt.
Authors
See AUTHORS.md.
Reporting Bugs
See BUGS.md.
Release Notes / Version List / Change Log
See CHANGES.md.
Installation Instructions
See INSTALL.md.
Thanks
See THANKS.md.
Project Resources
- Website: https://chriscoxe.github.io/ZZZKBot/
- Repository: https://github.com/chriscoxe/ZZZKBot
- Releases: https://github.com/chriscoxe/ZZZKBot/releases
- Liquipedia page: http://wiki.teamliquid.net/starcraft/ZZZKBot
- StarcraftAI.com page: http://www.starcraftai.com/wiki/ZZZKBot
Competition Results
ZZZKBot Competition Results
| Date | Rank | Prize Pool | Winnings | Result | Event | Type | Category | | --- | --- | --- | --- | --- | --- | --- | -- | | 2017-10-31 | N/A | | | Lost 0:1 vs Stork, <br> won 1:0 vs two amateurs | Sejong University showmatches (press, details) | Man-vs-Machine | Full game | | 2017-10-09 | 1/28 | | | 83.11% | AIIDE2017 (details, press) | Bot-vs-Bot | Full game | | 2017-08-24 | 1/20 | USD 1000 | USD 500 but ineligible (not a student or young professional) | 82.06% | CIG2017 (details) | Bot-vs-Bot | Full game | | 2016-12-18 | 4/45 in round robin phase, <br> quarterfinalist in elimination phase | | | 88% (i.e. 4th) in round robin phase, <br> elimination phase: lost 0:2 vs Iron in Quarterfinals | SSCAIT2016 (details) | Bot-vs-Bot | Mixed division (i.e. non students) | | 2016-10-14 | 2/21 | | | 85.05% | AIIDE2016 (details) | Bot-vs-Bot | Full game | | 2016-09-23 | 4/16 | USD 1000 | USD 0 | 53.08% (4th) in final phase, <br> 69.18% (7th) in qualifier phase. <br> Note: weak because outdated (submitted old AIIDE 2015 version) | CIG2016 (details) | Bot-vs-Bot | Full game | | 2016-01-30 | 4/42 | | | 84.44% (i.e. 4th), <br> Elimination phase: lost 2:1 vs KillerBot in Semifinals, <br> lost 0:2 vs Stone in Bronze match | SSCAIT2015 (details, history) | Bot-vs-Bot | Mixed division (i.e. non students) | | 2015-11-17 | 2/22 (or 1/22?) | | | 87.83% (officially announced as a statistical tie for 1st place), <br> lost 0:2 vs Djem5 in man-vs-machine games | AIIDE2015 (details, report, history) | Bot-vs-Bot (plus misc man-vs-machine games) | Full game |
ZZZBot Competition Results
| Date | Rank | Prize Pool | Winnings | Result | Event | Type | Category | | --- | --- | --- | --- | --- | --- | --- | --- | | 2015-09-02 | 1/14 | USD 1000 | USD 500 | 81.03% | CIG2015 (details, history) | Bot-vs-Bot | Full game |
Why do I write Starcraft bots/AIs?
Writing a Starcraft bot is a good fit for my interests in problem solving, programming, software engineering, game theory, AI and machine learning, strategy games (Starcraft in particular), and competition. It's a lot of fun, and bot-versus-bot games are often farcical.
Starcraft AIs Progress/Status
For my competition survey answers about developing Starcraft AIs, see the text files such as competition_survey_CIG_2018_ZZZKBot.txt. Here are some general thoughts on the status and future progress of Starcraft AIs:
The state of Starcraft AI at the time of writing (10th July 2018) is that it is still very narrow AI, even just within the game of Starcraft. By that, I mean that Starcraft bots currently still use a non-trivial amount of hard-coded logic and list/definition of features designed by humans just to enable a machine learning (ML) algorithm to be applied effectively (as opposed to the deep learning algorithm used by DeepMind's AlphaGo Zero program), and no one ML algorithm is being used yet to perform every kind of task that a player needs to perform in Starcraft in order to be able to be able to play the full game and be successful competitively. By "tasks", I mean tasks like micromanaging individual or small groups of combat units, making more combat units and workers and buildings, deciding what the composition of your army should be, deciding what buildings to construct and where to place them, deciding what path each unit should move in, scouting to see what the enemy is doing and making use of that information, making more bases, harassing the enemy's bases, managing large battles, deciding where to attack and defend, special tactics, and decision making relating to long term strategy.
Progress through Starcraft AI Modularity
On a general note, I think it is a pity that so many bots and libraries are developed with the author's intention for it to be used by other botters as a preferred library/framework to use for basic functionality, only to end up hardly being used because others perceive it as being too difficult to call or incorporate or copy-and-paste in their bot (due to the lack of inherent modularity in BWAPI bots, and compatibility problems). Some notable exceptions are terrain libraries (BWTA then BWTA2 and BWEM are widely used) and Java wrappers (JNIBWAPI then BWMIRROR and BWAPI4J) and base bots (see an interesting family tree
Related Skills
openhue
343.1kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
343.1kElevenLabs text-to-speech with mac-style say UX.
weather
343.1kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.5kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
