archive by month
Skip to content

CoG 2023 results by map

The map pool is the same as last year: (2)Benzene, (2)Eclipse, (2)Match Point, (3)Neo Aztec, (3)Neo Sylphid, (3)Outsider, (4)Circuit Breakers, (4)Fighting Spirit, (4)Polypoid. It’s three maps of each size.

Outsider is difficult for bots to play well, because it has a ring of bases around the outside, blocked by mineral lines. It takes extra smarts to exploit the map features. Outsider was the weakest map overall for the top protoss bots—even they don’t seem to have the extra smarts. It was the strongest map for XiaoYi, the only terran. Can its tanks and drops harass across the impassable mineral lines?

The stronger bots, from Microwave on up, have relatively stable performance across maps. The lower bots show some dramatic swings. CUNYBot versus ProtossPleb sees its win rates vary from 22% to 92% depending on the map. It’s no doubt due to specific strengths and weaknesses of bots that don’t have well-rounded skills.

overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
#1 Stardust91.31%94%92%89%92%90%88%90%90%95%
#2 PurpleWave80.87%79%83%83%80%80%79%81%81%81%
#3 BananaBrain75.52%75%75%78%78%77%73%76%74%74%
#4 McRave202256.23%60%55%58%55%56%52%55%60%55%
#5 MicroWave42.30%44%44%45%41%42%44%41%39%40%
#6 XIAOYI201935.75%31%32%31%35%35%41%39%37%40%
#7 CUNYBot20219.56%8%5%14%10%9%6%12%12%11%
#8 ProtossPleb8.45%9%14%2%8%10%16%5%7%5%

For reference, the overall map table from yesterday.

StardustoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
PurpleWave291/360
81%
35/40
88%
29/40
72%
28/40
70%
32/40
80%
32/40
80%
36/40
90%
30/40
75%
31/40
78%
38/40
95%
BananaBrain278/360
77%
31/40
78%
33/40
82%
27/40
68%
31/40
78%
29/40
72%
29/40
72%
32/40
80%
31/40
78%
35/40
88%
McRave2022348/360
97%
38/40
95%
40/40
100%
40/40
100%
38/40
95%
39/40
98%
40/40
100%
36/40
90%
37/40
92%
40/40
100%
MicroWave328/360
91%
39/40
98%
37/40
92%
35/40
88%
39/40
98%
38/40
95%
32/40
80%
34/40
85%
37/40
92%
37/40
92%
XIAOYI2019352/360
98%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
33/40
82%
40/40
100%
40/40
100%
39/40
98%
CUNYBot2021358/360
99%
40/40
100%
40/40
100%
40/40
100%
39/40
98%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
ProtossPleb346/360
96%
40/40
100%
39/40
98%
40/40
100%
40/40
100%
36/40
90%
37/40
92%
40/40
100%
37/40
92%
37/40
92%
overall91.31%94%92%89%92%90%88%90%90%95%

PurpleWaveoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust69/360
19%
5/40
12%
11/40
28%
12/40
30%
8/40
20%
8/40
20%
4/40
10%
10/40
25%
9/40
22%
2/40
5%
BananaBrain245/360
68%
30/40
75%
31/40
78%
27/40
68%
26/40
65%
23/40
57%
28/40
70%
25/40
62%
25/40
62%
30/40
75%
McRave2022348/360
97%
38/40
95%
38/40
95%
39/40
98%
38/40
95%
38/40
95%
40/40
100%
38/40
95%
39/40
98%
40/40
100%
MicroWave319/360
89%
30/40
75%
34/40
85%
36/40
90%
34/40
85%
39/40
98%
36/40
90%
37/40
92%
37/40
92%
36/40
90%
XIAOYI2019353/360
98%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
36/40
90%
39/40
98%
39/40
98%
40/40
100%
CUNYBot2021347/360
96%
39/40
98%
39/40
98%
40/40
100%
39/40
98%
38/40
95%
37/40
92%
39/40
98%
38/40
95%
38/40
95%
ProtossPleb357/360
99%
40/40
100%
40/40
100%
39/40
98%
39/40
98%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
overall80.87%79%83%83%80%80%79%81%81%81%

BananaBrainoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust82/360
23%
9/40
22%
7/40
18%
13/40
32%
9/40
22%
11/40
28%
11/40
28%
8/40
20%
9/40
22%
5/40
12%
PurpleWave115/360
32%
10/40
25%
9/40
22%
13/40
32%
14/40
35%
17/40
42%
12/40
30%
15/40
38%
15/40
38%
10/40
25%
McRave2022293/360
81%
32/40
80%
36/40
90%
36/40
90%
37/40
92%
34/40
85%
24/40
60%
32/40
80%
28/40
70%
34/40
85%
MicroWave333/360
92%
39/40
98%
37/40
92%
37/40
92%
39/40
98%
34/40
85%
37/40
92%
38/40
95%
35/40
88%
37/40
92%
XIAOYI2019360/360
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
CUNYBot2021360/360
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
ProtossPleb360/360
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
overall75.52%75%75%78%78%77%73%76%74%74%

McRave2022overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust12/360
3%
2/40
5%
0/40
0%
0/40
0%
2/40
5%
1/40
2%
0/40
0%
4/40
10%
3/40
8%
0/40
0%
PurpleWave12/360
3%
2/40
5%
2/40
5%
1/40
2%
2/40
5%
2/40
5%
0/40
0%
2/40
5%
1/40
2%
0/40
0%
BananaBrain67/360
19%
8/40
20%
4/40
10%
4/40
10%
3/40
8%
6/40
15%
16/40
40%
8/40
20%
12/40
30%
6/40
15%
MicroWave351/360
98%
39/40
98%
40/40
100%
39/40
98%
39/40
98%
40/40
100%
40/40
100%
38/40
95%
40/40
100%
36/40
90%
XIAOYI2019295/360
82%
38/40
95%
33/40
82%
39/40
98%
34/40
85%
33/40
82%
21/40
52%
28/40
70%
37/40
92%
32/40
80%
CUNYBot2021360/360
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
ProtossPleb320/360
89%
39/40
98%
35/40
88%
39/40
98%
34/40
85%
36/40
90%
29/40
72%
34/40
85%
34/40
85%
40/40
100%
overall56.23%60%55%58%55%56%52%55%60%55%

McRave loves Outsider against BananaBrain and hates it against XiaoYi and ProtossPleb. It averages out to mild dislike.

MicroWaveoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust32/360
9%
1/40
2%
3/40
8%
5/40
12%
1/40
2%
2/40
5%
8/40
20%
6/40
15%
3/40
8%
3/40
8%
PurpleWave41/360
11%
10/40
25%
6/40
15%
4/40
10%
6/40
15%
1/40
2%
4/40
10%
3/40
8%
3/40
8%
4/40
10%
BananaBrain27/360
8%
1/40
2%
3/40
8%
3/40
8%
1/40
2%
6/40
15%
3/40
8%
2/40
5%
5/40
12%
3/40
8%
McRave20229/360
2%
1/40
2%
0/40
0%
1/40
2%
1/40
2%
0/40
0%
0/40
0%
2/40
5%
0/40
0%
4/40
10%
XIAOYI2019248/360
69%
31/40
78%
33/40
82%
34/40
85%
28/40
70%
28/40
70%
33/40
82%
24/40
60%
20/40
50%
17/40
42%
CUNYBot2021352/360
98%
38/40
95%
40/40
100%
40/40
100%
39/40
98%
40/40
100%
37/40
92%
39/40
98%
39/40
98%
40/40
100%
ProtossPleb357/360
99%
40/40
100%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
39/40
98%
40/40
100%
39/40
98%
40/40
100%
overall42.30%44%44%45%41%42%44%41%39%40%
XIAOYI2019overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust8/360
2%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
7/40
18%
0/40
0%
0/40
0%
1/40
2%
PurpleWave7/360
2%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
4/40
10%
1/40
2%
1/40
2%
0/40
0%
BananaBrain0/360
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
McRave202265/360
18%
2/40
5%
7/40
18%
1/40
2%
6/40
15%
7/40
18%
19/40
48%
12/40
30%
3/40
8%
8/40
20%
MicroWave112/360
31%
9/40
22%
7/40
18%
6/40
15%
12/40
30%
12/40
30%
7/40
18%
16/40
40%
20/40
50%
23/40
57%
CUNYBot2021354/360
98%
40/40
100%
36/40
90%
39/40
98%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
ProtossPleb355/360
99%
36/40
90%
40/40
100%
40/40
100%
40/40
100%
40/40
100%
39/40
98%
40/40
100%
40/40
100%
40/40
100%
overall35.75%31%32%31%35%35%41%39%37%40%

CUNYBot2021overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust2/360
1%
0/40
0%
0/40
0%
0/40
0%
1/40
2%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
PurpleWave13/360
4%
1/40
2%
1/40
2%
0/40
0%
1/40
2%
2/40
5%
3/40
8%
1/40
2%
2/40
5%
2/40
5%
BananaBrain0/360
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
McRave20220/360
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
MicroWave8/360
2%
2/40
5%
0/40
0%
0/40
0%
1/40
2%
0/40
0%
3/40
8%
1/40
2%
1/40
2%
0/40
0%
XIAOYI20196/360
2%
0/40
0%
4/40
10%
1/40
2%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
ProtossPleb212/360
59%
19/40
48%
9/40
22%
37/40
92%
24/40
60%
22/40
55%
10/40
25%
31/40
78%
30/40
75%
30/40
75%
overall9.56%8%5%14%10%9%6%12%12%11%

ProtossPleboverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
Stardust14/360
4%
0/40
0%
1/40
2%
0/40
0%
0/40
0%
4/40
10%
3/40
8%
0/40
0%
3/40
8%
3/40
8%
PurpleWave3/360
1%
0/40
0%
0/40
0%
1/40
2%
1/40
2%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
BananaBrain0/360
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
McRave202240/360
11%
1/40
2%
5/40
12%
1/40
2%
6/40
15%
4/40
10%
11/40
28%
6/40
15%
6/40
15%
0/40
0%
MicroWave3/360
1%
0/40
0%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
1/40
2%
0/40
0%
1/40
2%
0/40
0%
XIAOYI20195/360
1%
4/40
10%
0/40
0%
0/40
0%
0/40
0%
0/40
0%
1/40
2%
0/40
0%
0/40
0%
0/40
0%
CUNYBot2021148/360
41%
21/40
52%
31/40
78%
3/40
8%
16/40
40%
18/40
45%
30/40
75%
9/40
22%
10/40
25%
10/40
25%
overall8.45%9%14%2%8%10%16%5%7%5%

CoG 2023 first look

In an astonishing break with tradition, my analysis program’s results exactly matched the official results on the first try. There was no need to cope with arbitrary changes to the format of the results file, or search for special cases that were handled differently this year, or exclude broken bots. How did they do it?????

Except for the naming issue, everything seems to have run cleanly, as far as I can tell from here. New bot ProtossPleb crashed 30% of the time, but the crash rate for the others was flat zero. There were 22 frame timeouts total, a negligible number. All bots played all games, which suggests that they silently replayed games which did not start. 360 rounds were played, fewer than the 450 last year.

Well, there is one error. The HTML version of the detailed results links to individual game replay files, but I can’t download them. The web server gives a 400 Bad Request error, not what you expect if the file is simply missing. I imagine the replay files are meant to be served through a relay behind the scenes, and it’s not set up properly.

overallStarPurpBanaMcRaMicrXIAOCUNYProt
Stardust91.31%81%77%97%91%98%99%96%
PurpleWave80.87%19%68%97%89%98%96%99%
BananaBrain75.52%23%32%81%92%100%100%100%
McRave202256.23%3%3%19%98%82%100%89%
MicroWave42.30%9%11%8%2%69%98%99%
XIAOYI201935.75%2%2%0%18%31%98%99%
CUNYBot20219.56%1%4%0%0%2%2%59%
ProtossPleb8.45%4%1%0%11%1%1%41%

Like last year, the crosstable is very smooth, with no upsets. In fact, it’s even smoother; the palest cell off the diagonal is BananaBrain-Stardust, where BananaBrain scored only 23%. The ranking is as clean as can be. The closest thing to an upset was that ProtossPleb was able to fight CUNYBot nearly even.

overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
#1 Stardust91.31%94%92%89%92%90%88%90%90%95%
#2 PurpleWave80.87%79%83%83%80%80%79%81%81%81%
#3 BananaBrain75.52%75%75%78%78%77%73%76%74%74%
#4 McRave202256.23%60%55%58%55%56%52%55%60%55%
#5 MicroWave42.30%44%44%45%41%42%44%41%39%40%
#6 XIAOYI201935.75%31%32%31%35%35%41%39%37%40%
#7 CUNYBot20219.56%8%5%14%10%9%6%12%12%11%
#8 ProtossPleb8.45%9%14%2%8%10%16%5%7%5%

The map table is smooth too. Averaged across opponents, the maps made little difference. That’s never true against specific opponents; I’ll post that data tomorrow.

racescore
terran36%
protoss64%
zerg36%

I like to include the race statistics, though all they say is “Yeah, protoss is still ahead, and there is still only one terran.”

botraceoverallvTvPvZ
Stardustprotoss91.31%98%85%96%
PurpleWaveprotoss80.87%98%62%94%
BananaBrainprotoss75.52%100%52%91%
McRave2022zerg56.23%82%29%99%
MicroWavezerg42.30%69%32%50%
XIAOYI2019terran35.75%-26%49%
CUNYBot2021zerg9.56%2%16%1%
ProtossPlebprotoss8.45%1%2%18%

Next: The map tables.

CoG first-try results posted

Purple Dan reported to me by e-mail. Thanks!

1. COG operators presented results at the conference and posted the summary results afterwards
2. Folks noticed that bots were run with incorrect names, which would break pretraining/preparation
3. COG silently removed the results, hoping to re-run it
4. After discussing it with bot authors, they have posted the full detailed results while authors decide if there was any likely impact of the error on the results

Microwave and BananaBrain seem to be the possibly-injured bots here, though it seems unlikely to me that anything would materially change.

Sure enough, the first-try detailed results are posted and I have grabbed ’em.

They ran the carryover bots with the year that they were carried over from appended to their names. For example, McRave was carried over from last year, and they ran it under the name McRave2022. In the posted registration list, it was listed simply as McRave. So any bot that was specially prepared to face McRave by name, wasn’t prepared after all. It can potentially make a big difference, but since only carryover bots were changed, it possibly may not.

I think it’s defensible as a policy. The carryovers are by definition not updated, and an updated bot’s ability to prepare for them can be seen as unfair—it’s much easier to hit a target that does not move. Special prep against one opponent may have no effect on play against others, so that the tournament measures progress where there is none. But it’s not a policy to spring on participants by surprise. If you’re going to do it that way, announce it in advance. Don’t make authors waste time.

Anyway, we’ll have to wait and see if there’s a decision to re-run.

Next: I’ll do a quick-look analysis of what we’ve got.

Update: Dan Gant points out to me that Microwave was also misspelled as MicroWave. Ouch.

progress on three items

Three items.

1. Steamhammer is coming along nicely. Today I completed and tested new infrastructure that will make it easy to solve one of Steamhammer’s biggest weaknesses, and bring other play improvements closer too. There’s not much time before the AIIDE submission deadline, but even so, expect harder fights.

2. Blog comments turn out to not be the only problem with the blog. I need to do some sysadmin stuff that I find tedious, and I don’t want to be distracted from working on Steamhammer. I’ll get around to it sometime in September for sure. Sorry. :-( I miss the good comments.

3. CoG has not posted results on its website, not even summary results. If and when they appear, I’ll do at least some of my usual analysis.

ASL 16 round of 24 group D

ASL 16 round of 24 continues this week. Group D just finished as I write, and it has the best games of the tournament so far.

Game 2, Action versus Effort, was a hive tech ZvZ, always special. It went to ultralisks versus defiler-lurker. Recommended. The following two games were also exciting, and the final game was not bad.

BananaBrain-Steamhammer game

To fill the dead air while I try to fix the absurdly undiagnosable comment bug, here’s a game I was pleased with.

Steamhammer - BananaBrain on Python was played not long ago. (Here’s the replay.) BananaBrain held the initiative for most of the game, and broke into the zerg natural at one point, but never destroyed a completed zerg base. The game has plague, parasite, and broodling.

Steamhammer’s favorite strategy is to overrun you in the late game. Even strong opponents lose if they let the strategy play out.

AIIDE and other tournaments

AIIDE. Steamhammer will play in AIIDE again this year. I expect to bring a new version—it has been too long. Steamhammer’s infrastructure for some important new skills is almost ready, so if all goes as it should I will shatter your futile hopes with lurker spines!

I like the map rules this year: Five chosen from last year’s maps, five from a long list of varied maps. It’s a compromise between the guaranteed quality of a fixed map pool and CoG’s historical plan of selecting the maps from a list with inconsistent quality, some of which bots struggle on. The AIIDE list is large but sorted by quality, and the allowed maps have relatively few features that bots can’t cope with. Well, the list is long enough that there are several maps I don’t recognize.

I have often tested Steamhammer on random maps from a large collection, including utterly nonstandard Blizzard maps. It’s not good (yet) at taking advantage of map features, but it’s solid and consistent on standard-ish maps. It may be to my advantage.

CoG. The conference runs from 21-24 August, so results should be out soon. The roster includes one new bot, ProtossPleb, whose name and information does not look promising in itself. But we’ll see. The other participants are several familiar top finishers.

ASL Season 16 started this week. No great games so far, but I enjoyed Calm’s clever play against Rain in group B of the round of 24. The best games are often in the round of 8.

I tried turning comments back on, but it seems the feature grew a technical problem on the new webhost. Stand by for repairs.

moving webhosts

Blog comments are turned off temporarily while I move to a new webhost. I originally planned it a couple years ago, but, well, here we are. With no recent posts, all the incoming comments are spam anyway.

I shall return!

new bot MacRobot

New zerg bot MacRobot, describes itself as “Student project based on Steamhammer 3.5.11 using experimental reinforcement learning-based build order recommendations after opening book. PoC version (mostly to test SSCAIT compatibility), will be disabled (RL model not yet well-trained).” PoC stands for Proof of Concept. It’s serious about being up only for testing. It was active for such a short time that I could not grab the binary to look at.

There is an obvious name connection with MicRobot, which I wrote up in April last year. MicRobot’s author is given as Robert Karpiel, and MacRobot may be by the same author.

MicRobot has changes apparently related to micro, as you might expect, and MacRobot claims to have macro learned by reinforcement learning. It will be interesting when it comes back up—assuming, of course, that the concept ends up proved. So far, the uploaded version has 6 crashes out of 7 games on BASIL—I think the RL component is turned off or not working, and the game stops at the end of the opening book.

new bot LionGIS

New zerg bot LionGIS, by author LionGIS, is a Steamhammer fork. LionGIS posted a comment toward the end of January “I've improved on Steamhammer and currently have a win rate of around 63% against BananaBrain.” This is presumably that bot. Of course, BananaBrain has been updated since then, and possibly LionGIS has been too. Also, LionGIS was posted without learning data, so it will take time to learn how to play against each opponent. In a month or so, if LionGIS ranks high enough, we may be able to tell whether the win rate claim still holds up.

GIS stands for Geographic Information System. A quick look around suggests that LionGIS in the outside world is a small outfit that has mapped or is mapping Fiji by drone.

The 2018 protoss bot DaQin also names LionGIS as its author, and in fact LionGIS the bot uses the name DaQin in some internal files. LionGIS has a github repo with the old DaQin, but the new zerg bot is not there. DaQin claims to be forked from “Locutus and Steamhammer,” which presumably means that it was forked from Locutus, and might mean that it borrows some code from a Steamhammer version later than Locutus’s base.

LionGIS is forked from a recent Steamhammer version. There’s no reason it should not be the latest. Steamhammer’s DLL is about 1.1MB while LionGIS’s is about 1.3MB, so there is a substantial amount of new code. It might be mostly code from a new library, though, for all I know. It might include code carried over from DaQin. I see new strings in the binary mentioning lurker tactics, something I started work on—using those words—and did not finish (yet). I suspect that the author saw my unfinished code and got it functioning, no doubt with improvements.

LionGIS’s lurker play does look more complicated and stronger than Steamhammer’s. It loves its lurkers, and its strongest matchup is ZvT because of its lurker play. It sticks with lurkers even when they are eaten up by mech or dragoons. I have also seen LionGIS make blunders that Steamhammer does not make, like sending drones into the middle of the map to fight incoming zealots. Most unit maneuvering is similar to Steamhammer. Some differences I noticed: It often gathers fresh units at home, like a human, rather than sending them immediately to the front lines like Steamhammer. Scourge is willing to brave light enemy fire to reach a target, unlike Steamhammer. Zergling micro has been fixed so that zerglings don’t freeze in place for a time like Steamhammer, but it is not clear to me that it improves zergling micro overall (there’s a reason I risk stalling the lings).

LionGIS knows many openings, but only a fraction of Steamhammer’s. It sticks with the better ones, rather than Steamhammer’s approach of throwing in the kitchen sink. LionGIS does have a strange habit of going hydras in ZvZ. I see other questionable decisions, like making double sunkens next to each other to stop encroaching cannons. Steamhammer will make more than one sunken against pushing cannons only if the cannons are pushing in from different directions, and then its sunkens are widely separated.

LionGIS shows signs of being tuned against Stardust. Its play feels different than against other opponents, and it puts up a tough fight before losing. I wouldn’t be surprised if it wins sometimes.

All in all, a complicated, interesting, and promising bot. May it gain many updates!

new bot Praetor Talis

New protoss bot Praetor Talis appeared on BASIL today. It is named after a Starcraft 2 hero.

It plays a fixed strategy with minor adaptations. It opens with economically efficient 10-12 gates and seems to switch from zealot to dragoon production after 9 to 11 zealots, when range research is well underway. It expands shortly after. The mix of zealots and dragoons in the middle game seems to be adaptive. If the game goes on, it techs to dark templar and expands further. It may get upgrades; I’ve seen it get attack and armor simultaneously. It adds cannons sometimes. I didn’t figure out the rules, but facing dark templar I saw it add one cannon per nexus. Mining looks efficient. Probes can defend themselves from harassing workers, and have some ability to run away from danger. The bot can rebuild when key buildings are destroyed.

Its micro is not up to the strong protoss bots. I watched seemingly weaker opponents can beat it by sound basics (Simplicity), or by leading early zealots on a goose chase until forces were adequate (CUNYBot by Bryan Weber). But Praetor Talis has a remarkably full set of skills for a brand new bot. I’m guessing the author has experience.

It has one update so far after its initial upload. Keep up the good work!

Randomhammer re-uploaded

I re-enabled Randomhammer on SSCAIT. It was disabled for the tournament. There are no updates to the code.

I disabled it on 19 December by uploading an empty zip. Strangely, Randomhammer’s game history shows 5 games played between 30 January and 4 February (today). Since there was no bot to run, the Randomhammer player did not do anything.

SSCAIT Steamhammer prospects

Steamhammer won all but 2 of its regames, shifting its score up minutely from 79-33 to 80-32. It is tied with WillyT, which means it’s not definite which opponent it will face. Depending on whatever rule is used to pair tied bots, it might face Hao Pan, PurpleWave, or Dragon. PurpleWave is a possible opponent only if Hao Pan wins its last regame, which is likely.

Halo by Hao Pan would be its ideal opponent. Steamhammer would stand a good chance to upset the higher ranked bot.

PurpleWave would almost certainly win.

Dragon is in between. Steamhammer’s score ratio versus Dragon on BASIL is around 2:3, so it has a theoretical chance of winning a match. But Steamhammer will do worse on SSCAIT because it has less data to go on. There would be a slight chance of an upset.

SSCAIT round robin results

The SSCAIT round robin crosstable has just filled up with all games played. I hope and expect that games where one bot failed to start due to server problems will be replayed, as they were last year, so the rankings should shuffle a bit.

BananaBrain and Krasi0 are tied at the top, closely followed by Monster and Stardust. There’s a gap before PurpleWave at #5. Winning percentages at the top are down somewhat from over 95% last year. A little lower in the rankings, starting from #8, winning percentages are up. I think it shows the pattern of improvement. The topmost bots are well ahead of all others, and close in strength. They consistently defeat lower ranks and have hard fights among themselves, so the winning percentages are slightly down. But all the top 16 are stronger than last year, and they scored better against the remainder.

Bots that have not been updated: BetaStar fell from #4 last year to #6. Iron fell from #7 to #9. Xiao Yi fell from #9 to #14. TyrProtoss bucked the trend and rose from #17 to #13. To pick a couple other prominent examples, Skynet by Andrew Smith fell from #19 and 58.33% to #25 and 51.79%. On the other hand, XIMP by Tomas Vajda went from #23 and 56.48% to #21 and 55.36%, holding its position. In the overall bot pool, specialized anti-carrier play has not improved.

Steamhammer stands at #10 and 70.54%, about the same as last year’s #12 and 65.74%. In both years, bots at that level are closely spaced in results, and a couple slots up or down is not significant. Steamhammer was able to keep pace without updates because it has more learning data than last year, when its data had been cleared recently. Even so, many of its losses to the lower ranks were due to lack of experience. It could have scored better if I had copied learning data from BASIL for some opponents.

SSCAIT PurpleWave-Steamhammer game

Another interesting game was PurpleWave v Steamhammer.

PurpleWave opened with two gates on one base but noticed a lot of zerglings. It cautiously added cannons at its ramp before moving out to pressure. It was an overstep: The ramp with zealots was unassailable, but as it happened Steamhammer defeated the zealots in the field and then the cannons over the ramp in detail, before being chased out by new zealots. On the next moveout, zerglings again broke into the base, killed the new cannon, and did away with many probes. Zerg evened the worker count but could not quite pull a win. Stamhammer switched to droning up, and it was the start of a long fight. PurpleWave spent a lot of gas replacing observers.

A couple cannons are little defense if unsupported, and take away from the zealot count. The bigger issue is, how do you know when it’s safe to move out? The scouting probe was long dead, and sending a new probe does not necessarily reveal the zergling count. Speedlings could easily catch it before it gets far. For zerg, the eternal issue is the economy/army tradeoff. If Steamhammer had kept up zergling production, it would likely have won quickly because of the overconfident protoss play. But if PurpleWave held the ramp instead, zerg would have fallen behind and had no chance. Steamhammer is weak at managing the tradeoff in the middle game.

Starcraft. It’s a hard game.

SSCAIT game Stardust-Dragon

Today’s tournament game Stardust v Dragon was fun and instructive. Dragon used vulture mines aggressively, and shifted gradually from all vultures to all tanks. The effectiveness of a small number of tanks with a large number of vultures is worth understanding, but don’t overlook that the terran army was larger. It’s interesting to compare the changing worker counts throughout the game.

2 tanks and vultures hold off dragoons