ZZZKBot - 2017 AIIDE Starcraft AI Competition Entry =================================================== Updated: 1st September 2017 Entry Name : ZZZKBot (don't change the case- sensitivity of these letters and don't shorten/rename it) Contact Person Name (First, Last) : Chris Coxe Contact Person Email Address: : chris(dot)coxe(at)gmail(dot)com Affiliation : Independent Race (in full game) : Zerg DLL or ProxyBot : DLL BWAPI Version : 4.2.0 Use File I/O : Yes Brief Description of Bot / AI Techniques : 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 or hydra rush build against some opponents. Uses file I/O to learn which types of rush are most effective against each opponent. Doesn't do much else. Technical details and instructions: 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 almost 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 focussed 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++), but later upgraded to BWAPI 4.2.0. Version: 1.5.0, i.e. version for the AIIDE 2017 Starcraft AI competition submitted on 1st September 2017. The DLL file included in the submission was compiled on Windows 7 SP1 using Microsoft Visual Studio Community 2017 (in Release mode not Debug mode) and I have tested that the exact DLL file included in the submission runs fine on Windows 7 SP1. License: it is compatible with the GNU public license. The license is contained in LICENSE.txt. Instructions to build ZZZKBot from source code: Note: these instructions have been tailored/condensed specifically for the AIIDE 2017 Starcraft AI competition submission. If you want more info please see INSTALL.txt for the full generic instructions including how to install and run it, but you shouldn't need to read it if you are using StarcraftAITournamentManager. It might be helpful if you encounter problems. 1. On Windows (I used Windows 7 SP1), install Microsoft Visual Studio 2017 (I used Microsoft Visual Studio Community 2017; note that this is registerware, i.e. it can be downloaded for free from Microsoft without registering, but after 30 days it will prompt you and require you to register (free of charge) to be able to continue using it). 2. Install BWAPI 4.2.0 to a path that does not contain spaces. 3. Set the environment variable BWAPI_DIR to the path of where you installed BWAPI 4.2.0 to. Note: the project does not depend on any other libraries, does not reference any absolute file paths, and when the bot is run it does not require any absolute file paths (e.g. it doesn't matter what directory you have installed Starcraft: Broodwar to). 4. In Windows Explorer, double-click the ZZZKBot.vcxproj file. 5. Change the drop-down from "Debug" to "Release". 6. From the menu, select: Build -> Build Solution. It should build with no errors/warnings. On my computer it takes less than 15 seconds to build. 7. A folder named "Release" should be automatically created when building. The output is a single DLL file in that folder named ZZZKBot.dll. ZZZKBot does not need any other files to run. Do not rename the DLL or the player name (should be "ZZZKBot"). Do not change the case-sensitivity of these letters. As mentioned above, ZZZKBot runs using BWAPI version 4.2.0, and is only supposed to play as Zerg in the AIIDE 2017 Starcraft AI competition. It does not use any 3rd-party libraries such as BWTA2/BWTA/BWEM at all. ZZZKBot uses disk I/O (i.e. has logic to use the "bwapi-data/read" and "bwapi-data/write" folders). It tailors its behavior to particular opponents based on in-game player names of the opponent bot(s). =============================== End of file ================================