Skip to content

Commit

Permalink
v1.5.0 - submitted to AIIDE 2017
Browse files Browse the repository at this point in the history
  • Loading branch information
chriscoxe committed Nov 5, 2017
1 parent 9028463 commit 2b648c4
Show file tree
Hide file tree
Showing 14 changed files with 1,887 additions and 522 deletions.
59 changes: 59 additions & 0 deletions AIIDE2015_ENTRY.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Entry Name : ZZZKBot (please don't change the case-sensitivity of these letters and don't shorten 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 (3.7.4 or 4.X) : 4.1.2
Brief Description (AI techniques used, strengths, etc) :

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 until about 15 minutes in-game time then techs straight to 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 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).

Technical details and instructions:

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, hacky, 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 focussed on cleaning it up / rewriting it properly. I used BWAPI version 4.1.2's ExampleAIModule project as the source code starting point (i.e. C++).

Version: 1.0, i.e. version for the AIIDE 2015 Starcraft AI competition submitted on 10th October 2015. The DLL file included in the submission was compiled on Windows 7 SP1 using Microsoft Visual Studio Express 2013 for Windows Desktop (in Release mode not Debug mode) and I have tested that the exact DLL file included in the submission runs fine on Windows XP SP3 and runs fine on Windows 7 SP1.

License: it is compatible with the GNU public license. The license is contained in LICENSE.txt.

Instructions: Here are the instructions to build ZZZKBot from source code which have been tailored/condensed specifically for the AIIDE 2015 Starcraft AI competition submission. If you want more info please see INSTALL.txt for the full generic instructions, but you shouldn't need to read it. It might be helpful if you encounter problems.

1. On Windows (preferably Windows 7 SP1), install Microsoft Visual Studio
2013 (preferably Microsoft Visual Studio Express 2013 for Windows Desktop;
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).
If you install the compiler on a different version of Windows than Windows
7 SP1 or if you install a different version of Microsoft Visual Studio than
Microsoft Visual Studio Express 2013 for Windows Desktop then I imagine you
may need to change compiler setting(s) in ZZZKBot.vcxproj to ensure that the
resulting DLL can be run on Windows XP SP3 (e.g. if it turns out that it
doesn't work, perhaps try changing the PlatformToolset option for
'Release|Win32' and 'Debug|Win32' configurations from "v120" to "v120_xp").

3. Install BWAPI 4.1.2 to a path that does not contain spaces.

4. Set the environment variable BWAPI_DIR to the path of where you installed
BWAPI 4.1.2 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 hard-coded file paths (e.g. it doesn't matter what directory
you have installed Starcraft: Broodwar to).

5. In Windows Explorer, double-click the ZZZKBot.vcxproj file.

6. Change the drop-down from "Debug" to "Release".

7. From the menu, select: BUILD -> Build Solution. It should build with no
errors/warnings.

8. A folder ZZZKBot/Release/ should be automatically created when building.
The output is a single DLL file in that folder named ZZZKBot.dll (ZZZKBot is
not comprised of any other/optional files when running it).

As mentioned above, ZZZKBot runs using BWAPI version 4.1.2, and is only
supposed to play as Zerg in the AIIDE 2015 Starcraft AI competition. It does
not use BWTA2/BWTA. ZZZKBot itself does not use disk I/O (i.e. has no logic
to read or write files - not even log files), apart from any logic already
built into BWAPI (if any). It tailors its behaviour to particular
opponents based on in-game names of the opponent bot(s).
90 changes: 90 additions & 0 deletions AIIDE2016_ENTRY.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
Entry Name : ZZZKBot (don't change the case-sensitivity of these letters and don't shorten 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 (3.7.4 or 4.1.2) : 4.1.2
Brief Description (AI techniques used, strengths, etc) :

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

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 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++).

Version: 1.2, i.e. version for the AIIDE 2016 Starcraft AI competition
submitted on 7th September 2016. The DLL file included in the submission was
compiled on Windows 7 SP1 using Microsoft Visual Studio Express 2013 for
Windows Desktop (in Release mode not Debug mode) and I have tested that the
exact DLL file included in the submission runs fine on Windows XP SP3 and 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 2016 Starcraft AI competition submission. If you want more info please
see INSTALL.txt for the full generic instructions including how to install it,
but you shouldn't need to read it. It might be helpful if you encounter
problems.

1. On Windows (preferably Windows 7 SP1), install Microsoft Visual Studio
2013 (preferably Microsoft Visual Studio Express 2013 for Windows Desktop;
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).
If you install the compiler on a different version of Windows than Windows
7 SP1 or if you install a different version of Microsoft Visual Studio than
Microsoft Visual Studio Express 2013 for Windows Desktop then I imagine you
may need to change compiler setting(s) in ZZZKBot.vcxproj to ensure that the
resulting DLL can be run on Windows XP SP3 (e.g. if it turns out that it
doesn't work, perhaps try changing the PlatformToolset option for
'Release|Win32' and 'Debug|Win32' configurations from "v120" to "v120_xp").

3. Install BWAPI 4.1.2 to a path that does not contain spaces.

4. Set the environment variable BWAPI_DIR to the path of where you installed
BWAPI 4.1.2 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 hard-coded file paths (e.g. it doesn't matter what directory
you have installed Starcraft: Broodwar to).

5. In Windows Explorer, double-click the ZZZKBot.vcxproj file.

6. Change the drop-down from "Debug" to "Release".

7. From the menu, select: BUILD -> Build Solution. It should build with no
errors/warnings.

8. A folder ZZZKBot/Release/ should be automatically created when building.
The output is a single DLL file in that folder named ZZZKBot.dll (ZZZKBot is
not comprised of any other/optional files when running it).

As mentioned above, ZZZKBot runs using BWAPI version 4.1.2, and is only
supposed to play as Zerg in the AIIDE 2016 Starcraft AI competition. It does
not use BWTA2/BWTA. ZZZKBot itself does not use disk I/O (i.e. has no logic
to read or write files - not even log files), apart from any logic already
built into BWAPI (if any). It tailors its behaviour to particular
opponents based on in-game player names of the opponent bot(s).
96 changes: 96 additions & 0 deletions AIIDE2017_ENTRY.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
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 ================================
8 changes: 5 additions & 3 deletions AUTHORS.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
ZZZKBot - Authors
=================

Updated: 7th September 2016
Updated: 1st September 2017


Authors:

Chris Coxe (handle: Quatari), e-mail: chris (dot) coxe (at) gmail (dot) com
Name: Chris Coxe
Handle: Quatari
E-mail: chris (dot) coxe (at) gmail (dot) com

Contributions are welcomed, but I don't know whether I will maintain
Contributions are welcomed, but I still don't know whether I will maintain
ZZZKBot or for how long. See BUGS.txt.

=============================== End of file ================================
6 changes: 3 additions & 3 deletions BUGS.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
ZZZKBot - Bugs
==============

Updated: 7th September 2016
Updated: 1st September 2017


I don't know whether I will continue to maintain ZZZKBot. The project is on
GitHub, at:
I still don't know whether I will continue to maintain ZZZKBot. The project
is on GitHub, at:
https://github.com/chriscoxe/ZZZKBot

Please report bugs and issues there. Please don't expect a response/fix
Expand Down
64 changes: 42 additions & 22 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
ZZZKBot - Changes
=================

Updated: 16th July 2017


Version 1.4.0: version submitted on 16th July 2017 for the CIG 2017
Starcraft AI competition.

Version 1.3: version submitted on 19th December 2016 for the SSCAIT 2016
Starcraft AI competition.

Version 1.2: version submitted on 7th September 2016 for the AIIDE 2016
Starcraft AI competition. See file "SCAI2016_ENTRY.txt" for submission
details. The instructions to build and install are the same as AIIDE 2015
except that I inserted this step in INSTALL.txt that I forgot to write in
AIIDE 2015:
Updated: 1st September 2017


Version 1.5.0
-------------
Version submitted on 1st September 2017 for the 2017 AIIDE Starcraft AI
competition. Some major changes are that it now uses BWAPI 4.2.0 (not
4.1.2), requires the "Microsoft Visual C++ Redistributable for Visual Studio
2017" (x86 variant) to run (not 2013), requires Visual Studio 2017 to build
(not 2013), now uses the "bwapi-data/read" and "bwapi-data/write" folders
for learning purposes, and no longer runs on Windows XP SP3 (because BWAPI
version 4.2.0 doesn't).

Version 1.4.0
-------------
Version submitted on 16th July 2017 for the CIG 2017 Starcraft AI
competition. It has logic to read and write files but only uses them for
logging/record-keeping purposes - it does not use them for any learning
logic.

Version 1.3
-----------
Version submitted on 19th December 2016 for the SSCAIT 2016 Starcraft AI
competition.

Version 1.2
-----------
Version submitted on 7th September 2016 for the AIIDE 2016 Starcraft AI
competition. See file "SCAI2016_ENTRY.txt" for submission details. The
instructions to build and install are the same as AIIDE 2015 except that I
inserted this step in INSTALL.txt that I forgot to write in AIIDE 2015:

3. If the machine where ZZZKBot will be run does not have Microsoft Visual
Studio 2013 installed, you will need to install the 32-bit variant of the
Expand All @@ -23,13 +40,16 @@ installed (vcredist_x86.exe (i.e. 32-bit) is only one you need for Windows
XP). Currently it can be downloaded from Microsoft's website at:
https://www.microsoft.com/en-au/download/details.aspx?id=40784


Version 1.1: version submitted on 24th December 2015 for the SSCAIT 2015
Starcraft AI competition.


Version 1.0: version submitted on 10th October 2015 for the AIIDE 2015
Starcraft AI competition. See file "SCAI2015_ENTRY.txt" for submission
details.
Version 1.1
-----------
Version submitted on 24th December 2015 for the SSCAIT 2015 Starcraft AI
competition.

Version 1.0
-----------
Version submitted on 10th October 2015 for the AIIDE 2015 Starcraft AI
competition. See file "SCAI2015_ENTRY.txt" for submission details. ZZZKBot
is an improved and heavily refactored version of ZZZBot (ZZZBot won first
rank in the CIG 2015 Starcraft AI competition).

=============================== End of file ================================
Loading

0 comments on commit 2b648c4

Please sign in to comment.