Skip to content

ZZZKBot v1.4.0 (used in CIG 2017)

Compare
Choose a tag to compare
@chriscoxe chriscoxe released this 05 Nov 17:33

The exact archive file (ZZZKBot-1.4.0.zip) that I submitted to the CIG 2017 Starcraft AI
Competition on 16th July 2017. It won 1st place (but not eligible for the USD 500 prize because not a student/young professional) by achieving first rank out of twenty in the competition (https://cilab.sejong.ac.kr/sc_competition/) which is run annually and presented annually at the IEEE Conference on Computational Intelligence and Games (IEEE CIG). Contains source code and the DLL that I compiled (note: I expect that the CIG organizers later compiled their own DLL themselves). To get started, see the CIG2017_ENTRY.txt file within the ZIP file, but here are some summary excerpts from that file:

ZZZKBot runs using BWAPI version 4.1.2, and is only supposed to play as Zerg in the CIG 2017 Starcraft AI competition. It does not use BWTA2/BWTA. ZZZKBot uses disk I/O (i.e. has logic to read and write files) but currently only uses them for logging/record-keeping purposes - it does not currently use them for any learning logic. It tailors its behaviour to particular opponents based on in-game names of the opponent bot(s).

A simple throw-away proof-of-concept cheesy kamikaze 4-pool bot implemented in a short amount of time to reach low-hanging fruit. Effective against many bots that do not have a solid opening economy/defence. Has some simple logic for scouting, targeting and resource-gathering. Apart from targeting its micro is very limited. Stays at 9 or 10 supply for several minutes of in-game time then techs straight to mutalisks or guardians (on only 1 base... soon runs out of gas...) in an attempt to finish off static defences of idle opponents, and mutalisks in an attempt to destroy lifted buildings. Uses speedling or muta rush build against some opponents. Doesn't do much else. ZZZKBot is an improved and heavily refactored version of ZZZBot (ZZZBot won first rank in the CIG 2015 Starcraft AI competition).

Originally implemented in a quick and dirty fashion so releases would be ready for the CIG & AIIDE 2015 Starcraft AI competitions. If you want to examine/use the source code, be warned that the source code is messy, full of kludges, undocumented, has undocumented limitations/gotchas, and lacks hardly any good architecture/abstraction/encapsulation (e.g. the logic is all in one method (onFrame()) and uses static variables, and significant duplication of source code) because it was written in a rush (I was expecting to throw it away if it didn't do well in CIG 2015) and I haven't focused on cleaning it up or rewriting it properly. I used BWAPI version 4.1.2's ExampleAIModule project as the source code starting point (i.e. C++).

License: GNU Lesser General Public License (LGPL) version 3. It is compatible with the GNU public license.

To see a summary of changes for each version, see CHANGES.txt and the answer to question "If you competed in previous tournaments, what did you change for this year's entry?" in competition_survey_CIG_2017_ZZZKBot.txt.