archive by month
Skip to content

SSCAIT losing after winning

Watching the ongoing tournament, I see that some older bots are being given losses after they eliminate the opponent. The symptom is that A eliminates B, then right away the notification comes up “waiting for player A”, its time runs out, and A is counted as the loser. I’ve seen it several times.

Jakub Trancik is an obvious example. For example, it happened in today’s game Jakub Trancik - Yuanheng Zhu. Jakub Trancik has recorded no replays in the whole tournament, and this can only be why. Jakub Trancik’s sole recorded win so far is versus MegaBot2017, which crashes often. And yet Micky Holdorf’s tournament page gives Jakub Trancik only 3 timeouts and 14 crashes in 64 games.

Jakub Trancik also scored at the bottom last year, with similar numbers, but scored about 23% in the 2020-2021 tournament. Presumably a change made in 2021 caused the bot’s “game over” code to no longer work. Does it disconnect before Starcraft recognizes the win? Or what?

It would be nice to fix the issue, since it messes up the definition of winning. But as far as I’ve seen the affected bots are very old. If that’s true, then disabling them would probably not hurt much.

SSCAIT 2022 prospects

I may not have updated Steamhammer in 2022, but I am still following SSCAIT. I’m watching a lot of the games, and especially all Steamhammer games.

Krasi0 is participating, after sitting out recent tournaments. It has been missed.

I expect the top to be fought between Krasi0, Stardust, and BananaBrain. Krasi0 is the favorite to win the round robin phase. Monster has slipped a little as a few opponents have learned how to deal with it. PurpleWave put on a clinic for how to beat Monster as protoss, and so did Krasi0 as terran. Both won with one-base timing attacks at an early point when Monster’s build was weak. Monster needed better understanding of the opponent’s build to adapt. (Monster’s ZvZ build and adaptation are different, so zerg can’t simply copy the timing.)

PurpleWave is following its pattern of excellent preparation against key opponents it will face in the elimination phase, along with stray losses to weaker opponents. Will it be good enough to win the elimination phase and be the overall winner?

So far Steamhammer has been holding a position at the bottom of the top 16, with only slight wobbles. But the tournament is young. I expect it to finish about the same as last year. Only its top opponents have improved much, and they are all ranked higher anyway! And Steamhammer’s learning tends to make it robust against moderate updates to its opponents, at least once it has had time to adjust. But then, I have been over-optimistic in the past.

AIIDE 2022 hardware version - results comparison

The alternate AIIDE 2022 tournament finished. As expected, the top beneficiary was PurpleWave. Well, McRave was the biggest beneficiary in terms of wins, because its frame timeouts fell so much, but it was only enough to pull it up one rank. I thought Steamhammer and Dragon would fall down the ranks, relative to the bots that were no longer timing out, but in fact Steamhammer held its place at #4 and Dragon dropped from #3 to #6. Huh! Steamhammer’s learning does insulate it from its opponents to some extent.

virtual machine tournament (original)
hardware tournament (alternate)

Here’s a table comparing the results. The numbers are changes in percentages (not percentage changes). In the vm tournament BananaBrain scored 85.53%, in the hardware tournament it scored 85.03%. The difference is -0.5%.

##’botwin diffcrash difftimeout diff
11bananabrain-0.5%0-3.5%
22stardust-4.86%-0.8%-0.2%
53purplewave+6.27%+0.04%-9.88%
44steamhammer-1.42%-0.04%-0.14%
65mcrave+11.31%0-26.55%
36dragon-9.22%+3.2%0
77microwave-2.62%+0.18%-0.9%
88ualbertabot-1.84%-0.04%0
99pylonpuller+2.86%0-0.5%
1110cunybot+2.86%0-6.01%
1011styx-2.83%0+0.14%

PylonPuller and CUNYBot have identical numbers in the win diff column. It’s a coincidence. Styx somehow had 3 frame timeouts running directly on hardware versus 0 on a vm. It could be bad luck. All other bots had fewer frame timeouts on hardware, unless they already had 0.

Here’s a table comparing totals and averages between the tournaments.

columnvmhardware
games1216712043
game time12:0412:56
wall time4:052:42
game timeouts115229
crashes127117
frame timeouts114490

The hardware tournament ran games much, much faster, and yet had far fewer frame timeouts. And that is even though games ran slightly longer on average in terms of game time, so that more frames were needed.

The hardware tournament had twice as many game timeouts, where the game was adjudicated on points after 60 minutes of game time. I imagine those long games were a disproportionate source of frame timeouts. Longer games are also likely why Dragon had more crashes; it was the only bot to have an important change in crash rate.

AIIDE 2022 - what Microwave learned

Microwave’s history files are completely different from Steamhammer’s, but it’s hard to tell the difference from this summary. The opening names and recognized strategies look alike. They even both recorded 200 games of the 220 or so that were played per opponent.

They’re different in that I can’t speak to Microwave’s exploration strategy.


#1 bananabrain

openinggameswinsfirstlast
10Hatch9Pool9gas20%252
10HatchMain9Pool9Gas10%9292
11Gas10PoolLurker10%102102
11Gas10PoolMuta80%8173
11HatchTurtleHydra30%16182
11HatchTurtleMuta20%133161
12Hatch10%5151
12HatchMain10%5353
12HatchTurtle20%29103
12Pool20%145179
12PoolMain368%0199
12PoolMuta20%3877
2HatchHydra10%7575
2HatchLurker10%4343
2HatchMuta10%192192
2HatchMuta_Sparkle10%121121
3HatchHydraExpo10%8989
3HatchHydra_BHG10%175175
3HatchLingBust138%57177
3HatchLurker10%162162
3HatchMuta10%108108
3HatchMutaExpo10%141141
3HatchPool10%2626
3HatchPoolHydra10%33
3HatchPoolHydraExpo10%125125
4HatchPoolHydra10%184184
4PoolSoft10%170170
7PoolHydraRush7D10%4747
9Hatch9Pool9Gas30%54191
9Pool10%1818
9PoolExpo10%7979
9PoolGasHatchSpeed8D248%4193
9PoolHatch10%5555
9PoolHatchGasSpeed8D3826%5198
9PoolLurker20%4459
9PoolSpeed10%152152
9PoolSpeedLing100%1172
9PoolSunkHatch10%3434
Overpool10%4848
OverpoolLurker10%116116
OverpoolSpeed10%2323
OverpoolSunken10%134134
OverpoolTurtle30%49194
ZvP_10Hatch9Pool30%70178
ZvP_11Hatch10Pool119%50195
ZvP_2HatchHydra30%91128
ZvP_9Hatch9Pool30%35196
ZvZ_Overpool9Gas10%4646
ZvZ_OverpoolTurtle10%4545
49 openings2008%
enemygameswins
FastRush10%
HeavyRush1457%
NakedExpand1520%
Turtle10%
Unknown3811%
5 openings2008%

#2 stardust

openinggameswinsfirstlast
10Hatch9Pool9gas10%6565
10HatchTurtleHydra10%8585
11Gas10PoolLurker10%131131
11Gas10PoolMuta10%198198
11HatchTurtleHydra20%99124
11HatchTurtleLurker10%8888
11HatchTurtleMuta2015%25185
12PoolMain10%9898
1HatchMuta_Sparkle3324%135199
2HatchHydra20%127190
2HatchLurker20%8283
2HatchLurkerAllIn20%132133
2HatchMuta20%690
2HatchMuta_Sparkle10%194194
3HatchExpo10%8787
3HatchHydraBust50%2153
3HatchHydraExpo20%96146
3HatchHydra_BHG138%38188
3HatchLingBust20%110172
3HatchLurker20%2873
3HatchMuta40%89149
3HatchMutaExpo30%6780
3HatchPool10%123123
3HatchPoolHydraExpo70%3113
4HatchBeforeGas20%492
4HatchPool10%120120
4HatchPoolHydra10%134134
4PoolHard40%9170
4PoolSoft30%1672
5HatchPoolHydra10%192192
5Pool20%51187
5PoolSpeed10%9797
6Pool10%183183
7PoolHydraLingRush7D10%1111
8Pool20%81118
9Hatch9Pool9Gas50%5106
9HatchMain8Pool8Gas1513%45197
9HatchTurtleHydra10%111111
9Pool20%22107
9PoolExpo20%33117
9PoolGasHatchSpeed8D20%78125
9PoolHatchGasSpeed8D10%1919
9PoolLurker10%101101
9PoolSpeed147%0177
9PoolSpeedLing30%57184
9PoolSunkHatch10%6969
Overpool20%121129
OverpoolLurker10%104104
OverpoolSpeed60%95175
OverpoolTurtle20%109152
ZvP_10Hatch9Pool40%114126
ZvP_11Hatch10Pool20%62108
ZvP_2HatchHydra20%75155
ZvP_9Hatch9Pool30%86103
ZvZ_Overpool11Gas20%91161
55 openings2008%
enemygameswins
HeavyRush290%
NakedExpand343%
SafeExpand138%
Turtle100%
Unknown11411%
5 openings2008%

#3 dragon

openinggameswinsfirstlast
10Hatch9Pool9gas10%182182
10HatchMain9Pool9Gas10%192192
11Gas10PoolMuta3348%15194
11HatchTurtleLurker333%666
11HatchTurtleMuta10%1414
12Pool10%44
2HatchLurker1242%5189
3HatchPool2250%80183
4HatchPool333%10177
4PoolHard10%7878
5HatchPool4459%0198
5HatchPoolHydra4252%1193
5Pool1040%45145
7Pool20%139199
7PoolHydraLingRush7D20%2379
7PoolHydraRush7D10%191191
8PoolHydraRush8D20%167188
9HatchTurtleHydra10%186186
9PoolGasHatchSpeed8D10%159159
9PoolHatchGasSpeed8D10%9393
9PoolSpeed20%3190
9PoolSpeedLing10%174174
OverpoolLurker1136%33184
OverpoolSpeed10%8383
ZvP_10Hatch9Pool10%107107
25 openings20045%
enemygameswins
Factory11737%
HeavyRush1638%
SafeExpand2357%
Turtle475%
Unknown3661%
WorkerRush475%
6 openings20045%

#4 steamhammer

openinggameswinsfirstlast
10HatchTurtleHydra10%157157
11Gas10PoolLurker20%133169
11HatchTurtleLurker10%135135
12Hatch20%3184
12HatchMain10%8484
12Pool10%4444
12PoolMain10%7575
12PoolMuta10%4646
2HatchMuta10%159159
2HatchMuta_Sparkle40%1692
3Hatch10%77
3HatchHydraBust10%168168
3HatchLingBust10%126126
3HatchLurker10%7777
3HatchMutaExpo10%9090
3HatchPool10%5959
4HatchBeforeGas10%199199
4PoolHard520%15167
4PoolSoft10%108108
5Pool10%8888
6Pool10%107107
6PoolSpeed2025%4192
8Pool10%22
9Hatch9Pool9Gas1631%119191
9PoolGasHatchSpeed8D10%8686
9PoolHatch10%144144
9PoolHatchGasSpeed8D10%114114
9PoolSpeed4743%45198
9PoolSpeedLing1315%11111
9PoolSunken10%2323
Overpool10%163163
OverpoolSpeed10%154154
ZvP_10Hatch9Pool10%5757
ZvZ_Overgas11Pool1926%26194
ZvZ_Overgas9Pool617%29186
ZvZ_Overpool11Gas40%137
ZvZ_Overpool9Gas3738%0195
37 openings20026%
enemygameswins
HeavyRush13125%
NakedExpand1567%
Turtle3910%
Unknown1540%
4 openings20026%

#5 purplewave

openinggameswinsfirstlast
10Hatch9Pool9gas1963%17199
11Gas10PoolMuta425%87107
11HatchTurtleMuta8966%6197
12HatchMain10%184184
1HatchMuta_Sparkle10%3131
2HatchHydra333%131144
2HatchLurker10%176176
2HatchLurkerAllIn10%22
2HatchMuta20%1565
2HatchMuta_Sparkle20%114175
3HatchHydraBust10%155155
3HatchHydra_BHG10%8484
3HatchLurker10%9191
3HatchMuta3543%0190
3HatchPoolHydra10%105105
4HatchPool10%104104
4HatchPoolHydra10%4747
4PoolSoft10%112112
7PoolHydraLingRush7D10%44
8Pool450%130194
9Hatch9Pool9Gas20%5136
9HatchMain8Pool8Gas10%2424
9HatchTurtleHydra10%171171
9PoolGasHatchSpeed8D1250%1192
OverpoolSpeed10%6262
ZvP_2HatchHydra10%7272
ZvP_9Hatch9Pool1145%148182
ZvZ_Overgas9Pool10%115115
28 openings20050%
enemygameswins
HeavyRush11447%
NakedExpand2264%
SafeExpand2259%
Turtle1839%
Unknown2454%
5 openings20050%

#6 mcrave

openinggameswinsfirstlast
10HatchMain9Pool9Gas10%6767
10HatchTurtleHydra10%6464
11Gas10PoolMuta10%9494
11HatchTurtleHydra10%1717
11HatchTurtleLurker10%155155
12Hatch10%5151
12HatchMain20%114174
12HatchTurtle2917%3193
12Pool20%52144
12PoolMain20%36119
2HatchHydra20%4892
2HatchLurker20%3944
2HatchLurkerAllIn10%4949
2HatchMuta10%2828
3Hatch20%3032
3HatchExpo10%8181
3HatchHydraExpo20%7476
3HatchHydra_BHG10%199199
3HatchLingBust20%2040
3HatchLurker10%121121
3HatchMuta10%2323
3HatchMuta_Sparkle20%5357
3HatchPoolHydra10%5858
3HatchPoolHydraExpo10%192192
4HatchBeforeGas10%164164
4HatchPool10%151151
4HatchPoolHydra10%5050
4PoolHard60%35181
4PoolSoft40%59196
5HatchPool10%8080
5Pool40%0104
6Pool30%2642
6PoolSpeed10%117117
8Pool10%1515
8PoolHydraRush8D20%136149
9HatchMain8Pool8Gas20%33152
9HatchTurtleHydra10%165165
9Pool20%4356
9PoolExpo10%5555
9PoolGasHatchSpeed7D10%4545
9PoolGasHatchSpeed8D20%63123
9PoolHatch20%90183
9PoolHatchGasSpeed7D10%188188
9PoolHatchGasSpeed8D3225%1198
9PoolLurker10%113113
9PoolSpeed138%9129
9PoolSpeedLing10%168168
9PoolSunken10%2121
OverpoolLurker10%6666
OverpoolSpeed20%54101
OverpoolTurtle10%1616
ZvP_10Hatch9Pool160%2172
ZvP_2HatchHydra10%3434
ZvP_9Hatch9Pool80%6166
ZvZ_Overgas11Pool10%4646
ZvZ_Overpool11Gas1010%134184
ZvZ_Overpool9Gas138%38195
ZvZ_OverpoolTurtle10%115115
58 openings2008%
enemygameswins
FastRush20%
HeavyRush1699%
NakedExpand20%
Turtle140%
Unknown130%
5 openings2008%

#8 ualbertabot

openinggameswinsfirstlast
11Gas10PoolLurker7765%1198
11Gas10PoolMuta10%181181
11HatchTurtleHydra10%157157
11HatchTurtleMuta1145%95184
12HatchTurtle10%8787
3HatchMuta_Sparkle450%153162
3HatchPoolHydraExpo10%137137
4HatchPoolHydra10%136136
5PoolSpeed743%23122
9HatchMain8Pool8Gas10%6868
9HatchTurtleHydra367%194196
9PoolGasHatchSpeed7D2070%129199
9PoolGasHatchSpeed8D2060%18174
9PoolHatch250%191192
9PoolHatchGasSpeed8D333%128167
9PoolSpeedLing2352%0185
9PoolSunkHatch10%197197
9PoolSunken10%188188
OverpoolSpeed1753%103177
ZvP_10Hatch9Pool20%117178
ZvP_11Hatch10Pool10%6363
ZvP_9Hatch9Pool10%171171
ZvZ_Overgas9Pool10%160160
23 openings20056%
enemygameswins
Factory10100%
FastRush2157%
HeavyRush11542%
NakedExpand15100%
Unknown3967%
5 openings20056%

#9 pylonpuller

openinggameswinsfirstlast
10Hatch9Pool9gas2658%37146
11Gas10PoolLurker4491%126197
12PoolMain10%2323
3HatchHydraBust3148%1123
3HatchLingBust4168%0160
3HatchMutaExpo2035%3122
4PoolSoft333%5878
7PoolHydraLingRush7D10%2929
8PoolHydraRush8D10%7777
OverpoolSpeed729%2898
ZvP_2HatchHydra2580%137199
11 openings20064%
enemygameswins
HeavyRush8448%
Turtle7564%
Unknown4198%
3 openings20064%

#10 styx

openinggameswinsfirstlast
9PoolHatchGasSpeed8D1593%025
OverpoolTurtle185100%1199
2 openings200100%
enemygameswins
FastRush87100%
HeavyRush8899%
Unknown25100%
3 openings200100%

#11 cunybot

openinggameswinsfirstlast
9PoolGasHatchSpeed8D74100%1199
9PoolSpeedLing57100%6197
9PoolSunken65100%0198
OverpoolSunken475%212
4 openings200100%
enemygameswins
FastRush12100%
HeavyRush7699%
NakedExpand92100%
Proxy1100%
Unknown19100%
5 openings200100%

AIIDE 2022 - what Steamhammer learned

Steamhammer did not record all games, only the last 200. I’ll mention my preparation for different opponents, because it makes a big difference.

Steamhammer’s gas steal achieved nothing significant against any opponent. Maybe next year I’ll disable it.


#1 bananabrain

openinggameswinswinslossesfirstlast
10HatchHydra20%-8:5862195
10HatchLing10%-10:00150150
11Gas10PoolLurkerB10%-20:123232
11HatchTurtleHydra10%-14:25138138
12-11Hatch10%-11:114747
12-12Hatch10%-13:548787
12Hatch12Pool10%-15:02137137
12Hatch13Pool10%-12:299595
3HatchHydraExpo10%-9:36135135
3HatchLing10%-8:19109109
3HatchLingBust4726%15:1911:560197
3HatchLingExpo911%7:588:563154
4HatchBeforeLair10%-8:3477
4PoolHard10%-8:00159159
5HatchBeforeGas138%12:1111:564161
5HatchPoolLing10%-14:372222
5HatchPoolLingBurrow3017%22:3810:2350187
5PoolHard2Player10%-17:253939
6PoolBurrow10%-11:546969
6PoolHide20%-16:2337110
6PoolSpeed10%-8:544949
7-7HydraRush10%-7:343333
7PoolHard10%-12:447979
8Gas7PoolLurker B10%-6:217373
8Hatch7Pool10%-13:32106106
8Pool10%-11:184444
9HatchExpo9Pool9Gas10%-10:094040
9HatchMain9Pool9Gas1916%9:5111:37112192
9Pool20%-10:12164193
9PoolExpo10%-11:387474
9PoolHatch10%-16:2522
9PoolHatchBurrow10%-14:415757
9PoolHatchSpeed7Drone10%-12:468282
9PoolHatchSpeed7DroneB10%-11:297676
9PoolHatchSpeedSpire210%-15:095555
9PoolHatchSpire10%-8:109999
9PoolLair20%-11:3152105
9PoolLurker10%-12:00175175
9PoolSpeed10%-9:007575
9PoolSpeedAllIn20%-7:25141198
9PoolSpire10%-6:43143143
9PoolSunkHatch20%-13:1598111
9PoolSunkSpeed10%-7:258383
AntiFact_2Hatch10%-6:49199199
AntiFactoryHydra10%-11:02129129
AntiStyx_9Pool20%-9:01108170
AntiStyx_Muta10%-9:463535
AntiZeal_12Hatch10%-15:27171171
DefilerRush10%-13:19188188
Over10Hatch20%-11:3186165
Over10Hatch2Sunk20%-17:363042
Over10PoolHydra20%-10:40124
OverhatchExpoLing20%-14:1945177
OverhatchExpoMuta20%-12:1580184
OverhatchLing20%-10:582548
Overpool+110%-8:44185185
OverpoolHide10%-9:38145145
OverpoolLurker10%-6:57162162
OverpoolSpeed10%-10:048989
Phlegethon1020%8:2614:029196
ZvP_2HatchFakeHydra10%-9:207878
ZvP_2HatchFakeMuta10%-14:56139139
ZvP_3HatchPoolHydra10%-16:342626
ZvP_Overpool3Hatch10%-12:404646
ZvT_13Pool10%-7:52160160
65 openings20012% 12:49 11:31
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush178%6%147%7%24%47%
Heavy rush8744%11%7940%13%75%15%
Naked expand94%11%42%50%0%89%
Proxy2412%12%168%0%29%17%
Safe expand5326%17%3216%12%51%9%
Turtle105%0%158%7%10%20%
Unknown--4020%15%0%0%
timing#medianearlylate
my combat unit2003:091:497:43
my gas1833:271:1511:15
enemy scout2001:440:576:47
enemy combat unit2002:532:186:02
enemy gas1876:182:4810:52
enemy air unit1836:332:4912:46
enemy cloaked unit1399:023:2613:50
game duration20011:335:5226:39
gas steal#medianearlylatewinsenemy gas
gas steal decision532:141:583:4615%6:27
gas steal success382:202:083:4316%6:28
none or failed162---11%6:12
gas steal killed383:052:5120:12


On BASIL, Steamhammer had been scoring best against BananaBrain with the Phlegethon ling-flood build. If that worked, then I reasoned (without testing) that the similar but more efficient 3HatchLingBust should be better. I gave Steamhammer hints to try both, and I was right. It wins sometimes when BananaBrain incautiously expands too early. Since no opening was good, Steamhammer experimented widely and found a lot of inferior tries.


#2 stardust

openinggameswinswinslossesfirstlast
11Gas10PoolLurker10%-11:223434
11HatchTurtleHydra20%-10:5434
11HatchTurtleMuta138%13:0412:3813153
12HatchTurtle10%-12:21104104
2HatchLurkerAllIn20%-11:363673
2HatchMutaPure1136%0:0110:45165195
2x10HatchAllIn911%0:0110:0055194
2x10HatchSlow10%-9:591010
3GasMuta3424%7:3912:0318198
3HatchHydraExpo20%-13:445109
3HatchLing10%-9:4911
3HatchLingExpo10%-9:55190190
3HatchLurker10%-9:55146146
4HatchBeforeGas10%-10:29126126
4PoolSoft10%-9:541717
5HatchPoolLing10%-11:546363
5PoolHard2Player10%-10:03169169
6PoolSpeed70%-10:04997
7PoolMid10%-9:249494
8-8HydraRush119%7:038:0160189
8Hatch7PoolBurrowB10%-9:16123123
9GasLair10%-8:187474
9PoolFastLair10%-8:40156156
9PoolFastLurker10%-12:378080
9PoolFastSpireB10%-9:032424
9PoolHatch10%-9:25100100
9PoolLair10%-13:53199199
9PoolLurker10%-11:448181
9PoolSpeed10%-13:58159159
9PoolSpeedAllIn10%-12:0266
9PoolSpire10%-9:58136136
9PoolSunkBurrow812%0:019:4666162
9PoolSunkHatch10%-13:06103103
9PoolSunkSpeed10%-9:293737
AntiZeal_12Hatch10%-9:562727
DefilerRush10%-26:439999
HiveRush10%-22:44186186
Over10Hatch1Sunk30%-10:262107
Over10Hatch2Sunk20%-11:2550111
Over10HatchBust20%-9:20052
Over10HatchHydra10%-11:454444
Over10HatchSlowLings10%-12:303939
Over10PoolMuta20%-8:05108140
OverhatchExpoLing10%-9:182929
OverpoolFastLair10%-10:35130130
OverpoolSpeed10%-8:5488
OverpoolTurtle 010%-12:071111
Overpool_3HatchLing1631%0:0110:4043157
Overpool_3HatchSpeed10%-9:424040
Sparkle 1HatchMuta3447%17:3415:45112197
Sparkle 3HatchMuta10%-9:05168168
ZvP_Overpool3Hatch10%-8:43171171
ZvT_2HatchMuta10%-15:449090
ZvT_3HatchMuta10%-11:28187187
ZvZ_12Gas11Pool10%-7:32192192
ZvZ_12HatchExpo10%-9:192222
ZvZ_12HatchMain10%-10:21163163
ZvZ_Overpool9Gas10%-9:553030
58 openings20018% 15:17 10:48
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush19196%18%5628%5%29%70%
Turtle94%33%21%0%0%89%
Unknown--14271%24%0%0%
timing#medianearlylate
my combat unit1863:101:495:19
my gas1853:011:187:25
enemy scout1861:571:186:01
enemy combat unit1862:462:215:14
enemy gas1863:573:057:53
enemy air unit1864:053:0610:13
enemy cloaked unit6211:066:5717:09
game duration20010:560:0126:43
gas steal#medianearlylatewinsenemy gas
gas steal decision122:041:532:158%3:56
gas steal success62:041:562:210%4:17
none or failed194---19%3:56
gas steal killed62:452:362:57


I expected to score zero against Stardust, or next to it. As it turned out, mutalisk openings held out some hope, and not all wins were due to Stardust crashing (the “wins” timing column gives the median duration of winning games).


#3 dragon

openinggameswinswinslossesfirstlast
3HatchPoolMuta757%14:2926:3567177
5HatchPool5190%14:2028:300194
9PoolFastLurker1070%10:3631:33109191
9PoolHatchSpeed10%-16:1277
9PoolSpire10%-16:305454
AntiFact_13Pool1560%17:2222:122180
AntiFact_Overpool11Hatch5990%16:5124:1120196
OverpoolLurker10%-21:477474
OverpoolSpeed10%-15:014545
ZvP_4HatchPoolHydra1675%14:2527:124197
ZvT_3HatchMutaExpo3884%16:2523:313199
11 openings20082% 15:45 23:35
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory2412%75%2010%75%21%29%
Heavy rush32%67%63%100%0%67%
Naked expand147%79%168%81%7%43%
Safe expand9045%80%4623%83%30%34%
Turtle--32%100%0%0%
Unknown--6734%79%0%0%
Worker rush6934%87%4221%83%43%30%
timing#medianearlylate
my combat unit2003:102:138:17
my gas1683:391:4617:58
enemy scout1932:141:0313:37
enemy combat unit1692:432:218:46
enemy gas1656:062:3414:09
enemy air unit1639:295:3318:13
enemy cloaked unit11510:507:2224:22
game duration20016:243:4251:19
gas steal#medianearlylatewinsenemy gas
gas steal decision102:442:243:0680%6:29
gas steal success0-----
none or failed200---82%6:06
gas steal killed0---


Since Dragon was a carryover bot, and Steamhammer was not much changed from last year, my preparation was to drop in last year’s learning file unchanged. The Steamhammer fixes I did make improved defense substantially, though, so Steamhammer in most cases scored better playing the same openings. It discovered AntiFact_Overpool11Hatch on its own, though.

Dragon never allowed a gas steal. And it played the longest games.


#5 purplewave

openinggameswinswinslossesfirstlast
10Hatch10%-12:137373
10HatchBurrow10%-11:242424
11HatchTurtleMuta5269%20:1416:1568194
11Pool10%-28:54106106
2.5HatchMuta10%-6:46172172
6PoolHide10%-31:133737
7-7HydraRush10%-10:23149149
7Pool12Hatch1173%10:1321:27167198
9GasLair825%24:2111:5166164
9PoolHatchSpeedAllIn10%-9:271717
9PoolSpeedAllIn2642%24:4013:1929192
9PoolSunkHatch1323%25:2416:0811147
AntiZeal_12Hatch650%21:4314:02161184
Over10Hatch3435%25:1322:411199
Over10Hatch1Sunk10%-43:2444
Over10Hatch2Sunk20%-21:013196
Over10HatchBurrow10%-15:529797
Over10HatchBust1844%7:5912:130166
Over10HatchSlowLings10%-10:4877
OverhatchLateGas933%24:1413:28135195
OverpoolBurrow10%-10:42152152
OverpoolHide617%8:3924:2759176
OverpoolTurtle 010%-11:23133133
UltraRush10%-9:282525
ZvP_3BaseSpire+Den10%-19:122727
ZvT_12PoolMuta10%-21:27158158
26 openings20044% 21:45 15:45
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush200100%44%15578%44%78%9%
Naked expand--168%69%0%0%
Safe expand--21%50%0%0%
Turtle--94%11%0%0%
Unknown--189%33%0%0%
timing#medianearlylate
my combat unit2003:031:584:02
my gas1994:021:197:09
enemy scout1991:351:188:06
enemy combat unit2002:432:223:46
enemy gas1906:293:549:46
enemy air unit1739:196:3015:02
enemy cloaked unit14412:136:4217:31
game duration20019:335:3860:00
gas steal#medianearlylatewinsenemy gas
gas steal decision412:352:053:1541%6:18
gas steal success312:402:173:2039%6:13
none or failed169---44%6:33
gas steal killed313:173:034:06


For PurpleWave, I gave hints that 3HatchHydraExpo might lose and Over10Hatch might win. On BASIL, PurpleWave had been playing the same opening over and over versus Steamhammer, and I doubted it would do the same in the tournament, so I didn’t have much to go on. Steamhammer made interesting and surprising choices. I would not have guessed that the crazy 7Pool12Hatch would succeed. It’s too bad that the bot discovered it so late in the tournament.

Steamhammer tended to get gas late, a sign that it was either under pressure or else putting on its own pressure instead of teching.


#6 mcrave

openinggameswinswinslossesfirstlast
10Hatch10%-5:574545
11Gas10PoolMuta10%-6:231414
11HatchTurtleLurker10%-9:11192192
12Hatch13Pool20%-5:5328157
2HatchLingAllInSpire10%-5:35118118
3HatchHydraBust10%-5:254040
3HatchLingBurrow10%-5:375050
3HatchPoolHydraAllIn10%-5:475757
4PoolHard10%-8:48188188
4PoolSoft10%-7:582121
5PoolHard2Player10%-8:36114114
5Scout729%5:359:0131162
7Pool12Hatch10%-8:584747
7Pool6GasLurker A10%-5:23143143
7Pool6GasLurker B20%-5:2338184
8Hatch7PoolBurrowB10%-5:337878
9Hatch8Pool10%-5:25121121
9Pool9Hatch10%-5:50195195
9PoolBurrow10%-9:54102102
9PoolHatchSpeed7Drone10%-5:29142142
9PoolHatchSpeedAllIn3453%5:489:0115199
9PoolHatchSpeedLurker10%-9:59126126
9PoolSunkHatch20%-8:4912124
AntiFact_Overpool9Gas10%-5:158989
Over10Hatch1010%5:485:3883133
Over10Hatch11Pool10%-5:258080
Over10Hatch2Sunk10%-12:07103103
Over10HatchBurrow10%-8:182727
Overgas+110%-5:269898
Overpool+110%-6:15146146
OverpoolTurtle 010%-14:103030
ZvP_4HatchPoolHydra10%-5:399090
ZvZ_12Gas11Pool2335%11:385:3062182
ZvZ_12HatchMain10%-8:38153153
ZvZ_12PoolLing10%-9:28163163
ZvZ_Overgas9Pool1429%10:475:412194
ZvZ_OverpoolTurtle7867%9:3412:390198
37 openings20042% 9:12 8:18
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush7336%44%168%50%7%79%
Turtle12764%42%2914%48%15%76%
Unknown--15578%41%0%0%
timing#medianearlylate
my combat unit1962:261:473:45
my gas1832:061:307:06
enemy scout1832:530:428:23
enemy combat unit2002:270:413:42
enemy gas1953:092:326:03
enemy air unit1874:353:386:22
enemy cloaked unit0---
game duration2008:445:1219:17
gas steal#medianearlylatewinsenemy gas
gas steal decision142:110:453:2121%3:28
gas steal success10:490:490:49100%-
none or failed199---42%3:09
gas steal killed14:334:334:33


For McRave I gave hints suggesting 5Scout and ZvZ_OverpoolTurtle. 5Scout seriously has scored well against McRave, but not this time—though it does seem to have brought one winning gas steal.


#7 microwave

openinggameswinswinslossesfirstlast
10HatchLing956%6:3712:38154185
12-13Hatch10%-4:397979
12HatchTurtle10%-14:199999
2HatchLingAllInSpire1464%11:326:14128180
3HatchLurker10%-4:40117117
4HatchBeforeGas10%-7:11124124
5PoolHard10%-10:258080
6PoolSpeedBurrow10%-6:32187187
9Pool8Hatch10%-10:317070
9PoolHatchSpeed7Drone8100%6:10-192199
9PoolHatchSpeedAllIn2467%6:1511:0652179
9PoolHatchSpeedAllInB10%-12:22190190
OverhatchMuta2167%9:585:040177
OverpoolSpeed2572%12:4010:362189
ZvT_3HatchMutaExpo10%-5:34119119
ZvZ_12Gas11Pool10%-5:208989
ZvZ_12HatchMain1050%12:3814:4220191
ZvZ_Overpool9Gas7991%13:5222:103186
18 openings20074% 11:47 10:52
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush4623%83%2613%77%9%48%
Heavy rush158%80%136%92%0%60%
Naked expand10754%68%5226%77%27%38%
Turtle3216%75%158%47%3%69%
Unknown--9447%72%0%0%
timing#medianearlylate
my combat unit1962:261:514:07
my gas1952:061:495:23
enemy scout1942:261:178:55
enemy combat unit2002:341:013:25
enemy gas1574:042:1511:59
enemy air unit1275:573:3414:17
enemy cloaked unit34:574:547:38
game duration20011:274:0637:54
gas steal#medianearlylatewinsenemy gas
gas steal decision102:111:552:4840%4:28
gas steal success0-----
none or failed200---74%4:04
gas steal killed0---


For Microwave I prepared four different ZvZ openings that were successful on BASIL. All were reasonably effective, and ZvZ_Overpool9Gas was excellent. Steamhammer discovered 9PoolHatchSpeed7Drone on its own, very late in the tournament, and won the last 8 games straight with it. Overall, zerglings mostly worked out better than mutalisks, but the median game duration suggests that the win often came after switching to mutas.


#8 ualbertabot

openinggameswinswinslossesfirstlast
OverpoolTurtle20096%5:5520:160199
1 openings20096% 5:55 20:16
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory2814%100%3116%100%7%21%
Fast rush2110%95%2914%100%5%33%
Heavy rush12964%96%6532%98%33%25%
Naked expand2211%95%2412%100%18%27%
Unknown--5126%88%0%0%
timing#medianearlylate
my combat unit2002:262:222:37
my gas2002:582:554:25
enemy scout1792:101:186:38
enemy combat unit1692:461:464:14
enemy gas1843:302:3114:48
enemy air unit3313:335:5116:47
enemy cloaked unit1914:552:3817:21
game duration2005:573:3134:14
gas steal#medianearlylatewinsenemy gas
gas steal decision391:561:452:41100%3:33
gas steal success152:061:582:41100%11:43
none or failed185---96%3:29
gas steal killed153:032:496:56


For UAlbertaBot I did not provide hints, but configured Steamhammer to always play its best known choice. It’s an extreme turtle build that holds on against all of UAlbertaBot’s rushes and then strikes back. Any experimentation would have lowered the win rate.


#9 pylonpuller

openinggameswinswinslossesfirstlast
12HatchTurtle2488%11:168:5622165
12Hatch_4HatchLing2796%6:458:30170197
3HatchHydra2767%11:178:310130
9HatchExpo9Pool9Gas1974%6:1311:1682156
9PoolHatch2479%8:009:409199
AntiFact_2Hatch540%12:598:1497117
AntiZeal_12Hatch4088%11:008:436193
Over10HatchBurrow10%-12:38129129
ZvZ_OverpoolTurtle3385%12:0112:29132169
9 openings20082% 10:23 9:37
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush21%100%126%8%0%50%
Heavy rush13768%80%8442%79%49%25%
Turtle5930%85%4020%90%22%44%
Unknown--6231%94%0%0%
Worker rush21%100%21%100%0%50%
timing#medianearlylate
my combat unit2003:092:138:13
my gas1973:412:016:05
enemy scout1253:551:229:09
enemy combat unit1783:272:217:23
enemy gas874:212:5214:14
enemy air unit554:292:5314:15
enemy cloaked unit335:423:1811:45
game duration20010:174:1924:00
gas steal#medianearlylatewinsenemy gas
gas steal decision712:081:463:0790%3:53
gas steal success402:192:053:0088%8:35
none or failed160---80%4:18
gas steal killed405:152:5717:53


I made no prep. There wasn’t data, the opponent was being updated too often.


#10 styx

openinggameswinswinslossesfirstlast
9PoolSunkHatch9996%5:177:090199
9PoolSunkSpeed2291%4:4310:18148194
Over10PoolMuta978%6:575:2439198
OverpoolSunk1794%5:325:598172
ZvT_12PoolMuta2886%6:125:2357196
ZvZ_12PoolLing2580%5:576:277161
6 openings20091% 5:27 6:26
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush18291%91%10352%97%51%29%
Heavy rush189%89%4020%88%17%22%
Unknown--5728%82%0%0%
timing#medianearlylate
my combat unit1992:172:132:49
my gas1894:062:065:50
enemy scout1732:310:375:39
enemy combat unit1882:131:133:43
enemy gas0---
enemy air unit0---
enemy cloaked unit0---
game duration2005:373:2514:12
gas steal#medianearlylatewinsenemy gas
gas steal decision0-----
gas steal success0-----
none or failed200---91%-
gas steal killed0---


No prep needed.


#11 cunybot

openinggameswinswinslossesfirstlast
11Gas10PoolMuta10100%7:59-45194
4PoolHard475%4:544:229132
4PoolSoft580%6:486:5454134
5PoolHard8100%5:25-82193
5PoolHard2Player250%5:019:4278113
5PoolSoft5100%5:11-110181
6PoolSpeed10100%4:55-8138
9PoolHatchSpeedAllIn6100%5:14-144196
9PoolHatchSpeedAllInB14100%5:12-5178
9PoolSunkHatch20100%7:18-0177
9PoolSunkSpeed12100%5:56-31190
Over10PoolLing2100%6:22-160182
OverhatchLing14100%5:47-3170
OverhatchMuta1694%6:214:5015192
OverpoolSunk11100%5:20-1198
ZvZ_12HatchExpo12100%6:37-12191
ZvZ_12HatchMain14100%8:04-33197
ZvZ_12PoolLing6100%5:49-95165
ZvZ_12PoolMain10100%6:39-4199
ZvZ_Overgas9Pool989%7:4315:5085189
ZvZ_OverpoolTurtle1090%10:309:4613107
21 openings20097% 6:27 8:18
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush5226%96%4824%92%25%17%
Heavy rush178%100%2814%100%12%29%
Naked expand13166%97%7035%99%29%31%
Unknown--5427%98%0%0%
timing#medianearlylate
my combat unit2002:271:473:17
my gas1822:411:307:51
enemy scout1892:591:316:43
enemy combat unit1982:341:024:42
enemy gas623:452:4311:53
enemy air unit194:273:5114:19
enemy cloaked unit0---
game duration2006:273:3723:51
gas steal#medianearlylatewinsenemy gas
gas steal decision0-----
gas steal success0-----
none or failed200---97%3:45
gas steal killed0---


No prep needed. The win percentages say that Steamhammer immediately switched away from every opening that lost once.


overall

totalZvTZvPZvZZvR
openinggameswinsgameswinsgameswinsgameswinsgameswins
10Hatch20% 10% 10%
10HatchBurrow10% 10%
10HatchHydra20% 20%
10HatchLing1050% 10% 956%
11Gas10PoolLurker10% 10%
11Gas10PoolLurkerB10% 10%
11Gas10PoolMuta1191% 1191%
11HatchTurtleHydra30% 30%
11HatchTurtleLurker10% 10%
11HatchTurtleMuta6557% 6557%
11Pool10% 10%
12-11Hatch10% 10%
12-12Hatch10% 10%
12-13Hatch10% 10%
12Hatch12Pool10% 10%
12Hatch13Pool30% 10% 20%
12HatchTurtle2681% 2584% 10%
12Hatch_4HatchLing2796% 2796%
2.5HatchMuta10% 10%
2HatchLingAllInSpire1560% 1560%
2HatchLurkerAllIn20% 20%
2HatchMutaPure1136% 1136%
2x10HatchAllIn911% 911%
2x10HatchSlow10% 10%
3GasMuta3424% 3424%
3HatchHydra2767% 2767%
3HatchHydraBust10% 10%
3HatchHydraExpo30% 30%
3HatchLing20% 20%
3HatchLingBurrow10% 10%
3HatchLingBust4726% 4726%
3HatchLingExpo1010% 1010%
3HatchLurker20% 10% 10%
3HatchPoolHydraAllIn10% 10%
3HatchPoolMuta757% 757%
4HatchBeforeGas20% 10% 10%
4HatchBeforeLair10% 10%
4PoolHard650% 10% 560%
4PoolSoft757% 10% 667%
5HatchBeforeGas138% 138%
5HatchPool5190% 5190%
5HatchPoolLing20% 20%
5HatchPoolLingBurrow3017% 3017%
5PoolHard989% 989%
5PoolHard2Player520% 20% 333%
5PoolSoft5100% 5100%
5Scout729% 729%
6PoolBurrow10% 10%
6PoolHide30% 30%
6PoolSpeed1856% 80% 10100%
6PoolSpeedBurrow10% 10%
7-7HydraRush20% 20%
7Pool12Hatch1267% 1173% 10%
7Pool6GasLurker A10% 10%
7Pool6GasLurker B20% 20%
7PoolHard10% 10%
7PoolMid10% 10%
8-8HydraRush119% 119%
8Gas7PoolLurker B10% 10%
8Hatch7Pool10% 10%
8Hatch7PoolBurrowB20% 10% 10%
8Pool10% 10%
9GasLair922% 922%
9Hatch8Pool10% 10%
9HatchExpo9Pool9Gas2070% 2070%
9HatchMain9Pool9Gas1916% 1916%
9Pool20% 20%
9Pool8Hatch10% 10%
9Pool9Hatch10% 10%
9PoolBurrow10% 10%
9PoolExpo10% 10%
9PoolFastLair10% 10%
9PoolFastLurker1164% 1070% 10%
9PoolFastSpireB10% 10%
9PoolHatch2673% 2673%
9PoolHatchBurrow10% 10%
9PoolHatchSpeed10% 10%
9PoolHatchSpeed7Drone1080% 10% 989%
9PoolHatchSpeed7DroneB10% 10%
9PoolHatchSpeedAllIn6562% 10% 6462%
9PoolHatchSpeedAllInB1593% 1593%
9PoolHatchSpeedLurker10% 10%
9PoolHatchSpeedSpire210% 10%
9PoolHatchSpire10% 10%
9PoolLair30% 30%
9PoolLurker20% 20%
9PoolSpeed20% 20%
9PoolSpeedAllIn2938% 2938%
9PoolSpire30% 10% 20%
9PoolSunkBurrow812% 812%
9PoolSunkHatch13786% 1619% 12195%
9PoolSunkSpeed3689% 20% 3494%
AntiFact_13Pool1560% 1560%
AntiFact_2Hatch633% 633%
AntiFact_Overpool11Hatch5990% 5990%
AntiFact_Overpool9Gas10% 10%
AntiFactoryHydra10% 10%
AntiStyx_9Pool20% 20%
AntiStyx_Muta10% 10%
AntiZeal_12Hatch4879% 4879%
DefilerRush20% 20%
HiveRush10% 10%
Over10Hatch4628% 3633% 1010%
Over10Hatch11Pool10% 10%
Over10Hatch1Sunk40% 40%
Over10Hatch2Sunk70% 60% 10%
Over10HatchBurrow30% 20% 10%
Over10HatchBust2040% 2040%
Over10HatchHydra10% 10%
Over10HatchSlowLings20% 20%
Over10PoolHydra20% 20%
Over10PoolLing2100% 2100%
Over10PoolMuta1164% 20% 978%
Overgas+110% 10%
OverhatchExpoLing30% 30%
OverhatchExpoMuta20% 20%
OverhatchLateGas933% 933%
OverhatchLing1688% 20% 14100%
OverhatchMuta3778% 3778%
Overpool+120% 10% 10%
OverpoolBurrow10% 10%
OverpoolFastLair10% 10%
OverpoolHide714% 714%
OverpoolLurker20% 10% 10%
OverpoolSpeed2864% 10% 20% 2572%
OverpoolSunk2896% 2896%
OverpoolTurtle20096% 20096%
OverpoolTurtle 030% 20% 10%
Overpool_3HatchLing1631% 1631%
Overpool_3HatchSpeed10% 10%
Phlegethon1020% 1020%
Sparkle 1HatchMuta3447% 3447%
Sparkle 3HatchMuta10% 10%
UltraRush10% 10%
ZvP_2HatchFakeHydra10% 10%
ZvP_2HatchFakeMuta10% 10%
ZvP_3BaseSpire+Den10% 10%
ZvP_3HatchPoolHydra10% 10%
ZvP_4HatchPoolHydra1771% 1675% 10%
ZvP_Overpool3Hatch20% 20%
ZvT_12PoolMuta2983% 10% 2886%
ZvT_13Pool10% 10%
ZvT_2HatchMuta10% 10%
ZvT_3HatchMuta10% 10%
ZvT_3HatchMutaExpo3982% 3884% 10%
ZvZ_12Gas11Pool2532% 10% 2433%
ZvZ_12HatchExpo1392% 10% 12100%
ZvZ_12HatchMain2673% 10% 2576%
ZvZ_12PoolLing3281% 3281%
ZvZ_12PoolMain10100% 10100%
ZvZ_Overgas9Pool2352% 2352%
ZvZ_Overpool9Gas8090% 10% 7991%
ZvZ_OverpoolTurtle12174% 3385% 8869%
total200064%20082%80039%80076%20096%
openings played15311117601


AIIDE 2022 - what Dragon learned

Dragon records, for each game, only the opening build and the result. It follows up the opening with the same adaptive middlegame, so that games which start out differently tend to shift into looking the same—except for the worker rush opening, which is obviously all-in. Even so, the opening build seems to make a difference.


#1 bananabrain

openinggameswinsfirstlast
1rax fe120%0220
2rax bio4518%5217
2rax mech120%7219
bio120%4215
dirty worker rush110%1214
mass vulture8234%2218
siege expand4728%14216
7 openings22122%


BananaBrain liked to open with two gates versus Dragon. The vultures are presumably to counter zealots.


#2 stardust

openinggameswinsfirstlast
1rax fe244%3202
2rax bio186%1143
2rax mech244%4184
bio234%5203
dirty worker rush4010%0219
mass vulture7513%6218
siege expand160%2180
7 openings2208%


But then again, it liked vultures versus dragoon expert Stardust too. It’s interesting that the worker rush was able to score some wins. It looks like a Stardust weakness—BananaBrain defended the worker rush every time.


#4 steamhammer

openinggameswinsfirstlast
1rax fe6126%3219
2rax bio157%7199
2rax mech2020%4187
bio4827%17220
dirty worker rush4418%10186
mass vulture1520%0209
siege expand1811%12204
7 openings22121%


Steamhammer had a variety of winning builds against Dragon (I’ll post that data tomorrow). I gather that Dragon’s barracks openings are the ones that were able to cope with all the zerg tries about equally well.


#5 purplewave

openinggameswinsfirstlast
2rax mech11396%2200
bio10%00
siege expand106100%1219
3 openings22098%


Dragon had PurpleWave’s number and did not need to explore alternatives. It looks as though PurpleWave’s numerous timeouts are what made the pairing a blowout rather than a moderate victory, though. Dragon likes long games with lots of units on both sides, which no doubt gave PurpleWave plenty of opportunities to time out. Results so far in the physical hardware version of the tournament are very different.


#6 mcrave

openinggameswinsfirstlast
2rax mech20597%2219
dirty worker rush250%01
mass vulture1377%2593
3 openings22095%


McRave’s mutalisks may be less skilled against goliaths.


#7 microwave

openinggameswinsfirstlast
1rax fe1644%2885
2rax bio2143%0140
2rax mech5052%4173
bio1145%5142
dirty worker rush729%20138
mass vulture10167%11220
siege expand1540%3986
7 openings22156%



#8 ualbertabot

openinggameswinsfirstlast
1rax fe10%110110
2rax bio4274%52106
2rax mech2065%70212
bio10%7171
dirty worker rush10%6969
mass vulture9582%65216
siege expand5779%0109
7 openings21777%



#9 pylonpuller

openinggameswinsfirstlast
1rax fe22098%0220
siege expand1100%133133
2 openings22198%



#10 styx

openinggameswinsfirstlast
2rax bio7392%173
dirty worker rush10%00
mass vulture14697%74219
3 openings22095%



#11 cunybot

openinggameswinsfirstlast
2rax mech21996%0219
dirty worker rush10%103103
2 openings22096%


AIIDE 2022 - what BananaBrain learned


BananaBrain added more fields to its game records this year. I had to update my parsing code. I haven’t investigated what the new data is.


#2 stardust

openinggameswinsfirstlast
10/12gate7958%14221
10/12gatedt838%19153
12nexus20%1095
2gatedtexpo540%736
2gatereaver333%1133
3gaterobo20%9144
3gatespeedzeal540%038
4gategoon5060%3163
9/9gate1747%20172
9/9proxygate2050%18187
nzcore20%17145
zcore20%16146
zcorez540%439
zzcore2250%1394
14 openings22252%
enemygameswins
1gatecore1020%
2gate1164%
2gatefast933%
4gategoon17852%
unknown1471%
5 openings22252%


Last year, BananaBrain resorted to proxy gates against Stardust, and even that did not help much. This year it preferred the same build that Stardust likes, and apparently it was able to fight it straight up.


#3 dragon

openinggameswinsfirstlast
10/12gate11882%7221
28nexus250%132133
32nexus944%0109
9/9gate9276%3130
9/9proxygate10%131131
5 openings22277%
enemygameswins
1fac10269%
2rax10%
fastexpand2100%
unknown11785%
4 openings22277%


BananaBrain was able to tell what Dragon was doing less than half the time. It didn’t seem to matter much, because the answer was usually two gates.


#4 steamhammer

openinggameswinsfirstlast
10/12gate7589%147221
1basespeedzeal10%8383
2basespeedzeal4791%3682
5gategoon367%136138
9/9gate786%2733
9/9proxygate4691%90135
bisu475%2326
sairdt888%139146
sairgoon2391%022
sairreaver683%8489
stove250%3435
11 openings22289%
enemygameswins
10hatch5494%
12hatch10383%
12pool3100%
4/5pool9100%
9pool18100%
9poolspeed5100%
overpool2396%
unknown757%
8 openings22289%


Steamhammer was opposite Dragon in this way: BananaBrain was almost always able to diagnose its opening build, but in the rare when it could not it had some trouble. The impression is that BananaBrain’s reactions were successful but also necessary. Maybe Steamhammer needs to learn how to block its ramp with a drone....


#5 purplewave

openinggameswinsfirstlast
10/12gate10%22
10/12gatedt10%2626
12nexus10%3636
2gatedtexpo12372%8177
2gatereaver250%3738
3gaterobo10%2727
3gatespeedzeal250%01
4gategoon2673%13221
9/9gate757%2979
9/9proxygate250%2425
nzcore10%3939
zcore10%2828
zcorez4871%33209
zzcore667%340
14 openings22269%
enemygameswins
1gatecore12275%
2gate650%
2gatefast333%
4gategoon8268%
unknown911%
5 openings22269%


Dark templar wars!


#6 mcrave

openinggameswinsfirstlast
10/12gate16599%57221
1basespeedzeal888%07
2basespeedzeal10%2121
4gate2archon888%1320
5gategoon367%5456
9/9gate580%812
9/9proxygate10%5151
bisu250%5253
neobisu580%4650
sairdt786%2531
sairgoon367%2224
sairreaver1385%3244
stove10%4545
13 openings22293%
enemygameswins
10hatch10%
12hatch10894%
9pool1100%
overpool11194%
unknown1100%
5 openings22293%


The 10hatch and 9pool are probably misrecognized. It looks like BananaBrain ran over mutalisk specialist McRave with zealots.


#7 microwave

openinggameswinsfirstlast
9/9gate21692%6221
stove683%05
2 openings22291%
enemygameswins
10hatch13100%
12hatch3797%
12pool2990%
4/5pool1100%
9pool4994%
9poolspeed20100%
overpool3370%
unknown4095%
8 openings22291%


The stove is fun, but why is it active for the tournament? It was played against Steamhammer, McRave, and Microwave, and brought down the average every time.


#8 ualbertabot

openinggameswinsfirstlast
PvU_9/9gate475%912
PvU_9/9proxygate10%00
PvU_ffe20898%13220
PvU_zzcore888%18
4 openings22197%
enemygameswins
12hatch3797%
1gatecore3197%
2fac38100%
2gatefast2796%
2rax20100%
4/5pool3187%
4gategoon16100%
9pool1100%
proxyrax20100%
9 openings22197%

#9 pylonpuller

openinggameswinsfirstlast
12nexus2190%020
3gaterobo12890%22149
4gategoon10%2121
9/9gate2291%150171
zcore5098%172221
5 openings22291%
enemygameswins
1gatecore8095%
2gate1974%
2gatefast5389%
cannonrush21100%
cannonturtle2793%
ffe3100%
proxygate14100%
unknown560%
8 openings22291%

#10 styx

openinggameswinsfirstlast
sairgoon22293%0221
1 opening22293%
enemygameswins
12hatch19593%
unknown2793%
2 openings22293%


I’m guessing that if the first opening tried is highly successful, then BananaBrain doesn’t consider anything else.


#11 cunybot

openinggameswinsfirstlast
neobisu221100%0220
1 opening221100%
enemygameswins
10hatch5100%
12hatch64100%
12pool38100%
4/5pool58100%
9pool28100%
overpool1100%
unknown27100%
7 openings221100%

AIIDE 2022 - what Stardust learned

I had forgotten that Stardust had learning in last year’s AIIDE, even though I wrote a post about it which explains how it works and wrote code to summarize its learning results.

I’m short of time, so I haven’t checked whether the recording and use of the data is unchanged. But the data format is unchanged, and my code still works. For each of the three specific events, n is the number of games the event occurred and the times are when it occurred in those games.

firstDarkTemplarCompleted pylonInOurMain firstMutaliskCompleted
opponent games n min median max n min median max n min median max
bananabrain 208 124 5:22 7:37 19:07 0 - - - 0 - - -
dragon 222 0 - - - 0 - - - 0 - - -
steamhammer 207 0 - - - 0 - - - 85 5:00 5:46 8:24
purplewave 214 188 4:55 5:43 17:08 0 - - - 0 - - -
mcrave 210 0 - - - 0 - - - 210 5:50 6:16 10:09
microwave 212 0 - - - 0 - - - 52 4:59 5:19 19:36
ualbertabot 325 13 4:28 4:32 4:43 0 - - - 0 - - -
pylonpuller 211 96 5:11 6:04 8:18 0 - - - 0 - - -
styx 207 0 - - - 0 - - - 0 - - -
cunybot 215 0 - - - 0 - - - 8 5:54 6:26 9:21

Every protoss (including random UAlbertaBot) made dark templar sometimes. The median time is near the minimum time, which suggests that the DTs were often rushed. For BananaBrain and PurpleWave, DTs sometimes came quite late. No protoss proxied in Stardust’s base—it would have been a surprise with any of these opponents. Mutalisks were also often rushed. McRave made mutalisks every game. Styx never made a mutalisk, at least not one that Stardust recorded.

AIIDE 2022 alternate version on physical hardware

Dave Churchill wrote me to say that he is running an alternate version of AIIDE 2022, on physical hardware instead of virtual machines. I’m sure people on Discord already know it. I gather that neither version is to be more official than the other, but since few timeouts are happening on the physical hardware, the new version is likely to be a better gauge of how bots perform when working as intended.

Result tables are being updated once per minute as the tournament runs. As I write, the rankings look quite different than in the original tournament.

When it’s done, I expect to make at least a couple posts about the results, and quite possibly more.

I was given this picture of the scrounged-up hardware, and told that it is four i7-7700 boxes plus two i7-7700k. They’re not identical, but the difference should be small and probably not noticeable.

Hardware for the alternate version AIIDE 2022 tournament.

AIIDE 2022 - what bots wrote data?

A brief note.

On a quick pass through, bot learning files look about the same as last year. The big exception is that Stardust now learns. Its data files look like timings or counts of a small number of events that the bot may want to adapt to. I’ll look more closely later.

Bots that did not compete last year:

PylonPuller wrote files that look similar to those of Halo by Hao Pan (the same author).

Styx did not write learning files.

CUNYBot wrote CSV files with strategy name, map name, and an opaque list of numbers.

new bot Trident

New terran bot Trident plays on BASIL, bypassing SSCAIT. It seems to be a trend.

I watched some games. Trident seems to play similar—not identical—fixed strategies versus each race. There may be adjustments depending on what the opponent does; I wasn’t sure. But the strategy is at least mostly fixed.

It always starts with a defensive bunker that it fills with 4 marines. It builds up an initial force and makes an attack apparently at a fixed timing. After that it makes more frequent small attacks—maybe the idea is to send reinforcements.

Versus terran, the initial force is marines and vultures. It soon adds tanks.

Versus protoss, the initial force is firebats with some marines mixed in, and vultures. It’s effective against zealots, weak against dragoons. It seems to switch to tank-goliath-vulture later, which is more general-purpose.

Versus zerg, the initial force is again firebats with marines mixed in, and vultures. Zerglings can’t touch it, anything else can. Much later it adds wraiths in small numbers.

The initial attack would be much stronger with some medics added, but medics need special control and it’s reasonable for a new bot to leave them out at first. Trident usually (not always) makes exactly one turret near its main command center, which is its only detection for the entire game. It’s helpless against dark tempar or lurkers. I expect it’s because comsat is difficult to use well; it’s another skill that a new bot can reasonably ignore for a while.

Trident seems to have a fixed repertoire of research. It gets speed and mines for the vultures, and lays mines along the path between bases, a nice skill. It gets armor +1 for its infantry, then lifts the engineering bay (but doesn’t float it around to scout). The lifted e-bay means that you can’t win by simply making DTs or lurkers; you need a unit that can shoot up. It gets cloak for its wraiths and cloaks them sometimes. Wraiths tend to hang around over burrowed lurkers, discouraging the lurkers from unburrowing but making themselves easy targets for scourge. Trident knows how to repair burning buildings, another nice skill.

All in all, better than average for a brand new bot. Keep up the good work, whoever you are!

AIIDE 2022 - the learning curves

I only see a few points to note in this year’s win percentage over time graph.

Graph of AIIDE 2022 win rates over the course of the tournament.

Most bots don’t appear to have gained in win rate after round 50 or so (50 games against each opponent). It’s not surprising. If a bot’s learning model is a k-armed bandit with a modest k, which is common, then the learning algorithm will have saturated by then. The curves up to that point are dominated by statistical noise and the struggle to adapt to opponents whose learning skills are at a similar level.

There are signs that #1 BananaBrain learned relative to #2 Stardust and came out ahead because of it. The wiggles in the graph are not entirely clear, though.

UAlbertaBot was able to learn a little bit beyond round 100. I suspect it learned more slowly because it plays random and has to learn separately for each race.

#4 Steamhammer was the champion learner. It passed #5 PurpleWave in round 149 and continued to improve very gradually. Steamhammer learns slowly but has a high ceiling because of its giant library of openings, and it thrives in long tournaments. Last year’s tournament was 149 rounds: If this year’s had been the same length, Steamhammer would have squeaked ahead in the very last round and its longer-term success would not have been clear.

AIIDE 2022 - map tables by bot

For each bot, its win rate by map and opponent. You can abbreviate it as bot x (map x opponent) if you like. Yesterday’s tables showed that maps make little difference when averaged across opponents. Today’s show that (as usual) maps do make a difference for specific opponents.

Each cell represents 22 or 23 games, sometimes fewer when games did not complete. No cell has fewer than 20 games. The same tables last year had 15 games per cell. The numbers are a trifle more reliable this year, but there is still a lot of statistical noise.

#bananabrainoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
2stardust52%52%65%32%32%77%45%50%50%50%64%
3dragon78%78%78%77%77%86%86%77%64%82%73%
4steamhammer89%87%96%82%86%91%86%77%100%86%95%
5purplewave69%87%65%73%64%86%50%55%68%68%73%
6mcrave94%91%83%95%95%91%95%91%95%100%100%
7microwave91%91%91%91%100%86%95%82%95%91%91%
8ualbertabot97%91%100%95%100%95%100%95%95%95%100%
9pylonpuller92%91%87%95%100%100%91%91%86%100%77%
10styx94%100%100%100%100%86%100%95%95%73%91%
11cunybot100%100%100%100%100%100%100%100%100%100%100%
overall85.53%87%87%84%85%90%85%81%85%85%86%

#1 BananaBrain was solid against most opponents, but inconsistent across maps versus its top protoss competition, #2 Stardust and #5 PurpleWave.

#stardustoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain48%48%35%68%68%23%55%50%50%50%36%
3dragon92%100%95%77%100%100%95%64%100%91%95%
4steamhammer83%100%82%73%86%91%77%50%95%95%82%
5purplewave52%57%50%73%68%27%64%18%50%59%50%
6mcrave89%83%83%86%95%95%100%95%91%77%82%
7microwave93%96%100%95%100%100%95%95%77%82%86%
8ualbertabot83%83%86%91%100%77%100%55%77%82%82%
9pylonpuller95%96%95%100%100%100%100%86%77%91%100%
10styx84%100%95%100%95%77%91%32%86%86%73%
11cunybot97%96%100%100%100%100%100%95%95%86%95%
overall81.48%86%82%86%91%79%88%64%80%80%78%

Here is the source of #2 Stardust’s relative weakness on Empire of the Sun: #5 PurpleWave and #10 Styx found holes in its play on the map. The upset by Styx on that map only is particularly extreme. Heartbreak Ridge, Longinus, and Empire of the Sun are the maps where the main bases are on the same level as the naturals, with no ramp, and all of them had at least one opponent that could exploit Stardust. But if that’s the cause, then why is Aztec fine for Stardust? On Aztec, the naturals are uphill from the mains.

#dragonoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain22%22%22%23%23%14%14%23%36%18%27%
2stardust8%0%5%23%0%0%5%36%0%9%5%
4steamhammer21%26%32%14%18%32%32%14%5%36%5%
5purplewave97%91%95%91%100%100%100%100%100%95%100%
6mcrave95%96%87%95%100%100%95%91%95%100%95%
7microwave56%65%55%36%45%64%73%59%55%59%50%
8ualbertabot77%82%64%95%80%73%77%77%68%77%73%
9pylonpuller98%100%100%95%100%91%95%100%100%100%100%
10styx94%96%100%100%91%91%95%100%100%82%86%
11cunybot95%96%96%95%91%95%100%91%100%95%95%
overall66.46%67%65%67%65%66%69%69%66%67%64%

Last year and the year before I thought that #3 Dragon was inconsistent across maps. This year it doesn’t look that way. It’s the same bot carried over. The difference seems to be that this year Dragon either smashed its opponents or got smashed by them. It remains inconsistent against #7 Microwave and #8 UAlbertaBot, the opponents scoring closest to 50%.

#steamhammeroverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain11%13%4%18%14%9%14%23%0%14%5%
2stardust17%0%18%27%14%9%23%50%5%5%18%
3dragon79%74%68%86%82%68%68%86%95%64%95%
5purplewave43%57%55%50%41%27%41%27%36%32%59%
6mcrave43%48%74%45%45%45%45%23%32%45%27%
7microwave73%70%57%50%82%68%91%77%77%91%68%
8ualbertabot95%91%100%100%86%100%95%95%100%91%95%
9pylonpuller80%70%64%82%86%86%82%91%82%77%82%
10styx90%91%86%100%95%86%100%95%95%77%73%
11cunybot97%100%96%100%100%91%95%95%100%100%95%
overall62.71%61%62%66%65%59%65%66%62%60%61%

Someday I will get Steamhammer to adapt properly to the map it is playing on.

#4 Steamhammer owes its ranking in large part to its strong performance against the carryover bots that it specifically prepared for. Versus #3 Dragon: Last year 63%, this year 79%. Versus #8 UAlbertaBot: Last year 92%, this year 95%. I knew that both would be up. I’m surprised that other bots seem to have been unprepared for Dragon in particular.

#purplewaveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain31%13%35%27%36%14%50%45%32%32%27%
2stardust48%43%50%27%32%73%36%82%50%41%50%
3dragon3%9%5%9%0%0%0%0%0%5%0%
4steamhammer57%43%45%50%59%73%59%73%64%68%41%
6mcrave84%26%57%100%91%86%91%100%100%95%100%
7microwave50%35%17%55%45%55%36%82%77%45%50%
8ualbertabot66%78%55%100%68%68%55%64%55%64%50%
9pylonpuller87%91%74%100%95%77%91%77%95%82%86%
10styx96%100%100%73%100%100%100%95%100%95%100%
11cunybot89%83%96%82%86%86%100%77%95%100%86%
overall61.17%52%53%62%61%63%62%70%67%63%59%

#5 PurpleWave struggled versus #6 McRave on the 2-player maps Destination and Heartbreak Ridge, but scored 100% on the other 2-player map Polaris Rhapsody. It smells like a bug—but see the next table.

#mcraveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain6%9%17%5%5%9%5%9%5%0%0%
2stardust11%17%17%14%5%5%0%5%9%23%18%
3dragon5%4%13%5%0%0%5%9%5%0%5%
4steamhammer57%52%26%55%55%55%55%77%68%55%73%
5purplewave16%74%43%0%9%14%9%0%0%5%0%
7microwave92%100%91%68%100%100%77%91%95%100%100%
8ualbertabot29%74%41%43%14%36%5%14%9%36%10%
9pylonpuller62%65%70%82%73%50%68%36%68%59%50%
10styx91%100%70%82%91%100%95%100%95%82%91%
11cunybot100%100%100%100%100%95%100%100%100%100%100%
overall46.79%60%49%45%45%46%42%44%45%46%45%

Why does #6 McRave like Destination? Mainly because of upsets against #5 PurpleWave and #8 UAlbertaBot that otherwise defeat it. If the win over PurpleWave is due to PurpleWave’s putative bug, then what explains the win over UAlbertaBot?

#microwaveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain9%9%9%9%0%14%5%18%5%9%9%
2stardust7%4%0%5%0%0%5%5%23%18%14%
3dragon44%35%45%64%55%36%27%41%45%41%50%
4steamhammer27%30%43%50%18%32%9%23%23%9%32%
5purplewave50%65%83%45%55%45%64%18%23%55%50%
6mcrave8%0%9%32%0%0%23%9%5%0%0%
8ualbertabot57%70%65%55%43%36%77%73%59%55%32%
9pylonpuller67%57%61%91%68%50%55%77%77%64%68%
10styx99%100%100%100%95%100%100%100%95%100%100%
11cunybot99%100%100%100%100%95%100%95%100%100%100%
overall46.62%47%52%55%43%41%46%46%45%45%45%

#ualbertabotoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain3%9%0%5%0%5%0%5%5%5%0%
2stardust17%17%14%9%0%23%0%45%23%18%18%
3dragon23%18%36%5%20%27%23%23%32%23%27%
4steamhammer5%9%0%0%14%0%5%5%0%9%5%
5purplewave34%22%45%0%32%32%45%36%45%36%50%
6mcrave71%26%59%57%86%64%95%86%91%64%90%
7microwave43%30%35%45%57%64%23%27%41%45%68%
9pylonpuller66%74%64%91%82%59%64%43%45%64%77%
10styx95%86%100%100%95%95%86%82%100%100%100%
11cunybot98%100%100%95%100%100%100%95%100%91%100%
overall45.74%39%45%41%49%47%44%45%48%45%54%

It’s interesting that #8 UAlbertaBot does better against #6 McRave on the 4-player maps. You might think that UAlbertaBot’s rushes would work better on 2-player maps with a short rush distance, but it’s the opposite. I imagine it is because McRave takes longer to scout, so it can’t adapt as quickly.

#pylonpulleroverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain8%9%13%5%0%0%9%9%14%0%23%
2stardust5%4%5%0%0%0%0%14%23%9%0%
3dragon2%0%0%5%0%9%5%0%0%0%0%
4steamhammer20%30%36%18%14%14%18%9%18%23%18%
5purplewave13%9%26%0%5%23%9%23%5%18%14%
6mcrave38%35%30%18%27%50%32%64%32%41%50%
7microwave33%43%39%9%32%50%45%23%23%36%32%
8ualbertabot34%26%36%9%18%41%36%57%55%36%23%
10styx62%87%64%18%73%82%45%64%73%59%55%
11cunybot74%83%83%36%86%55%77%82%68%91%77%
overall28.91%33%33%12%25%32%28%34%31%31%29%

Wow, look at results versus #10 Styx. Polaris Rhapsody does seem to be an outlier among the 2-player maps.

#styxoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain6%0%0%0%0%14%0%5%5%27%9%
2stardust16%0%5%0%5%23%9%68%14%14%27%
3dragon6%4%0%0%9%9%5%0%0%18%14%
4steamhammer10%9%14%0%5%14%0%5%5%23%27%
5purplewave4%0%0%27%0%0%0%5%0%5%0%
6mcrave9%0%30%18%9%0%5%0%5%18%9%
7microwave1%0%0%0%5%0%0%0%5%0%0%
8ualbertabot5%14%0%0%5%5%14%18%0%0%0%
9pylonpuller38%13%36%82%27%18%55%36%27%41%45%
11cunybot44%48%17%59%68%50%23%32%45%55%41%
overall13.92%9%10%19%13%13%11%17%10%20%17%

Only a few pinprick upsets, but one of them is extreme.

#cunybotoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain0%0%0%0%0%0%0%0%0%0%0%
2stardust3%4%0%0%0%0%0%5%5%14%5%
3dragon5%4%4%5%9%5%0%9%0%5%5%
4steamhammer3%0%4%0%0%9%5%5%0%0%5%
5purplewave11%17%4%18%14%14%0%23%5%0%14%
6mcrave0%0%0%0%0%5%0%0%0%0%0%
7microwave1%0%0%0%0%5%0%5%0%0%0%
8ualbertabot2%0%0%5%0%0%0%5%0%9%0%
9pylonpuller26%17%17%64%14%45%23%18%32%9%23%
10styx56%52%83%41%32%50%77%68%55%45%59%
overall10.69%10%11%13%7%13%10%14%10%8%11%

AIIDE 2022 - maps and game durations

First, win rates for bots x maps. This is identical to the third table in the official results, except for the presentation.

#botoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain85.53%87%87%84%85%90%85%81%85%85%86%
2stardust81.48%86%82%86%91%79%88%64%80%80%78%
3dragon66.46%67%65%67%65%66%69%69%66%67%64%
4steamhammer62.71%61%62%66%65%59%65%66%62%60%61%
5purplewave61.17%52%53%62%61%63%62%70%67%63%59%
6mcrave46.79%60%49%45%45%46%42%44%45%46%45%
7microwave46.62%47%52%55%43%41%46%46%45%45%45%
8ualbertabot45.74%39%45%41%49%47%44%45%48%45%54%
9pylonpuller28.91%33%33%12%25%32%28%34%31%31%29%
10styx13.92%9%10%19%13%13%11%17%10%20%17%
11cunybot10.69%10%11%13%7%13%10%14%10%8%11%

Stardust had some trouble on Empire of the Sun, and McRave liked Destination. For the most part, maps did not make a big difference when averaged out over opponents.

game durations

Game durations for bots x maps. The top number in each cell is the median duration of winning games, and the bottom number is for losing games. The overall numbers in the bottom row are the median duration of all games played on each map. The cell coloring is the same as in the table above—it reflects the winning rate, so you can judge by eye the balance of games in the top and bottom numbers.

As a general guideline, if winning games are shorter than losing games then the bot likes to win by early pressure and loses by getting outplayed later. Early pressure costs economy and tech. In the opposite case, the bot defends any early pressure and has stronger play in the long run (it shows any or all of macro, micro, and tech advantage). #8 UAlbertaBot is the most determined rushbot. #3 Dragon is the most prominent defensive bot. #7 Microwave is well-balanced. Note: Adding up the overall median winning times across opponents does not give the same result as adding up the losing times. The median is insensitive to outliers.

#botoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1bananabrain11:25
15:22
12:11
15:55
11:27
16:21
11:21
15:24
11:46
19:56
11:22
12:48
11:20
16:57
11:13
13:49
11:16
14:38
11:11
13:41
11:35
14:42
2stardust10:34
15:16
10:56
16:23
10:07
17:05
10:54
17:55
10:42
18:14
10:34
15:13
10:51
18:56
10:51
0:01
10:47
12:51
10:03
0:01
10:14
14:59
3dragon13:57
11:35
14:53
12:53
14:28
10:22
12:52
13:32
14:10
12:04
13:39
10:13
13:57
12:00
13:41
12:09
13:46
12:37
13:23
9:59
14:26
10:47
4steamhammer8:18
11:23
8:47
10:54
7:53
11:55
7:28
11:45
10:12
10:47
7:47
11:31
9:34
11:43
7:50
11:48
7:23
11:25
8:00
10:49
9:17
10:12
5purplewave12:09
17:50
13:20
17:45
13:07
16:45
12:31
19:14
12:08
20:51
12:34
15:48
12:09
18:54
12:09
16:38
11:47
18:24
11:53
18:18
11:38
17:08
6mcrave8:34
12:02
9:51
13:06
10:30
12:40
8:07
13:01
7:58
12:11
7:39
12:30
9:17
11:32
8:26
11:40
8:53
11:50
7:52
11:35
8:04
11:41
7microwave9:36
9:24
10:12
10:02
8:51
10:22
9:52
10:03
10:48
9:18
7:15
8:12
11:41
11:40
10:54
10:22
8:53
10:06
10:04
8:27
9:43
8:27
8ualbertabot6:28
10:33
8:00
11:18
6:39
10:09
5:24
10:30
6:22
10:48
6:18
10:21
6:55
10:00
6:38
10:26
6:28
10:34
6:19
10:52
6:50
10:41
9pylonpuller10:31
11:38
10:04
12:13
10:51
12:29
10:38
6:30
10:34
12:03
9:47
11:49
10:17
11:56
10:54
11:55
10:30
11:20
10:52
11:51
10:33
11:21
10styx8:28
8:14
11:32
8:39
9:07
7:38
9:10
8:16
8:29
8:38
8:32
8:03
9:21
8:45
8:54
8:25
7:16
8:09
6:44
8:04
8:38
8:08
11cunybot8:16
9:21
9:16
9:33
8:05
9:15
7:51
8:35
7:10
9:56
8:13
8:53
9:33
9:46
8:34
10:05
9:46
9:15
6:03
10:01
8:48
9:00
overall10:4711:2110:4910:3010:5810:2811:0610:4510:3810:3410:30

The top three bots have consistent winning times across maps. BananaBrain in particular is highly consistent. It seems to indicate a strong and well-executed strategy that wins on schedule. Losing times vary because they depend on what the opponent does after surviving.

The map with the longest game times is Destination. That probably reflects the difficulty of attacking across the twin bridges into the natural. The losing side can often defend until it runs out of resources.

Stardust

The most striking cells in the table are Stardust’s losing times on Empire of the Sun and Python. The time rendered as 0:01 is 33 frames, which is always the point when Stardust crashes, when it does (I checked). Over half the losses on those maps were crashes, so that the median loss was a crash. There were still plenty of wins. Is it due to Stardust crashing on those maps, or to winning so often that the median losing game was a crash? I made a little table of Stardust games which are exactly 33 frames long.

#botDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
2stardustlosses 33
crashes 4
losses 40
crashes 0
losses 30
crashes 0
losses 19
crashes 1
losses 46
crashes 1
losses 27
crashes 0
losses 79
crashes 46
losses 44
crashes 17
losses 44
crashes 23
losses 48
crashes 11

Answer: It’s due to Stardust crashing on those maps. The rate of 33-frame games varies extremely by map, though if you ran enough games I imagine it would be non-zero for every map. Four-player maps other than Circuit Breakers have a high crash rate.

Next: Breaking down results by map and opponent.

AIIDE 2022 - first look at results

AIIDE 2022 results are out today, complete with the detailed results file. The carryovers from last year are #3 Dragon and #8 UAlbertaBot. The others are updated for this year.

My version of the crosstable. It’s identical to the official crosstable except for the presentation.

#botoverallbanastardragsteapurpmcramicrualbpylostyxcuny
1bananabrain85.53%52%78%89%69%94%91%97%92%94%100%
2stardust81.48%48%92%83%52%89%93%83%95%84%97%
3dragon66.46%22%8%21%97%95%56%77%98%94%95%
4steamhammer62.71%11%17%79%43%43%73%95%80%90%97%
5purplewave61.17%31%48%3%57%84%50%66%87%96%89%
6mcrave46.79%6%11%5%57%16%92%29%62%91%100%
7microwave46.62%9%7%44%27%50%8%57%67%99%99%
8ualbertabot45.74%3%17%23%5%34%71%43%66%95%98%
9pylonpuller28.91%8%5%2%20%13%38%33%34%62%74%
10styx13.92%6%16%6%10%4%9%1%5%38%44%
11cunybot10.69%0%3%5%3%11%0%1%2%26%56%

The top four finishers are the same as last year, except that #1 BananaBrain and #2 Stardust are reversed. In CoG this year #5 PurpleWave made it to second, but not in AIIDE. #2 Stardust did not overtake BananaBrain, but came closer. The top two were not far apart from each other and dominated the rest.

I’m pleased that Steamhammer was able to hold its rank, because it is only slightly improved over last year’s version. I expected to be behind #5 PurpleWave and hoped to pass #3 Dragon, since I knew Steamhammer would score well head-to-head.

Stardust had around a hundred crashes. PurpleWave, McRave, and CUNYBot had hundreds of frame timeouts each. All these bots had a chance to move up in the rankings if they hadn’t lost so often for non-play-related reasons. Bots seem to be having increasing trouble with the time limits.

Thanks to an influx of weaker opponents, #8 UAlbertaBot finished above the bottom of the table, unlike last year. I wasn’t afraid of Styx finishing high, but I’m surprised it did so poorly. In the BASIL rankings, new bot #9 PylonPuller (which has been improving fast) and #10 Styx have almost the same elo. In fact, all the tail enders have curiously low win rates. Last year UAlbertaBot scored 27%—much worse than this year—and the fairly weak FreshMeat one rank up scored 34%. This year, the weak tail enders pushed everybody else’s wins up and made the tournament seem easy for them.

by race

The table of how each bot did by opponent race. Since there is only one terran and only one random bot, it’s less informative than we might like.

#botoverallvTvPvZvR
1bananabrain85.53%78%71%94%97%
2stardust81.48%92%65%89%83%
3dragon66.46%-56%73%77%
4steamhammer62.71%79%38%76%95%
5purplewave61.17%3%55%75%66%
6mcrave46.79%5%24%85%29%
7microwave46.62%44%33%58%57%
8ualbertabot45.74%23%30%63%-
9pylonpuller28.91%2%9%45%34%
10styx13.92%6%16%16%5%
11cunybot10.69%5%10%15%2%

Every bot scored better versus zerg than versus protoss, except for Styx which was about the same. That’s the important message in the table.

Next: Map tables.

CoG 2022 results by map

I excluded BetaStar from the analysis, since it contributed no information. Everybody else’s winning rate is reduced compared to the official results, because they don’t have all the meaningless free wins.

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

overallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
#1 BananaBrain82.96%77%87%86%88%86%83%81%77%80%
#2 PurpleWave71.11%69%73%70%65%72%72%71%75%73%
#3 Stardust68.89%76%65%65%65%65%70%74%67%72%
#4 McRave63.37%68%64%68%64%62%57%58%67%61%
#5 Microwave37.63%38%39%40%40%38%40%37%32%34%
#6 XIAOYI24.63%21%20%21%26%25%27%28%28%26%
#7 CUNYBot1.41%1%3%0%2%1%1%1%3%2%

Results are nice and even for every bot. Averaged out over all opponents, the map did not make a great difference for any bot.

Against specific opponents, the map did matter. I included the count of wins/games in each cell so you can see how much data there is. CoG ran far more games this year than last, so it’s much easier to trust the results at the level of individual cells in the tables.

BananaBrainoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
PurpleWave357/450
79%
35/50
70%
42/50
84%
43/50
86%
47/50
94%
44/50
88%
44/50
88%
31/50
62%
35/50
70%
36/50
72%
Stardust269/450
60%
16/50
32%
44/50
88%
34/50
68%
33/50
66%
32/50
64%
27/50
54%
37/50
74%
22/50
44%
24/50
48%
McRave312/450
69%
37/50
74%
33/50
66%
35/50
70%
39/50
78%
41/50
82%
29/50
58%
34/50
68%
29/50
58%
35/50
70%
Microwave404/450
90%
43/50
86%
42/50
84%
47/50
94%
45/50
90%
42/50
84%
49/50
98%
42/50
84%
48/50
96%
46/50
92%
XIAOYI450/450
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
CUNYBot448/450
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
48/50
96%
50/50
100%
overall82.96%77%87%86%88%86%83%81%77%80%

BananaBrain’s skill against Stardust depends strongly on the map.

PurpleWaveoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain93/450
21%
15/50
30%
8/50
16%
7/50
14%
3/50
6%
6/50
12%
6/50
12%
19/50
38%
15/50
30%
14/50
28%
Stardust376/450
84%
31/50
62%
47/50
94%
40/50
80%
47/50
94%
46/50
92%
48/50
96%
31/50
62%
44/50
88%
42/50
84%
McRave247/450
55%
20/50
40%
23/50
46%
26/50
52%
26/50
52%
34/50
68%
35/50
70%
25/50
50%
31/50
62%
27/50
54%
Microwave331/450
74%
42/50
84%
44/50
88%
41/50
82%
24/50
48%
31/50
62%
29/50
58%
40/50
80%
40/50
80%
40/50
80%
XIAOYI438/450
97%
49/50
98%
50/50
100%
45/50
90%
49/50
98%
50/50
100%
49/50
98%
48/50
96%
49/50
98%
49/50
98%
CUNYBot435/450
97%
49/50
98%
47/50
94%
50/50
100%
47/50
94%
49/50
98%
49/50
98%
49/50
98%
47/50
94%
48/50
96%
overall71.11%69%73%70%65%72%72%71%75%73%

PurpleWave’s results against Stardust also vary strongly by map. The cause is presumably Stardust: In PvP games, its strategy is much better suited for some maps than others. But BananaBrain and PurpleWave differ in their ability to exploit the weaknesses.

StardustoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain181/450
40%
34/50
68%
6/50
12%
16/50
32%
17/50
34%
18/50
36%
23/50
46%
13/50
26%
28/50
56%
26/50
52%
PurpleWave74/450
16%
19/50
38%
3/50
6%
10/50
20%
3/50
6%
4/50
8%
2/50
4%
19/50
38%
6/50
12%
8/50
16%
McRave311/450
69%
25/50
50%
43/50
86%
29/50
58%
35/50
70%
29/50
58%
45/50
90%
41/50
82%
27/50
54%
37/50
74%
Microwave404/450
90%
50/50
100%
43/50
86%
41/50
82%
44/50
88%
47/50
94%
41/50
82%
48/50
96%
44/50
88%
46/50
92%
XIAOYI442/450
98%
50/50
100%
50/50
100%
50/50
100%
47/50
94%
48/50
96%
50/50
100%
50/50
100%
47/50
94%
50/50
100%
CUNYBot448/450
100%
50/50
100%
50/50
100%
50/50
100%
49/50
98%
49/50
98%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
overall68.89%76%65%65%65%65%70%74%67%72%

And again, Stardust varies strongly versus McRave with its mutalisks. It may have to do with hard-to-see details like Stardust’s building placement on each map, or the timing of Stardust’s fixed strategy. The remaining opponents are not strong enough to stress Stardust, so results don’t vary as much.

McRaveoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain138/450
31%
13/50
26%
17/50
34%
15/50
30%
11/50
22%
9/50
18%
21/50
42%
16/50
32%
21/50
42%
15/50
30%
PurpleWave203/450
45%
30/50
60%
27/50
54%
24/50
48%
24/50
48%
16/50
32%
15/50
30%
25/50
50%
19/50
38%
23/50
46%
Stardust139/450
31%
25/50
50%
7/50
14%
21/50
42%
15/50
30%
21/50
42%
5/50
10%
9/50
18%
23/50
46%
13/50
26%
Microwave418/450
93%
45/50
90%
49/50
98%
45/50
90%
48/50
96%
48/50
96%
50/50
100%
44/50
88%
45/50
90%
44/50
88%
XIAOYI364/450
81%
41/50
82%
41/50
82%
49/50
98%
45/50
90%
43/50
86%
31/50
62%
32/50
64%
44/50
88%
38/50
76%
CUNYBot449/450
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
50/50
100%
49/50
98%
50/50
100%
50/50
100%
overall63.37%68%64%68%64%62%57%58%67%61%

MicrowaveoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain46/450
10%
7/50
14%
8/50
16%
3/50
6%
5/50
10%
8/50
16%
1/50
2%
8/50
16%
2/50
4%
4/50
8%
PurpleWave119/450
26%
8/50
16%
6/50
12%
9/50
18%
26/50
52%
19/50
38%
21/50
42%
10/50
20%
10/50
20%
10/50
20%
Stardust46/450
10%
0/50
0%
7/50
14%
9/50
18%
6/50
12%
3/50
6%
9/50
18%
2/50
4%
6/50
12%
4/50
8%
McRave32/450
7%
5/50
10%
1/50
2%
5/50
10%
2/50
4%
2/50
4%
0/50
0%
6/50
12%
5/50
10%
6/50
12%
XIAOYI332/450
74%
45/50
90%
45/50
90%
44/50
88%
31/50
62%
33/50
66%
39/50
78%
36/50
72%
26/50
52%
33/50
66%
CUNYBot441/450
98%
50/50
100%
49/50
98%
50/50
100%
50/50
100%
50/50
100%
49/50
98%
50/50
100%
47/50
94%
46/50
92%
overall37.63%38%39%40%40%38%40%37%32%34%

Ooh, Microwave upset PurpleWave only on the three-player map Neo Aztec. Compare the Match Point column with the Neo Aztec column: They have the same overall win rate, but Microwave played Match Point consistently against each opponent, and played Neo Aztec sometimes better and sometimes worse. It must mean something!

XIAOYIoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain0/450
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
PurpleWave12/450
3%
1/50
2%
0/50
0%
5/50
10%
1/50
2%
0/50
0%
1/50
2%
2/50
4%
1/50
2%
1/50
2%
Stardust8/450
2%
0/50
0%
0/50
0%
0/50
0%
3/50
6%
2/50
4%
0/50
0%
0/50
0%
3/50
6%
0/50
0%
McRave86/450
19%
9/50
18%
9/50
18%
1/50
2%
5/50
10%
7/50
14%
19/50
38%
18/50
36%
6/50
12%
12/50
24%
Microwave118/450
26%
5/50
10%
5/50
10%
6/50
12%
19/50
38%
17/50
34%
11/50
22%
14/50
28%
24/50
48%
17/50
34%
CUNYBot441/450
98%
49/50
98%
45/50
90%
50/50
100%
49/50
98%
50/50
100%
50/50
100%
50/50
100%
49/50
98%
49/50
98%
overall24.63%21%20%21%26%25%27%28%28%26%

CUNYBotoverallBenzenEclipsMatchPNeoAztNeoSylOutsidCircuiFightiPolypo
BananaBrain2/450
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
2/50
4%
0/50
0%
PurpleWave15/450
3%
1/50
2%
3/50
6%
0/50
0%
3/50
6%
1/50
2%
1/50
2%
1/50
2%
3/50
6%
2/50
4%
Stardust2/450
0%
0/50
0%
0/50
0%
0/50
0%
1/50
2%
1/50
2%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
McRave1/450
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
0/50
0%
1/50
2%
0/50
0%
0/50
0%
Microwave9/450
2%
0/50
0%
1/50
2%
0/50
0%
0/50
0%
0/50
0%
1/50
2%
0/50
0%
3/50
6%
4/50
8%
XIAOYI9/450
2%
1/50
2%
5/50
10%
0/50
0%
1/50
2%
0/50
0%
0/50
0%
0/50
0%
1/50
2%
1/50
2%
overall1.41%1%3%0%2%1%1%1%3%2%