-
Notifications
You must be signed in to change notification settings - Fork 7
/
AIIDE2016_ENTRY.txt
90 lines (75 loc) · 5.01 KB
/
AIIDE2016_ENTRY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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).