archive by month
Skip to content

AIIDE 2023 - what Microwave learned

Microwave is configured to save only the most recent 200 game records. There were 290 rounds, so where all games were played, it dropped data for 90 games. (Steamhammer is configured the same way, though the data it stores is quite different.)


#1 bananabrain

openinggameswinsfirstlast
10Hatch9Pool9gas10%187187
10HatchMain9Pool9Gas20%150152
10HatchTurtleHydra20%6265
11Gas10PoolMuta20%131155
11HatchTurtleHydra10%8686
11HatchTurtleLurker10%113113
11HatchTurtleMuta20%7897
12Hatch10%6767
12HatchTurtle10%130130
12Pool20%2887
12PoolMain10%8585
1HatchMuta_Sparkle50%59143
2HatchLurker20%5153
2HatchLurkerAllIn10%172172
2HatchMuta1718%84199
2HatchMuta_Sparkle20%55128
3Hatch20%5056
3HatchExpo20%122190
3HatchHydraBust70%52170
3HatchHydraExpo10%7070
3HatchLingBust50%58162
3HatchLurker20%72144
3HatchMuta186%4193
3HatchMutaExpo40%68157
3HatchMuta_Sparkle10%9595
3HatchPoolHydra50%57197
4HatchBeforeGas60%34154
4HatchPool10%139139
4HatchPoolHydra40%115198
4PoolHard20%4869
4PoolSoft10%2424
5HatchPool10%6060
5HatchPoolHydra30%49142
5Pool157%19188
6Pool20%47173
7Pool20%92120
7PoolHydraLingRush7D10%123123
8Pool20%117118
8PoolHydraRush8D10%135135
9Hatch9Pool9Gas20%22108
9HatchMain8Pool8Gas10%7676
9Pool30%88126
9PoolExpo20%2799
9PoolGasHatchSpeed8D10%7171
9PoolHatch30%15175
9PoolHatchGasSpeed8D1817%0186
9PoolSpeed70%12183
9PoolSpeedLing30%13125
9PoolSunkHatch20%111182
9PoolSunken20%7396
Overpool30%89136
OverpoolSpeed30%31176
OverpoolSunken20%64151
OverpoolTurtle20%91145
ZvP_10Hatch9Pool60%18129
ZvP_11Hatch10Pool30%83158
ZvZ_Overgas11Pool10%105105
ZvZ_Overgas9Pool10%1010
ZvZ_Overpool11Gas30%16196
ZvZ_OverpoolTurtle10%2323
60 openings2004%
enemygameswins
HeavyRush260%
NakedExpand100%
Proxy20%
SafeExpand1252%
Turtle1612%
Unknown2119%
6 openings2004%


Mutalisks were good—relatively speaking—even though this version of BananaBrain goes heavy on the corsairs. Even the slow-starting 3 hatch muta was more successful than most builds. It’s curious that the highest win rate came when Microwave was unable to figure out what opening BananaBrain was playing. I doubt the cost of scouting is that high. I’m guessing it’s more likely that scouting failed more often when starting positions were distant. That gave Microwave more time to prepare.


#2 stardust

openinggameswinsfirstlast
10Hatch9Pool9gas20%79125
10HatchTurtleHydra10%147147
11Gas10PoolMuta10%181181
12HatchMain10%4949
1HatchMuta_Sparkle10%105105
2HatchHydra10%141141
2HatchLurker20%130171
2HatchMuta30%66103
3HatchHydra10%8080
3HatchHydraBust40%44168
3HatchLingBust20%1693
3HatchMuta30%62170
3HatchMutaExpo20%17104
3HatchMuta_Sparkle10%178178
3HatchPoolExpo20%129149
3HatchPoolHydra10%135135
4HatchBeforeGas40%5177
4HatchPool10%8282
4PoolHard20%1330
4PoolSoft20%45195
5HatchPool10%111111
5HatchPoolHydra80%9119
5PoolSpeed10%118118
7PoolHydraLingRush7D10%126126
8Pool10%6464
9HatchTurtleHydra10%3535
9Pool10%139139
9PoolExpo10%117117
9PoolGasHatchSpeed7D80%2172
9PoolGasHatchSpeed8D10%191191
9PoolHatch20%120179
9PoolSpeed20%102157
9PoolSpeedLing12821%0199
OverpoolLurker10%121121
OverpoolSpeed10%5252
ZvP_10Hatch9Pool40%12173
ZvP_2HatchHydra10%5353
37 openings20014%
enemygameswins
HeavyRush170%
NakedExpand2030%
SafeExpand860%
Turtle280%
Unknown4943%
5 openings20014%


But Stardust was (a little) vulnerable to zerglings. Again, the highest win rate came when Microwave did not know what Stardust was doing.


#3 purplewave

openinggameswinsfirstlast
10Hatch9Pool9gas2157%11195
11HatchTurtleHydra10%66
2HatchLurker10%7171
3HatchHydra10%165165
4PoolSoft10%172172
5Pool333%323
9PoolGasHatchSpeed8D10%3939
9PoolHatchGasSpeed8D16784%0199
9PoolSpeed10%145145
OverpoolTurtle10%9595
ZvP_9Hatch9Pool10%11
ZvZ_Overpool9Gas10%180180
12 openings20077%
enemygameswins
HeavyRush9274%
NakedExpand20%
Unknown10681%
3 openings20077%


PurpleWave just fell over to Microwave’s zerglings. But even here, an Unknown enemy build was good news for Microwave.

Steamhammer was also successful with zerglings (I’ll post its data when I get to it), but nothing like this successful. I expect that, true to its name, Microwave has superior zergling micro. Though maybe it’s just more aggressive?


#4 steamhammer

openinggameswinsfirstlast
10HatchMain9Pool9Gas633%141153
10HatchTurtleHydra333%174178
12Hatch10%145145
12Pool1242%91180
12PoolMain10%7272
1HatchMuta_Sparkle1644%94164
3Hatch1060%183198
3HatchExpo20%3259
3HatchLingBust10%4040
3HatchPoolHydra10%130130
4PoolHard425%5262
4PoolSoft20%67165
5Pool333%97136
5PoolSpeed825%4383
6Pool10%1010
7Pool10%195195
9HatchMain8Pool8Gas10%7373
9PoolHatchGasSpeed8D2259%35199
9PoolSpeed2941%11196
OverpoolSpeed4939%0187
ZvZ_Overgas11Pool333%57103
ZvZ_Overpool11Gas10%88
ZvZ_Overpool9Gas2339%1182
23 openings20040%
enemygameswins
HeavyRush12534%
NakedExpand1070%
Turtle4132%
Unknown2467%
4 openings20040%


A lot of openings are roughly equal. I suspect that some of the ones that scored 0 would have also been roughly equal if they’d been tried more times.


#5 mcrave

openinggameswinsfirstlast
10Hatch9Pool9gas10%157157
11Gas10PoolMuta10%9696
12Hatch10%179179
12HatchMain10%164164
12HatchTurtle150%1121
12Pool10%150150
2HatchHydra10%6666
2HatchLurker10%6969
2HatchLurkerAllIn20%15119
2HatchMuta10%9898
3Hatch10%7878
3HatchExpo10%1414
3HatchHydra20%171188
3HatchHydra_BHG10%140140
3HatchLingBust10%133133
3HatchPoolHydra20%163191
4HatchBeforeGas10%3636
4HatchPoolHydra10%139139
4PoolHard80%7130
4PoolSoft70%43168
5HatchPool10%183183
5HatchPoolHydra10%33
5Pool50%56149
6Pool10%156156
7Pool10%103103
7PoolHydraLingRush7D20%17151
9PoolGasHatchSpeed7D10%193193
9PoolHatchGasSpeed8D12618%0199
9PoolSunken30%88147
OverpoolSpeed10%5151
OverpoolSunken10%190190
OverpoolTurtle10%5959
ZvP_10Hatch9Pool20%115181
ZvP_2HatchHydra20%57153
ZvZ_Overgas9Pool10%8787
ZvZ_Overpool11Gas10%6060
36 openings20012%
enemygameswins
FastRush30%
HeavyRush17111%
NakedExpand20%
Turtle1527%
Unknown90%
5 openings20012%


So: Good with zerglings, not so good with mutalisks. Microwave knows how to defend its bases with two spore colonies each, in the standard pro way, but apparently that’s not enough to survive against McRave.


#7 dragon

openinggameswinsfirstlast
10HatchTurtleHydra10%8282
11HatchTurtleMuta425%72142
12Hatch1644%45158
1HatchMuta_Sparkle10%4040
3HatchExpo250%178179
3HatchHydraBust10%3737
3HatchLurker10%123123
3HatchMutaExpo250%187188
3HatchMuta_Sparkle2475%160199
5HatchPool3751%2192
5HatchPoolHydra9657%0195
5PoolSpeed10%9797
7PoolHydraLingRush7D30%43100
7PoolHydraRush7D20%119131
8Pool10%169169
8PoolHydraRush8D10%2424
9PoolExpo10%8484
9PoolGasHatchSpeed8D10%108108
9PoolSpeed10%77
9PoolSunken10%6464
ZvP_9Hatch9Pool10%125125
ZvZ_Overgas11Pool10%106106
ZvZ_Overgas9Pool10%175175
23 openings20051%
enemygameswins
Factory17848%
HeavyRush250%
SafeExpand786%
Unknown989%
WorkerRush425%
5 openings20051%


The two top builds are 5 hatcheries before spawning pool. Compare Dragon’s table for Microwave, which says that opening with mass vultures was best. The vultures must have often come before Microwave could defend itself.


#8 ualbertabot

openinggameswinsfirstlast
11Gas10PoolLurker450%92111
11HatchTurtleHydra4865%0191
12PoolMain10%181181
3HatchPoolHydra10%109109
5HatchPool10%9494
6Pool2560%142197
7PoolHydraRush7D250%166167
9Hatch9Pool9Gas10%188188
9HatchTurtleHydra10%175175
9Pool4161%10189
9PoolGasHatchSpeed7D2255%12169
9PoolGasHatchSpeed8D2277%16199
9PoolHatch10%5858
9PoolSunken10%165165
ZvP_2HatchHydra2658%25193
ZvZ_OverpoolTurtle333%45133
16 openings20060%
enemygameswins
Factory5100%
FastRush3969%
HeavyRush11850%
NakedExpand6100%
Unknown3269%
5 openings20060%

#9 infestedartosis

openinggameswinsfirstlast
5Pool7294%0199
9PoolSpeedLing12098%3198
9PoolSunken888%55196
3 openings20096%
enemygameswins
HeavyRush8390%
NakedExpand80100%
Unknown37100%
3 openings20096%

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 2021 - Microwave versus DaQin

Two posts again today. Blue is good for Microwave, red is good for DaQin.

microwave strategies versus daqin strategies

overall4GateGoonForgeExpand5GateGoonForgeExpandSpeedlots
overall128/157 82%0/1 0%3/3 100%125/153 82%
1HatchMuta_Sparkle27/33 82%--27/33 82%
3HatchHydra0/1 0%--0/1 0%
3HatchLurker0/1 0%--0/1 0%
3HatchMuta95/106 90%-2/2 100%93/104 89%
3HatchMutaExpo0/1 0%--0/1 0%
4HatchPoolHydra1/1 100%--1/1 100%
5HatchPoolHydra1/2 50%0/1 0%-1/1 100%
6Pool0/1 0%--0/1 0%
6PoolSpeed0/1 0%--0/1 0%
9PoolHatchGasSpeed7D1/3 33%--1/3 33%
9PoolHatchGasSpeed8D3/6 50%-1/1 100%2/5 40%
9PoolSpeedLing0/1 0%--0/1 0%

DaQin barely varied its play, so again, nothing to see here.

microwave as seen by daqin

microwave played#daqin recognized
1HatchMuta_Sparkle3322 Not fast rush | 7 Heavy rush | 4 Proxy
3HatchHydra11 Not fast rush
3HatchLurker11 Heavy rush
3HatchMuta10684 Not fast rush | 16 Heavy rush | 4 Proxy | 2 Unknown
3HatchMutaExpo11 Not fast rush
4HatchPoolHydra11 Hydra bust
5HatchPoolHydra22 Not fast rush
6Pool11 Fast rush
6PoolSpeed11 Fast rush
9PoolHatchGasSpeed7D32 Heavy rush | 1 Not fast rush
9PoolHatchGasSpeed8D63 Fast rush | 2 Heavy rush | 1 Unknown
9PoolSpeedLing11 Heavy rush

9 pool is again sometimes a fast rush and sometimes something incompatible. And there are some stray proxies again. That is probably a bug inherited from Steamhammer (and long since fixed there).

daqin as seen by microwave

daqin played#microwave recognized
4GateGoon11 Unknown
ForgeExpand5GateGoon32 Turtle | 1 Unknown
ForgeExpandSpeedlots15387 Turtle | 43 SafeExpand | 16 Unknown | 4 NakedExpand | 3 HeavyRush

AIIDE 2021 - Microwave versus Dragon

I found another game that both bots recorded as a loss. The cause is different. While I try to figure it out, here is business as usual:

Blue is good for Microwave, red is good for Dragon.

microwave strategies versus dragon strategies

overall1rax fe2rax bio2rax mechbiodirty worker rushmass vulturesiege expand
overall55/157 35%8/24 33%11/28 39%17/66 26%10/26 38%2/2 100%3/5 60%4/6 67%
10Hatch9Pool9gas0/1 0%-0/1 0%-----
11Gas10PoolMuta6/10 60%-1/1 100%0/1 0%4/6 67%-1/2 50%-
11HatchTurtleHydra0/1 0%--0/1 0%----
12HatchTurtle1/2 50%-0/1 0%----1/1 100%
12PoolMuta0/1 0%---0/1 0%---
1HatchMuta_Sparkle1/3 33%0/1 0%0/1 0%1/1 100%----
2HatchLurker0/1 0%0/1 0%------
2HatchMuta2/6 33%0/1 0%-2/5 40%----
3HatchHydra0/2 0%--0/2 0%----
3HatchLingBust0/1 0%--0/1 0%----
3HatchLurker8/17 47%1/6 17%2/4 50%3/4 75%2/2 100%--0/1 0%
3HatchMuta0/2 0%---0/2 0%---
3HatchMutaExpo0/1 0%-0/1 0%-----
4PoolHard0/4 0%-0/1 0%0/3 0%----
4PoolSoft3/25 12%0/3 0%1/3 33%1/12 8%0/5 0%1/1 100%-0/1 0%
5HatchPool6/10 60%2/2 100%2/3 67%-0/3 0%1/1 100%-1/1 100%
5HatchPoolHydra15/22 68%5/5 100%3/7 43%2/4 50%3/3 100%-1/2 50%1/1 100%
7Pool0/1 0%-0/1 0%-----
7PoolHydraRush7D0/1 0%--0/1 0%----
9Pool0/3 0%--0/3 0%----
9PoolHatch0/1 0%0/1 0%------
9PoolHatchGasSpeed8D0/1 0%-0/1 0%-----
9PoolLurker0/2 0%0/1 0%-0/1 0%----
9PoolSpeed11/26 42%0/1 0%1/1 100%8/21 38%1/2 50%--1/1 100%
9PoolSpeedLing1/8 12%0/2 0%1/2 50%0/3 0%0/1 0%---
ZvZ_Overgas11Pool0/1 0%--0/1 0%----
ZvZ_Overgas9Pool0/1 0%--0/1 0%----
ZvZ_Overpool9Gas1/3 33%--0/1 0%0/1 0%-1/1 100%-

Microwave beat the worker rush with both 4PoolSoft and 5HatchPool (5 hatcheries before pool), which implies that it has a special reaction to the worker rush.

The fullest cells are 9PoolSpeed versus “2rax mech”, with 21 games, and 4PoolSoft versus the same with 12 games. No other cell has more than 7 games. This is despite the fact that Dragon barely played 3 of its 7 openings. When the bots have this many plans available, it is statistically impossible for a bot to discover purely from experience against one opponent how its choices interact with its opponent’s choices. Microwave’s answer to that is the same as Steamhammer’s: Simplify its understanding of the opponent’s opening to a small number of vaguely specified plans like HeavyRush. I don’t think that answer will scale to a high level of play. I think bots need either prior knowledge of how opening plans interact, or else the ability to reason about how plans interact, perhaps with a search algorithm. One way to produce the prior knowledge would be to run the imaginary search algorithm offline.

dragon as seen by microwave

dragon played#microwave recognized
1rax fe2417 Factory | 6 SafeExpand | 1 Unknown
2rax bio2817 Unknown | 6 SafeExpand | 3 HeavyRush | 2 Factory
2rax mech6619 SafeExpand | 19 Factory | 16 Unknown | 7 HeavyRush | 5 Turtle
bio2610 SafeExpand | 9 Factory | 4 Turtle | 3 Unknown
dirty worker rush22 WorkerRush
mass vulture55 Factory
siege expand65 Factory | 1 SafeExpand

Microwave sees the enemy builds largely as either factory first or expansion first.

AIIDE 2021 - Microwave versus BananaBrain

Blue is good for Microwave, red is good for BananaBrain.

microwave strategies versus bananabrain strategies

overall10/12gate1basespeedzeal2basespeedzeal4gate2archon5gategoon9/9gate9/9proxygatebisuneobisusairdtsairgoonsairreaverstove
overall21/157 13%3/86 3%1/1 100%1/2 50%1/2 50%5/30 17%3/15 20%1/2 50%1/2 50%1/2 50%1/5 20%1/5 20%1/2 50%1/3 33%
11Gas10PoolLurker0/3 0%0/2 0%---0/1 0%--------
11HatchTurtleHydra0/1 0%0/1 0%------------
11HatchTurtleMuta0/1 0%0/1 0%------------
12Hatch0/1 0%0/1 0%------------
12HatchTurtle0/3 0%0/1 0%----0/2 0%-------
12PoolMain3/15 20%1/10 10%---2/4 50%-0/1 0%------
12PoolMuta0/1 0%-----0/1 0%-------
2HatchMuta0/2 0%0/1 0%---0/1 0%--------
2HatchMuta_Sparkle0/1 0%0/1 0%------------
3HatchHydra1/7 14%0/3 0%---0/3 0%-----1/1 100%--
3HatchLingBust0/4 0%0/2 0%----0/1 0%----0/1 0%--
3HatchLurker0/1 0%----0/1 0%--------
3HatchMuta0/2 0%0/2 0%------------
3HatchPoolHydra0/3 0%0/1 0%---0/1 0%-----0/1 0%--
4HatchBeforeGas0/1 0%----0/1 0%--------
4HatchPool0/1 0%----0/1 0%--------
4HatchPoolHydra0/3 0%0/2 0%---0/1 0%--------
4PoolHard0/7 0%0/3 0%---0/1 0%0/1 0%---0/1 0%--0/1 0%
4PoolSoft0/1 0%----0/1 0%--------
6Pool0/1 0%0/1 0%------------
7Pool0/2 0%0/2 0%------------
7PoolHydraRush7D0/2 0%0/1 0%--------0/1 0%---
8Pool0/2 0%0/1 0%---0/1 0%--------
9Hatch9Pool9Gas0/2 0%0/2 0%------------
9HatchTurtleHydra0/1 0%--------0/1 0%----
9Pool0/1 0%----0/1 0%--------
9PoolGasHatchSpeed8D16/57 28%2/24 8%1/1 100%1/2 50%1/2 50%3/9 33%3/8 38%-1/2 50%1/1 100%1/3 33%0/2 0%1/1 100%1/2 50%
9PoolHatchGasSpeed8D1/11 9%0/7 0%---0/1 0%0/2 0%1/1 100%------
9PoolSpeed0/1 0%----0/1 0%--------
9PoolSpeedLing0/8 0%0/7 0%---0/1 0%--------
Overpool0/1 0%0/1 0%------------
OverpoolTurtle0/1 0%0/1 0%------------
ZvP_10Hatch9Pool0/1 0%-----------0/1 0%-
ZvP_2HatchHydra0/1 0%0/1 0%------------
ZvP_9Hatch9Pool0/1 0%0/1 0%------------
ZvZ_Overgas11Pool0/1 0%0/1 0%------------
ZvZ_Overgas9Pool0/1 0%0/1 0%------------
ZvZ_Overpool9Gas0/3 0%0/3 0%------------
ZvZ_OverpoolTurtle0/1 0%0/1 0%------------

That 9PoolGasHatchSpeed8D (a variant of the Styx build) must be behind many of the NakedExpand wins. Well, we already knew that, because it is behind most of the wins altogether. The interesting discovery is that it had some success against a wide range of BananaBrain openings.

The overall impression from this table is that both bots were feeling around in the dark. And we know how they work, so we know it’s true!

microwave as seen by bananabrain

microwave played#bananabrain recognized
11Gas10PoolLurker33 12pool
11HatchTurtleHydra11 12hatch
11HatchTurtleMuta11 12hatch
12Hatch11 12hatch
12HatchTurtle33 12hatch
12PoolMain159 12pool | 4 unknown | 2 10hatch
12PoolMuta11 12pool
2HatchMuta22 12hatch
2HatchMuta_Sparkle11 12hatch
3HatchHydra77 12hatch
3HatchLingBust44 12hatch
3HatchLurker11 12hatch
3HatchMuta22 12hatch
3HatchPoolHydra33 12hatch
4HatchBeforeGas11 12hatch
4HatchPool11 12hatch
4HatchPoolHydra32 12hatch | 1 unknown
4PoolHard77 4/5pool
4PoolSoft11 4/5pool
6Pool11 4/5pool
7Pool22 4/5pool
7PoolHydraRush7D22 4/5pool
8Pool22 9pool
9Hatch9Pool9Gas22 10hatch
9HatchTurtleHydra11 10hatch
9Pool11 9pool
9PoolGasHatchSpeed8D5749 9pool | 8 overpool
9PoolHatchGasSpeed8D116 9pool | 3 overpool | 2 unknown
9PoolSpeed11 9poolspeed
9PoolSpeedLing85 9poolspeed | 3 overpool
Overpool11 overpool
OverpoolTurtle11 overpool
ZvP_10Hatch9Pool11 10hatch
ZvP_2HatchHydra11 12hatch
ZvP_9Hatch9Pool11 10hatch
ZvZ_Overgas11Pool11 10hatch
ZvZ_Overgas9Pool11 unknown
ZvZ_Overpool9Gas33 overpool
ZvZ_OverpoolTurtle11 overpool

BananaBrain’s recognition is generally close enough. 11 hatch can be treated like 12 hatch, though it is sometimes possible to exploit the slight slowness of 12 hatch. Treating 7 pool like 5 pool is probably close enough for bot play. The only harmful mistake was in recognizing overpool when facing the aggressive 9PoolGasHatchSpeed8D.

bananabrain as seen by microwave

bananabrain played#microwave recognized
10/12gate8661 HeavyRush | 16 Unknown | 8 NakedExpand | 1 SafeExpand
1basespeedzeal11 Unknown
2basespeedzeal21 NakedExpand | 1 Turtle
4gate2archon21 Turtle | 1 NakedExpand
5gategoon3015 SafeExpand | 7 NakedExpand | 5 Turtle | 2 HeavyRush | 1 Unknown
9/9gate159 HeavyRush | 4 Unknown | 2 NakedExpand
9/9proxygate21 Unknown | 1 HeavyRush
bisu21 SafeExpand | 1 Turtle
neobisu21 NakedExpand | 1 SafeExpand
sairdt53 HeavyRush | 2 Unknown
sairgoon54 SafeExpand | 1 NakedExpand
sairreaver21 Turtle | 1 NakedExpand
stove31 Unknown | 1 HeavyRush | 1 NakedExpand

Here we see where BananaBrain’s NakedExpand losses came from: It didn’t simply play 12 nexus or whatever, but expanded behind the cover of pressure from some other build. Could it be that Microwave often didn’t scout the nexus unless it had defeated the pressure? Looking at this, it seems more like a BananaBrain weakness—eagerness to expand at a given time whether it is safe or not—than a Microwave strength. But then again, Microwave scored well against NakedExpand for almost every opponent that played it.

AIIDE 2021 - what Microwave learned

Microwave’s history files include large doses of training data prepared before the tournament. I snipped that data out, so the tables here include only tournament games and the 7 post-tournament games that are excluded from the official results.


#1 stardust

openinggameswinsfirstlast
10Hatch9Pool9gas20%95115
10HatchMain9Pool9Gas10%8585
10HatchTurtleHydra10%5050
11Gas10PoolLurker10%6060
11HatchTurtleHydra50%4153
11HatchTurtleLurker20%70122
11HatchTurtleMuta20%3076
12Hatch20%72105
12HatchMain20%8889
12HatchTurtle10%00
12Pool10%145145
12PoolMain10%127127
12PoolMuta10%108108
1HatchMuta_Sparkle20%54155
2HatchHydra10%9898
2HatchLurker20%1023
2HatchMuta20%4381
2HatchMuta_Sparkle30%1996
3Hatch20%13132
3HatchExpo10%136136
3HatchHydra20%59114
3HatchHydraBust20%4041
3HatchHydraExpo10%2424
3HatchLingBust40%46151
3HatchMuta10%88
3HatchMutaExpo70%25137
3HatchMuta_Sparkle10%1212
3HatchPool20%1562
3HatchPoolHydra40%65113
3HatchPoolHydraExpo20%4775
4HatchBeforeGas50%16130
4HatchPool10%129129
4HatchPoolHydra10%149149
4PoolHard30%38124
4PoolSoft60%2121
5HatchPoolHydra50%6117
5Pool50%18138
5PoolSpeed10%103103
6Pool10%128128
6PoolSpeed20%7999
7PoolHydraLingRush7D10%2929
7PoolHydraRush7D20%56152
8Pool30%48110
9Hatch9Pool9Gas30%1751
9HatchMain8Pool8Gas20%69140
9Pool20%7492
9PoolExpo10%123123
9PoolGasHatchSpeed7D10%7171
9PoolGasHatchSpeed8D60%590
9PoolHatch30%7119
9PoolHatchGasSpeed7D10%33
9PoolHatchGasSpeed8D20%106142
9PoolLurker30%34120
9PoolSpeed30%11147
9PoolSpeedLing40%36154
9PoolSunken10%118118
OverpoolSpeed60%9146
OverpoolSunken10%148148
OverpoolTurtle40%45135
ZvP_10Hatch9Pool20%4478
ZvP_11Hatch10Pool40%14150
ZvP_2HatchHydra10%156156
ZvP_9Hatch9Pool40%100144
ZvZ_Overgas9Pool20%1139
ZvZ_Overpool11Gas10%5353
ZvZ_Overpool9Gas20%2657
ZvZ_OverpoolTurtle10%109109
67 openings1570%
enemygameswins
HeavyRush230%
NakedExpand130%
Unknown1210%
3 openings1570%


Microwave has many strategies. I counted 79, compared to 73 last year (my first impression was that there were many more this year, but it was not true). Like Steamhammer, when losing badly it flails, trying anything.


#2 bananabrain

openinggameswinsfirstlast
11Gas10PoolLurker30%45133
11HatchTurtleHydra10%8585
11HatchTurtleMuta10%8989
12Hatch10%120120
12HatchTurtle30%6772
12PoolMain1520%39145
12PoolMuta10%8181
2HatchMuta20%52122
2HatchMuta_Sparkle10%8383
3HatchHydra714%30100
3HatchLingBust40%12137
3HatchLurker10%4444
3HatchMuta20%91111
3HatchPoolHydra30%27148
4HatchBeforeGas10%4848
4HatchPool10%5858
4HatchPoolHydra30%46134
4PoolHard70%0141
4PoolSoft10%7777
6Pool10%3737
7Pool20%32128
7PoolHydraRush7D20%2152
8Pool20%56121
9Hatch9Pool9Gas20%101125
9HatchTurtleHydra10%2121
9Pool10%4141
9PoolGasHatchSpeed8D5728%1154
9PoolHatchGasSpeed8D119%13147
9PoolSpeed10%6161
9PoolSpeedLing80%36156
Overpool10%8686
OverpoolTurtle10%155155
ZvP_10Hatch9Pool10%55
ZvP_2HatchHydra10%112112
ZvP_9Hatch9Pool10%9898
ZvZ_Overgas11Pool10%119119
ZvZ_Overgas9Pool10%106106
ZvZ_Overpool9Gas30%66151
ZvZ_OverpoolTurtle10%146146
39 openings15713%
enemygameswins
HeavyRush774%
NakedExpand2348%
SafeExpand225%
Turtle911%
Unknown2619%
5 openings15713%


See NakedExpand in the enemy table: Microwave was able to punish BananaBrain when BananaBrain made nexus before cannons. It’s a theme. I think it indicates general aggressiveness or rushiness in the early game. I get 6:52 for Microwave’s median game length when defeating BananaBrain.


#3 dragon

openinggameswinsfirstlast
10Hatch9Pool9gas10%8787
11Gas10PoolMuta1060%62156
11HatchTurtleHydra10%5959
12HatchTurtle250%9293
12PoolMuta10%142142
1HatchMuta_Sparkle333%30103
2HatchLurker10%9898
2HatchMuta633%7107
3HatchHydra20%2024
3HatchLingBust10%4141
3HatchLurker1747%76110
3HatchMuta20%134135
3HatchMutaExpo10%8484
4PoolHard40%063
4PoolSoft2512%1136
5HatchPool1060%114132
5HatchPoolHydra2268%5154
7Pool10%3434
7PoolHydraRush7D10%6464
9Pool30%973
9PoolHatch10%105105
9PoolHatchGasSpeed8D10%3232
9PoolLurker20%72113
9PoolSpeed2642%3101
9PoolSpeedLing812%53131
ZvZ_Overgas11Pool10%2121
ZvZ_Overgas9Pool10%5454
ZvZ_Overpool9Gas333%12127
28 openings15735%
enemygameswins
Factory5733%
HeavyRush1010%
SafeExpand4236%
Turtle933%
Unknown3741%
WorkerRush2100%
6 openings15735%


Microwave had 3 builds that scored above 50%, and others that were close, but experimented too much. It would have scored much higher if it had exploited more and explored less. I think the lesson is that the learning algorithm’s exploration parameter should be set depending on the opponent’s expected strength. If you’re expecting to score 35% and you find a choice that scores 60%, reduce your exploration and exploit the winner unless and until the opponent adapts. If you have more than one high-scoring build (and they’re not too much alike), switch between them and your opponent will have more trouble adapting. If you’re expecting to score 70%, keep exploring if your best choice is only 60%.


#4 steamhammer

openinggameswinsfirstlast
11HatchTurtleLurker10%9191
12Hatch10%105105
12HatchTurtle743%148156
12Pool10%1919
2HatchLurker10%138138
3HatchExpo933%96136
3HatchHydraExpo20%88126
3HatchLingBust633%83128
3HatchMuta_Sparkle333%142144
3HatchPool10%3838
3HatchPoolExpo10%8282
4PoolHard911%18137
4PoolSoft617%085
5HatchPool10%4343
5HatchPoolHydra10%11
5Pool119%6119
5PoolSpeed10%5252
6Pool10%101101
7PoolHydraRush7D10%111111
8Pool10%7979
9PoolExpo20%68106
9PoolGasHatchSpeed8D10%4141
9PoolHatch425%34125
9PoolHydra10%7878
9PoolLurker10%1414
9PoolSpeed2133%4134
9PoolSpeedLing2748%48157
9PoolSunkHatch10%9292
9PoolSunken10%147147
OverpoolSpeed10%2020
ZvP_11Hatch10Pool10%22
ZvP_2HatchHydra10%121121
ZvZ_Overgas11Pool2540%25135
ZvZ_Overpool11Gas50%9141
ZvZ_Overpool9Gas10%2121
35 openings15827%
enemygameswins
HeavyRush13422%
NakedExpand683%
Turtle825%
Unknown1060%
4 openings15827%


Even against a higher-finishing zerg, Microwave punishes the fast expansion when it recognizes it. It’s striking. Zerg is not able to add static defense to a base before the base finishes, so this ability to restrict the oppoent’s strategy could be even more powerful in ZvZ.


#5 mcrave

openinggameswinsfirstlast
10HatchMain9Pool9Gas20%24124
10HatchTurtleHydra425%2767
12Hatch10%109109
12HatchMain10%44
12PoolMain20%277
12PoolMuta10%88
2HatchHydra10%128128
2HatchLurkerAllIn10%9090
2HatchMuta10%1717
3Hatch838%81101
3HatchMuta10%7676
3HatchPoolHydraExpo20%7188
4HatchBeforeGas10%8484
4HatchPoolHydra10%126126
4PoolHard520%9135
4PoolSoft540%6156
5Pool10%1919
6Pool20%16125
8Pool30%018
8PoolHydraRush8D10%4949
9HatchTurtleHydra10%5757
9Pool838%12122
9PoolExpo633%96117
9PoolGasHatchSpeed7D10%1414
9PoolHatch10%142142
9PoolSpeed1136%1123
Overpool10%7373
OverpoolLurker10%6363
ZvP_10Hatch9Pool4951%38155
ZvP_11Hatch10Pool10%9191
ZvP_9Hatch9Pool3165%10153
ZvZ_Overpool9Gas20%37
32 openings15739%
enemygameswins
FastRush40%
HeavyRush14040%
Turtle714%
Unknown667%
4 openings15739%



#6 willyt

openinggameswinsfirstlast
10Hatch9Pool9gas333%36149
10HatchMain9Pool9Gas333%126146
12HatchMain20%31108
12HatchTurtle10%105105
12Pool1250%78139
12PoolMuta520%35141
2HatchHydra20%77101
2HatchLurker825%3150
3HatchExpo333%115145
3HatchHydraBust10%6969
3HatchLingBust650%95156
3HatchMuta1136%057
3HatchMutaExpo20%54125
3HatchPool10%1212
3HatchPoolHydraExpo333%3347
4PoolSoft2236%59154
5HatchPool10%5656
7PoolHydraRush7D10%117117
8PoolHydraRush8D10%7373
9Hatch9Pool9Gas729%263
9HatchMain8Pool8Gas10%106106
9Pool633%139
9PoolExpo1250%7153
9PoolGasHatchSpeed7D450%7181
9PoolGasHatchSpeed8D250%6282
9PoolHatchGasSpeed7D10%2929
9PoolHydra10%9191
9PoolLurker729%43142
9PoolSpeed450%1458
9PoolSpeedLing10%103103
9PoolSunkHatch10%5151
9PoolSunken1242%2294
OverpoolLurker10%3232
OverpoolSpeed10%5555
OverpoolSunken10%7272
ZvP_10Hatch9Pool10%129129
ZvP_9Hatch9Pool333%4161
ZvZ_Overgas9Pool10%6666
ZvZ_Overpool11Gas10%5252
ZvZ_Overpool9Gas10%8888
40 openings15732%
enemygameswins
Factory5326%
HeavyRush2214%
NakedExpand16100%
Proxy10%
SafeExpand1118%
Unknown5430%
6 openings15732%


And against terran, too. Against Microwave, if expanding early, apparently terran and protoss should add defenses at the natural first.


#8 daqin

openinggameswinsfirstlast
1HatchMuta_Sparkle3382%45153
3HatchHydra10%136136
3HatchLurker10%3838
3HatchMuta10690%0156
3HatchMutaExpo10%108108
4HatchPoolHydra1100%2525
5HatchPoolHydra250%10132
6Pool10%9292
6PoolSpeed10%110110
9PoolHatchGasSpeed7D333%646
9PoolHatchGasSpeed8D650%265
9PoolSpeedLing10%4444
12 openings15782%
enemygameswins
HeavyRush3100%
NakedExpand475%
SafeExpand4372%
Turtle8988%
Unknown1872%
5 openings15782%


The first opponent that Microwave outscored, and it was a runaway. Steamhammer struggled versus DaQin, but the other zergs were fine. Later I’ll examine why to see if there are lessons for Steamhammer.


#9 freshmeat

openinggameswinsfirstlast
2HatchLurker10%2626
4PoolSoft1346%0144
9PoolHatch4486%5156
9PoolSpeedLing6589%1154
OverpoolSpeed3482%3149
5 openings15783%
enemygameswins
FastRush1587%
HeavyRush3661%
NakedExpand11100%
Turtle4185%
Unknown5491%
5 openings15783%


The strong results against NakedExpand show here too.


#10 ualbertabot

openinggameswinsfirstlast
10Hatch9Pool9gas250%87107
11Gas10PoolLurker6874%27147
12Hatch20%24140
12Pool10%1313
1HatchMuta_Sparkle10%148148
2HatchLurker10%121121
2HatchLurkerAllIn10%1414
2HatchMuta_Sparkle10%122122
3HatchHydraExpo10%3333
3HatchLurker10%2020
4PoolSoft617%018
5Pool367%135145
5PoolSpeed933%1116
9Pool10%77
9PoolExpo10%5252
9PoolGasHatchSpeed8D3358%995
9PoolHatch540%4399
9PoolSpeed10%137137
9PoolSpeedLing6100%149154
9PoolSunken333%98141
ZvP_10Hatch9Pool10%110110
ZvP_2HatchHydra10%143143
ZvZ_Overgas11Pool560%111142
ZvZ_Overpool9Gas10%55
24 openings15557%
enemygameswins
Factory1493%
FastRush3253%
HeavyRush7845%
NakedExpand8100%
Unknown2365%
5 openings15557%


Like McRave but apparently for a different reason, Microwave had unnecessary trouble with UAlbertaBot. It takes more than a simpleminded learning algorithm to adapt to a random opponent with such different rushes for each race. The ideal answer is to adapt during the game after scouting. Steamhammer’s answer is a super-turtle build that defeats all of UAlbertaBot’s rushes. But still, see that 100% next to NakedExpand?

Steamhammer-Microwave rivalry

The round robin phase of the annual SSCAIT tournament is nearly over.

Steamhammer was ahead of Xiao Yi by one loss when Steamhammer’s final game came up—versus Microwave. Even with bugs that keep it out of contention, Microwave is still Steamhammer’s rival. Xiao Yi had unplayed games left, and in any case Steamhammer defeated Xiao Yi 2-0 so in the worst case it would place ahead on tiebreak. Nevertheless it was a tense pairing. The game was a long and difficult hive tech ZvZ that neither bot could play particularly well. Notice Microwave’s use of overlords to discover and eliminate burrowed drones. The mutas and devourers were all plagued, but too late....

Another difficult Steamhammer game was versus Ecgberht.

Addendum: BetaStar and BananaBrain will likely end up tied for #2-#3. They scored 1-1 against each other. Will the seeding order for the elimination phase be decided arbitrarily, or what?

AIIDE 2020 - Microwave versus Steamhammer

Microwave played more different openings than Steamhammer (no doubt seeking a winning choice), so I put it on the left. Blue is good for Microwave, red is good for Steamhammer.

microwave strategies versus steamhammer strategies

overall6PoolBurrow8-8HydraRush9Hatch8Pool9PoolHatchSpeedSpireOverhatchLingOverpoolBurrowZvZ_12HatchExpoZvZ_12PoolLingZvZ_12PoolMainZvZ_Overpool11GasZvZ_Overpool9GasZvZ_OverpoolTurtle
overall43/150 29%1/1 100%1/1 100%4/5 80%1/1 100%1/1 100%1/1 100%3/5 60%4/11 36%2/3 67%12/44 27%7/64 11%6/13 46%
10Hatch9Pool9gas4/9 44%--0/1 0%------2/2 100%1/5 20%1/1 100%
10HatchMain9Pool9Gas1/4 25%---------0/1 0%1/2 50%0/1 0%
10HatchTurtleHydra0/1 0%----------0/1 0%-
11HatchTurtleMuta0/1 0%-----------0/1 0%
12HatchMain0/1 0%---------0/1 0%--
12Pool5/25 20%----1/1 100%--0/3 0%2/2 100%2/7 29%0/10 0%0/2 0%
12PoolMain1/5 20%--1/1 100%------0/2 0%0/2 0%-
2HatchLurker0/2 0%---------0/1 0%0/1 0%-
3HatchHydraBust0/1 0%----------0/1 0%-
3HatchHydraExpo0/2 0%---------0/1 0%0/1 0%-
3HatchPoolHydra0/2 0%-------0/1 0%-0/1 0%--
4HatchPoolHydra0/1 0%----------0/1 0%-
5Pool0/4 0%-------0/1 0%-0/1 0%0/2 0%-
5PoolSpeed1/3 33%-1/1 100%-----0/1 0%-0/1 0%--
7Pool0/1 0%----------0/1 0%-
7PoolHydraLingRush7D0/1 0%----------0/1 0%-
9Hatch9Pool9Gas0/1 0%----------0/1 0%-
9HatchTurtleHydra0/1 0%------0/1 0%-----
9PoolGasHatchSpeed8D0/1 0%---------0/1 0%--
9PoolHatch0/2 0%----------0/2 0%-
9PoolSpeed17/31 55%1/1 100%-3/3 100%1/1 100%--1/1 100%1/1 100%-4/6 67%4/13 31%2/5 40%
9PoolSpeedLing0/1 0%------0/1 0%-----
9PoolSunken0/7 0%--------0/1 0%0/3 0%0/3 0%-
OverpoolSpeed1/3 33%-----1/1 100%---0/1 0%0/1 0%-
ZvP_11Hatch10Pool2/4 50%------1/1 100%--0/1 0%1/2 50%-
ZvP_2HatchHydra0/9 0%---------0/4 0%0/5 0%-
ZvP_9Hatch9Pool0/1 0%---------0/1 0%--
ZvZ_Overgas11Pool10/20 50%------1/1 100%3/4 75%-4/9 44%0/4 0%2/2 100%
ZvZ_Overpool11Gas0/2 0%----------0/2 0%-
ZvZ_Overpool9Gas1/4 25%----------0/3 0%1/1 100%

Steamhammer’s ZvZ_Overpool9Gas opening was successful against all Microwave tries, but notice that it was the only one: Flecks of blue, or entire streaks, crept into every other Steamhammer attempt. The end result does not look close, but in fact Microwave would have needed only a small increment of skill to turn it around; there was only one strategy it was unprepared to face.

microwave as seen by steamhammer

microwave played#steamhammer recognized
10Hatch9Pool9gas95 Naked expand | 3 Heavy rush | 1 Unknown
10HatchMain9Pool9Gas43 Unknown | 1 Turtle
10HatchTurtleHydra11 Naked expand
11HatchTurtleMuta11 Heavy rush
12HatchMain11 Unknown
12Pool2517 Naked expand | 5 Heavy rush | 3 Unknown
12PoolMain53 Heavy rush | 2 Unknown
2HatchLurker22 Naked expand
3HatchHydraBust11 Naked expand
3HatchHydraExpo21 Naked expand | 1 Heavy rush
3HatchPoolHydra21 Naked expand | 1 Heavy rush
4HatchPoolHydra11 Heavy rush
5Pool44 Fast rush
5PoolSpeed33 Fast rush
7Pool11 Fast rush
7PoolHydraLingRush7D11 Unknown
9Hatch9Pool9Gas11 Naked expand
9HatchTurtleHydra11 Heavy rush
9PoolGasHatchSpeed8D11 Heavy rush
9PoolHatch21 Unknown | 1 Heavy rush
9PoolSpeed3121 Unknown | 7 Naked expand | 3 Heavy rush
9PoolSpeedLing11 Naked expand
9PoolSunken74 Unknown | 3 Heavy rush
OverpoolSpeed32 Unknown | 1 Heavy rush
ZvP_11Hatch10Pool43 Naked expand | 1 Heavy rush
ZvP_2HatchHydra96 Heavy rush | 2 Turtle | 1 Naked expand
ZvP_9Hatch9Pool11 Naked expand
ZvZ_Overgas11Pool2019 Unknown | 1 Turtle
ZvZ_Overpool11Gas22 Unknown
ZvZ_Overpool9Gas44 Unknown

To play ZvZ truly well, Steamhammer needs a more detailed understanding of enemy builds. But even with this crude breakdown, I notice that most of the blue spots are associated with misunderstanding the main idea of Microwave’s play. On the other hand, many misunderstandings also show as red.

steamhammer as seen by microwave

steamhammer played#microwave recognized
6PoolBurrow11 FastRush
8-8HydraRush11 Unknown
9Hatch8Pool54 HeavyRush | 1 Unknown
9PoolHatchSpeedSpire11 NakedExpand
OverhatchLing11 HeavyRush
OverpoolBurrow11 NakedExpand
ZvZ_12HatchExpo55 NakedExpand
ZvZ_12PoolLing118 HeavyRush | 2 Unknown | 1 NakedExpand
ZvZ_12PoolMain33 HeavyRush
ZvZ_Overpool11Gas4436 Turtle | 5 Unknown | 3 NakedExpand
ZvZ_Overpool9Gas6451 Turtle | 8 Unknown | 5 NakedExpand
ZvZ_OverpoolTurtle1313 Turtle

The builds recognized as Turtle genuinely are turtle builds. They get mutalisks fast at the expense of weakness to zergling attack, which they compensate for with sunkens instead of a second hatchery. From the meta-strategy point of view, Steamhammer usually defeats Microwave in games where Steamhammer gains air superiority early, so Steamhammer’s choices make sense.

AIIDE 2020 - Microwave versus BananaBrain

This is the last matchup I can analyze this way without writing more parsing code. McRave did ask for more in a comment, though, so I may do that. All the matchups have featured BananaBrain.

Microwave plays a large number of strategies, so I put it on the left side. Blue is good for Microwave, red is good for BananaBrain.

microwave strategies versus bananabrain strategies

overallPvZ_10/12gatePvZ_1basespeedzealPvZ_2basespeedzealPvZ_4gate2archonPvZ_5gategoonPvZ_9/9gatePvZ_9/9proxygatePvZ_bisuPvZ_neobisuPvZ_sairdtPvZ_sairgoonPvZ_sairreaverPvZ_stove
overall58/150 39%5/17 29%3/19 16%4/11 36%4/9 44%4/7 57%5/11 45%5/12 42%4/14 29%4/10 40%5/10 50%6/11 55%4/9 44%5/10 50%
10Hatch9Pool9gas0/2 0%---0/1 0%0/1 0%--------
10HatchMain9Pool9Gas0/1 0%-------0/1 0%-----
11HatchTurtleHydra0/1 0%--------0/1 0%----
12Hatch0/1 0%0/1 0%------------
12PoolMain22/43 51%0/5 0%0/9 0%2/2 100%3/3 100%3/3 100%0/1 0%1/3 33%2/2 100%3/3 100%0/3 0%2/3 67%4/4 100%2/2 100%
12PoolMuta0/1 0%0/1 0%------------
1HatchMuta_Sparkle0/1 0%------0/1 0%------
2HatchMuta1/5 20%--1/1 100%--0/1 0%-0/1 0%---0/1 0%0/1 0%
3HatchHydraBust0/1 0%-------0/1 0%-----
3HatchHydra_BHG0/1 0%--0/1 0%----------
3HatchLingBust2/6 33%-0/1 0%0/1 0%--1/1 100%0/1 0%---1/1 100%-0/1 0%
3HatchMuta0/1 0%--------0/1 0%----
3HatchPoolHydraExpo0/1 0%0/1 0%------------
4HatchBeforeGas0/1 0%----------0/1 0%--
4HatchPoolHydra0/2 0%-0/1 0%0/1 0%----------
4PoolHard2/6 33%-1/1 100%0/1 0%--1/1 100%-0/1 0%----0/2 0%
4PoolSoft0/1 0%-0/1 0%-----------
6Pool0/1 0%-0/1 0%-----------
7Pool0/1 0%---------0/1 0%---
8Pool0/1 0%--------0/1 0%----
8PoolHydraRush8D0/1 0%0/1 0%------------
9PoolGasHatchSpeed8D12/18 67%2/2 100%2/2 100%-1/2 50%0/1 0%1/1 100%0/2 0%1/1 100%1/1 100%1/1 100%1/2 50%0/1 0%2/2 100%
9PoolHatchGasSpeed7D0/1 0%---0/1 0%---------
9PoolHatchGasSpeed8D17/32 53%3/4 75%0/1 0%1/1 100%0/1 0%0/1 0%2/4 50%4/5 80%1/5 20%0/1 0%4/4 100%2/2 100%0/2 0%0/1 0%
9PoolSpeed0/3 0%0/1 0%--0/1 0%------0/1 0%--
9PoolSpeedLing1/5 20%-----0/1 0%-0/1 0%--0/1 0%0/1 0%1/1 100%
9PoolSunkHatch0/1 0%--0/1 0%----------
Overpool0/1 0%0/1 0%------------
OverpoolSpeed0/3 0%-0/1 0%0/1 0%----0/1 0%-----
ZvP_10Hatch9Pool1/3 33%-0/1 0%0/1 0%-1/1 100%--------
ZvP_11Hatch10Pool0/1 0%--------0/1 0%----
ZvZ_Overgas9Pool0/1 0%--------0/1 0%----
ZvZ_Overpool11Gas0/2 0%-----0/1 0%---0/1 0%---

This table looks even more scattered than yesterday’s BananaBrain-Dragon table, but to me it tells a story of duelling learning algorithms. Microwave found a few builds that countered BananaBrain’s preferred play, and BananaBrain did not shift its responses far enough to entirely squelch them.

microwave as seen by bananabrain

microwave played#bananabrain recognized
10Hatch9Pool9gas22 Z_10hatch
10HatchMain9Pool9Gas11 Z_10hatch
11HatchTurtleHydra11 Z_12hatch
12Hatch11 Z_12hatch
12PoolMain4336 Z_12pool | 5 Z_10hatch | 2 Z_unknown
12PoolMuta11 Z_10hatch
1HatchMuta_Sparkle11 Z_unknown
2HatchMuta55 Z_12hatch
3HatchHydraBust11 Z_12hatch
3HatchHydra_BHG11 Z_10hatch
3HatchLingBust66 Z_12hatch
3HatchMuta11 Z_12hatch
3HatchPoolHydraExpo11 Z_12hatch
4HatchBeforeGas11 Z_12hatch
4HatchPoolHydra22 Z_12hatch
4PoolHard66 Z_4/5pool
4PoolSoft11 Z_4/5pool
6Pool11 Z_4/5pool
7Pool11 Z_9pool
8Pool11 Z_9pool
8PoolHydraRush8D11 Z_9pool
9PoolGasHatchSpeed8D1815 Z_9pool | 3 Z_overpool
9PoolHatchGasSpeed7D11 Z_9pool
9PoolHatchGasSpeed8D3229 Z_9pool | 3 Z_overpool
9PoolSpeed32 Z_9poolspeed | 1 Z_9pool
9PoolSpeedLing55 Z_9poolspeed
9PoolSunkHatch11 Z_9pool
Overpool11 Z_overpool
OverpoolSpeed33 Z_overpool
ZvP_10Hatch9Pool33 Z_10hatch
ZvP_11Hatch10Pool11 Z_12hatch
ZvZ_Overgas9Pool11 Z_12pool
ZvZ_Overpool11Gas22 Z_overpool

BananaBrain was accurate at reading Microwave’s initial build. Lumping 11 hatch with 12 hatch is fine, they’re very similar. 12 pool can be difficult to distinguish from 10 hatch, if you scout it late after the second hatchery finishes. It would be useful to better separate 9 pool from overpool, which are significantly different in effect, but it requires close attention to detail. Overall, highly accurate readings with only one wide miss, seeing the overgas 9 pool as 12 pool—and that is a ZvZ build that is extremely rare in ZvP.

It makes quite a contrast with yesterday’s BananaBrain-Dragon analysis, where BananaBrain barely recognized terran builds.

bananabrain as seen by microwave

bananabrain played#microwave recognized
PvZ_10/12gate1713 HeavyRush | 3 Unknown | 1 NakedExpand
PvZ_1basespeedzeal1914 Unknown | 5 HeavyRush
PvZ_2basespeedzeal114 NakedExpand | 3 Turtle | 3 SafeExpand | 1 HeavyRush
PvZ_4gate2archon94 NakedExpand | 4 SafeExpand | 1 HeavyRush
PvZ_5gategoon76 NakedExpand | 1 HeavyRush
PvZ_9/9gate119 HeavyRush | 2 Unknown
PvZ_9/9proxygate126 HeavyRush | 6 Unknown
PvZ_bisu146 SafeExpand | 4 NakedExpand | 2 Turtle | 1 HeavyRush | 1 Unknown
PvZ_neobisu104 NakedExpand | 3 SafeExpand | 2 Turtle | 1 HeavyRush
PvZ_sairdt108 Unknown | 2 HeavyRush
PvZ_sairgoon117 NakedExpand | 1 SafeExpand | 1 Turtle | 1 Unknown | 1 HeavyRush
PvZ_sairreaver94 SafeExpand | 3 NakedExpand | 2 Turtle
PvZ_stove107 Unknown | 3 HeavyRush

Microwave borrowed Steamhammer’s rather crude classification of enemy plans (which was still far in the future when Microwaved forked from Steamhammer). It was intended to be minimal, just enough to allow for basic reactions, to hold the fort until I could raise enough troops to make a sally. Microwave’s recognitions look similar to Steamhammer’s, with the right general tendency but many sloppy variations (which I think are due mostly to weak scouting, with a contribution from overlapping recognition rules).

It’s striking that some recognitions—of dubious accuracy—are dark blue in stark contrast to their neighbors. It gives me the impression that Microwave makes use of the recognized enemy plan, in some cases to good effect. It suggests that more accurate recognition, if the reactions are also good, could be a major improvement.

AIIDE 2020 - what Microwave learned 2

Microwave’s history files include both pre-training games and tournament games. I removed the pre-training games, and these tables show only tournament results. I looked at it both ways and decided this way was more informative. Yesterday’s table includes both prepared data and tournament games.

The enemy strategies listed in the form “HeavyRush -> SafeExpand” are the initially predicted and the later recognized enemy play, as explained by MicroDK in a comment. When they’re the same, the prediction was correct.


#1 stardust

openinggameswinsfirstlast
10Hatch9Pool9gas30%60107
10HatchMain9Pool9Gas10%133133
12HatchMain20%1449
12Pool10%110110
12PoolMain10%121121
12PoolMuta20%46142
2HatchMuta70%2098
3Hatch30%17112
3HatchExpo20%4357
3HatchHydra10%139139
3HatchHydra_BHG10%3838
3HatchLingBust911%24144
3HatchMuta360%0143
3HatchPoolHydra70%27147
3HatchPoolHydraExpo10%114114
4PoolHard10%123123
4PoolSoft20%1670
5HatchPoolHydra180%5149
5Pool20%881
6Pool20%4041
6PoolSpeed40%28146
7Pool10%148148
9Hatch9Pool9Gas10%134134
9HatchMain8Pool8Gas10%117117
9Pool10%1515
9PoolGasHatchSpeed7D10%132132
9PoolGasHatchSpeed8D10%33
9PoolHatchGasSpeed7D10%3434
9PoolHatchGasSpeed8D120%6138
9PoolHydra10%118118
9PoolLurker10%9595
9PoolSpeed10%137137
9PoolSpeedLing10%5858
9PoolSunkHatch20%71105
9PoolSunken10%140140
OverpoolLurker10%7373
OverpoolSpeed10%116116
OverpoolTurtle10%104104
ZvP_10Hatch9Pool20%77109
ZvP_11Hatch10Pool10%8080
ZvP_2HatchHydra20%87129
ZvP_9Hatch9Pool20%127145
ZvZ_Overgas11Pool20%3361
ZvZ_Overgas9Pool20%2128
ZvZ_Overpool11Gas20%6782
ZvZ_Overpool9Gas10%4848
ZvZ_OverpoolTurtle10%122122
47 openings1501%
enemygameswins
HeavyRush -> HeavyRush1271%
HeavyRush -> Unknown210%
SafeExpand -> HeavyRush20%
3 openings1501%


Stardust always plays the same strategy, so it’s no wonder that Microwave was able to predict it. Not that it helped. 3HatchMuta was tried repeatedly because it scored some wins in training.


#2 purplewave

openinggameswinsfirstlast
10Hatch9Pool9gas30%4122
11HatchTurtleHydra30%72139
11HatchTurtleLurker10%5757
12HatchMain10%4444
12PoolMuta1118%20121
2HatchLurkerAllIn10%4747
3HatchHydraBust10%4040
3HatchHydra_BHG10%1616
3HatchMuta933%26149
3HatchMutaExpo10%1717
3HatchPoolHydra10%9494
4HatchPoolHydra10%5656
4PoolHard812%7147
6Pool10%5555
6PoolSpeed1030%32135
7Pool30%3886
7PoolHydraLingRush7D10%108108
8PoolHydraRush8D20%1949
9Hatch9Pool9Gas10%124124
9HatchMain8Pool8Gas825%15128
9Pool20%9102
9PoolGasHatchSpeed7D2850%0142
9PoolHatchGasSpeed7D1765%11141
9PoolHatchGasSpeed8D956%114146
9PoolSpeed425%154
9PoolSpeedLing20%60119
9PoolSunkHatch10%109109
9PoolSunken10%145145
OverpoolSpeed714%23143
OverpoolTurtle617%14123
ZvP_10Hatch9Pool10%6666
ZvP_2HatchHydra10%9292
ZvP_9Hatch9Pool20%130148
ZvZ_Overpool9Gas10%4343
34 openings15029%
enemygameswins
HeavyRush -> HeavyRush10323%
HeavyRush -> NakedExpand250%
HeavyRush -> SafeExpand20%
HeavyRush -> Turtle540%
HeavyRush -> Unknown1631%
NakedExpand -> HeavyRush20%
SafeExpand -> HeavyRush1100%
SafeExpand -> SafeExpand333%
SafeExpand -> Turtle250%
Turtle -> HeavyRush333%
Turtle -> NakedExpand4100%
Turtle -> SafeExpand333%
Turtle -> Turtle475%
13 openings15029%


PurpleWave opened with 2 gate most games. Microwave was able to predict it, but as we saw in UAlbertaBot’s table, the zealots are a Microwave weakness and PurpleWave was able to exploit it. Nevertheless, Microwave was no pushover. The more successful zerg tries were zergling openings, especially variants of the Styx build (9PoolHatchGasSpeed).


#3 bananabrain

openinggameswinsfirstlast
10Hatch9Pool9gas20%420
10HatchMain9Pool9Gas10%55
11HatchTurtleHydra10%8383
12Hatch10%6060
12PoolMain4351%37139
12PoolMuta10%6868
1HatchMuta_Sparkle10%6565
2HatchMuta520%3080
3HatchHydraBust10%109109
3HatchHydra_BHG10%122122
3HatchLingBust633%12130
3HatchMuta10%1111
3HatchPoolHydraExpo10%4949
4HatchBeforeGas10%33
4HatchPoolHydra20%127
4PoolHard633%55145
4PoolSoft10%108108
6Pool10%8181
7Pool10%1313
8Pool10%5353
8PoolHydraRush8D10%3131
9PoolGasHatchSpeed8D1867%70149
9PoolHatchGasSpeed7D10%3434
9PoolHatchGasSpeed8D3253%0146
9PoolSpeed30%25147
9PoolSpeedLing520%7123
9PoolSunkHatch10%142142
Overpool10%127127
OverpoolSpeed30%7992
ZvP_10Hatch9Pool333%29110
ZvP_11Hatch10Pool10%121121
ZvZ_Overgas9Pool10%106106
ZvZ_Overpool11Gas20%21134
33 openings15039%
enemygameswins
HeavyRush -> HeavyRush2232%
HeavyRush -> NakedExpand1486%
HeavyRush -> SafeExpand120%
HeavyRush -> Turtle617%
HeavyRush -> Unknown2532%
NakedExpand -> HeavyRush1443%
NakedExpand -> NakedExpand1479%
NakedExpand -> SafeExpand50%
NakedExpand -> Turtle20%
NakedExpand -> Unknown1233%
SafeExpand -> HeavyRush825%
SafeExpand -> NakedExpand475%
SafeExpand -> SafeExpand425%
SafeExpand -> Turtle20%
SafeExpand -> Unknown540%
Turtle -> NakedExpand1100%
16 openings15039%


BananaBrain is not predictable, and Microwave could not predict its play. Again, the more successful zerg builds were zergling openings.


#4 dragon

openinggameswinsfirstlast
10HatchTurtleHydra10%131131
11HatchTurtleLurker10%7676
12PoolMain10%141141
2HatchMuta6853%1148
3HatchHydraExpo333%122135
3HatchMutaExpo3847%0144
4HatchPoolHydra825%73136
4PoolSoft1828%38147
5HatchPoolHydra560%126149
5PoolSpeed10%118118
7PoolHydraLingRush7D10%7878
9PoolHatchGasSpeed8D10%128128
9PoolSunkHatch10%115115
Overpool10%5353
OverpoolLurker10%107107
OverpoolTurtle10%6262
16 openings15043%
enemygameswins
Factory -> Factory1856%
Factory -> HeavyRush1346%
Factory -> SafeExpand20%
Factory -> Unknown1471%
Factory -> WorkerRush333%
HeavyRush -> Factory1527%
HeavyRush -> HeavyRush2854%
HeavyRush -> NakedExpand10%
HeavyRush -> SafeExpand40%
HeavyRush -> Turtle20%
HeavyRush -> Unknown3126%
NakedExpand -> HeavyRush1100%
SafeExpand -> HeavyRush1100%
SafeExpand -> Unknown250%
WorkerRush -> Factory250%
WorkerRush -> HeavyRush2100%
WorkerRush -> Unknown450%
WorkerRush -> WorkerRush743%
18 openings15043%


Microwave was moderately successful in predicting Dragon’s play, because Dragon tends to stick with a successful strategy as long as it remains successful. Look at that mix of zerg openings! 4 pool, hydra builds, and mutalisk builds.


#5 mcrave

openinggameswinsfirstlast
10Hatch9Pool9gas10%133133
10HatchMain9Pool9Gas425%4272
10HatchTurtleHydra10%8383
11HatchTurtleLurker10%3636
12Hatch10%1515
12Pool1718%4147
12PoolMain20%110139
2HatchLurker10%3232
3Hatch20%113137
3HatchLurker10%9595
3HatchMuta10%148148
3HatchMutaExpo10%106106
3HatchPoolHydra20%92102
3HatchPoolHydraExpo1225%49145
4HatchBeforeGas10%7171
4PoolSoft10%3838
5PoolSpeed10%7373
6PoolSpeed425%128138
7PoolHydraLingRush7D10%134134
8Pool10%6262
9HatchMain8Pool8Gas10%4747
9Pool10%104104
9PoolGasHatchSpeed8D10%1717
9PoolSpeed2846%33146
9PoolSpeedLing10%7676
Overpool10%7979
OverpoolSpeed2722%0149
ZvP_2HatchHydra20%1454
ZvP_9Hatch9Pool2133%1143
ZvZ_Overpool11Gas60%7108
ZvZ_Overpool9Gas50%867
31 openings15023%
enemygameswins
FastRush -> HeavyRush10%
HeavyRush -> NakedExpand367%
HeavyRush -> Unknown10%
NakedExpand -> FastRush1100%
NakedExpand -> HeavyRush333%
NakedExpand -> NakedExpand838%
NakedExpand -> Turtle714%
NakedExpand -> Unknown297%
Turtle -> FastRush10%
Turtle -> HeavyRush1100%
Turtle -> NakedExpand1164%
Turtle -> Turtle2326%
Turtle -> Unknown6116%
13 openings15023%


Microwave tried a lot of stuff versus McRave—three hatch before pool hydralisk opening in ZvZ? And it worked sometimes? I should try to find some of those games.


#7 steamhammer

openinggameswinsfirstlast
10Hatch9Pool9gas944%68142
10HatchMain9Pool9Gas425%101113
10HatchTurtleHydra10%3939
11HatchTurtleMuta10%108108
12HatchMain10%1515
12Pool2520%0144
12PoolMain520%2492
2HatchLurker20%5483
3HatchHydraBust10%104104
3HatchHydraExpo20%6786
3HatchPoolHydra20%7149
4HatchPoolHydra10%3434
5Pool40%596
5PoolSpeed333%94133
7Pool10%3636
7PoolHydraLingRush7D10%8989
9Hatch9Pool9Gas10%106106
9HatchTurtleHydra10%127127
9PoolGasHatchSpeed8D10%4242
9PoolHatch20%1929
9PoolSpeed3155%9138
9PoolSpeedLing10%117117
9PoolSunken70%195
OverpoolSpeed333%47121
ZvP_11Hatch10Pool450%135145
ZvP_2HatchHydra90%384
ZvP_9Hatch9Pool10%1616
ZvZ_Overgas11Pool2050%6147
ZvZ_Overpool11Gas20%7993
ZvZ_Overpool9Gas425%61148
30 openings15029%
enemygameswins
HeavyRush -> HeavyRush250%
HeavyRush -> Turtle40%
Turtle -> FastRush1100%
Turtle -> HeavyRush1457%
Turtle -> NakedExpand1638%
Turtle -> Turtle9623%
Turtle -> Unknown1729%
7 openings15029%


Microwave recognizes turtle builds in most games. That will be Steamhammer’s OverpoolTurtle opening, which builds as many sunkens at it can afford (2) without delaying mutalisks. It’s tough for bots to handle, because the build is safe on the ground while giving nothing away in the air. Microwave mainly preferred speed zergling openings in response, taking advantage of its superior zergling-on-zergling micro (which is not really a difference in micro as much as in engagement skills).


#8 daqin

openinggameswinsfirstlast
1HatchMuta_Sparkle6290%49148
3HatchLingBust1765%1130
3HatchMuta5990%0149
3HatchMutaExpo956%1248
3HatchPoolHydraExpo10%33
9Pool10%2222
OverpoolLurker10%1919
7 openings15083%
enemygameswins
HeavyRush -> HeavyRush4100%
HeavyRush -> SafeExpand3100%
HeavyRush -> Turtle6100%
HeavyRush -> Unknown2100%
NakedExpand -> Turtle367%
SafeExpand -> NakedExpand1100%
SafeExpand -> SafeExpand2100%
SafeExpand -> Turtle5100%
Turtle -> HeavyRush2085%
Turtle -> NakedExpand16100%
Turtle -> Proxy10%
Turtle -> SafeExpand1662%
Turtle -> Turtle5585%
Turtle -> Unknown1662%
14 openings15083%

#9 zzzkbot

openinggameswinsfirstlast
OverpoolSpeed14795%2149
ZvZ_Overgas11Pool30%03
2 openings15093%
enemygameswins
FastRush -> FastRush9694%
FastRush -> Turtle1100%
FastRush -> Unknown5196%
Turtle -> FastRush20%
4 openings15093%


It looks like ZZZKBot played its 4 pool about 2/3 of the time, and the rest of the time did something that Microwave could not recognize. But no matter, Microwave played overpool nearly all the time, fast enough to stop the rush and, in Microwave’s hands, flexible enough to counter ZZZKBot’s other builds.


#10 ualbertabot

openinggameswinsfirstlast
1HatchMuta_Sparkle20%123143
3HatchHydraExpo10%9191
4PoolSoft5175%0147
5Pool757%44133
5PoolSpeed2268%3146
7PoolHydraLingRush7D10%7979
7PoolHydraRush7D10%5050
8PoolHydraRush8D1050%3485
9PoolGasHatchSpeed8D250%2728
9PoolSunkHatch956%113135
OverpoolSunken1553%102148
ZvP_10Hatch9Pool2756%21120
ZvZ_Overpool11Gas10%8282
13 openings14961%
enemygameswins
Factory -> FastRush250%
Factory -> HeavyRush20%
Factory -> NakedExpand1100%
Factory -> Unknown20%
FastRush -> Factory3100%
FastRush -> FastRush475%
FastRush -> HeavyRush967%
FastRush -> NakedExpand2100%
FastRush -> Unknown367%
HeavyRush -> Factory2100%
HeavyRush -> FastRush2264%
HeavyRush -> HeavyRush4941%
HeavyRush -> NakedExpand9100%
HeavyRush -> Unknown2268%
NakedExpand -> Factory4100%
NakedExpand -> FastRush250%
NakedExpand -> HeavyRush540%
NakedExpand -> NakedExpand3100%
NakedExpand -> Unknown2100%
Unknown -> HeavyRush1100%
20 openings14961%


Compare this to UAlbertaBot’s table. Microwave did not do perfectly against any UAlbertaBot race, and suffered badly against the zealot rush. Microwave had neither a universal build that works against all UAlbertaBot plays (which is how Steamhammer succeeded against UAlbertaBot), nor was it able to adapt its build well enough to counter what it saw (compare ZZZKBot above). Still, it found that 4 pool and 5 pool were not bad! Fight fire with fire.


#11 willyt

openinggameswinsfirstlast
10Hatch9Pool9gas1573%1143
11HatchTurtleLurker617%2674
11HatchTurtleMuta425%2573
12PoolMain333%121149
12PoolMuta2100%6480
2HatchMuta_Sparkle10%3636
3HatchExpo10%7777
3HatchHydra10%5858
3HatchLurker20%57141
3HatchMuta475%76146
3HatchMutaExpo850%56145
9Hatch9Pool9Gas1377%123144
9PoolExpo4078%9147
9PoolGasHatchSpeed8D4100%53142
9PoolHydra10%9191
9PoolLurker1040%5115
9PoolSpeed2181%0148
9PoolSunkHatch425%343
9PoolSunken978%51103
ZvZ_Overgas11Pool10%8484
20 openings15065%
enemygameswins
Factory -> Factory1100%
Factory -> NakedExpand4100%
Factory -> SafeExpand10%
Factory -> Unknown4100%
HeavyRush -> Factory250%
HeavyRush -> HeavyRush4100%
HeavyRush -> NakedExpand5100%
HeavyRush -> SafeExpand425%
HeavyRush -> Unknown250%
NakedExpand -> Factory862%
NakedExpand -> HeavyRush1050%
NakedExpand -> NakedExpand43100%
NakedExpand -> SafeExpand1346%
NakedExpand -> Unknown3123%
SafeExpand -> Factory250%
SafeExpand -> NakedExpand7100%
SafeExpand -> SafeExpand633%
SafeExpand -> Unknown30%
18 openings15065%

#12 ecgberht

openinggameswinsfirstlast
2HatchHydra14788%0149
9PoolLurker367%525
2 openings15088%
enemygameswins
Factory -> Factory1100%
Factory -> NakedExpand8100%
Factory -> SafeExpand10%
Factory -> Unknown6100%
FastRush -> Factory1100%
FastRush -> Unknown2100%
HeavyRush -> Factory4100%
HeavyRush -> FastRush250%
HeavyRush -> HeavyRush1100%
HeavyRush -> NakedExpand4100%
HeavyRush -> SafeExpand1100%
HeavyRush -> Unknown1100%
NakedExpand -> Factory13100%
NakedExpand -> FastRush475%
NakedExpand -> HeavyRush1688%
NakedExpand -> NakedExpand35100%
NakedExpand -> SafeExpand250%
NakedExpand -> Unknown4573%
SafeExpand -> Factory1100%
SafeExpand -> HeavyRush1100%
SafeExpand -> Unknown1100%
21 openings15088%

#13 eggbot

openinggameswinsfirstlast
9Pool150100%0149
1 openings150100%
enemygameswins
Proxy -> Turtle2100%
Turtle -> Proxy15100%
Turtle -> Turtle84100%
Turtle -> Unknown49100%
4 openings150100%


Microwave did not understand how to recognize EggBot’s cannon play, but it knew from training how to win.

AIIDE 2020 - what Microwave learned 1

I’ll cover Microwave over two days because it writes two files for each opponent, a “results” file giving wins/losses for each strategy and a “history” file of more detailed game records. Each summary is bulky in itself, and I don’t want to pile them up. The history file has all the information in the results file and more. In fact, a quick look at Microwave’s code says that it no longer reads the results file at all, but reconstructs its contents from the history file each game. But different presentations of the data have value in themselves; this view makes it easy to read across the columns and see where a given opening was effective.

Today is the results file, the table of strategies versus each opponent. Wow, that’s a lot of opening builds! I count 73, less than half as many as Steamhammer but still too large a number to explore in a tournament of 150 rounds. I think only bots with combinatorial strategies have more. The numbers include not only games played during the tournament, but also Microwave’s prepared data for each opponent, so they add up to more than 150 games versus each opponent. You can compare the overall win rates per opponent to see which ones Microwave was more successful against in training as opposed to in the tournament—it may indicate whether the opponent was updated for the tournament and became stronger than Microwave expected. In general, for stronger opponents training data overestimated Microwave’s success, while for weaker opponents it was the opposite (that is, the training uncovered mistakes that Microwave could then avoid).

total#1 stardust#2 purplewave#3 bananabrain#4 dragon#5 mcrave#7 steamhammer#8 daqin#9 zzzkbot#10 ualbertabot#11 willyt#12 ecgberht#13 eggbot
10Hatch9Pool9gas28-48 37%0-4 0%0-12 0%3-19 14%-0-1 0%4-5 44%---21-7 75%--
10HatchMain9Pool9Gas2-8 20%0-1 0%-0-1 0%-1-3 25%1-3 25%------
10HatchTurtleHydra0-3 0%---0-1 0%0-1 0%0-1 0%------
11HatchTurtleHydra0-11 0%-0-10 0%0-1 0%---------
11HatchTurtleLurker11-17 39%-0-1 0%-0-2 0%0-1 0%0-1 0%---11-12 48%--
11HatchTurtleMuta4-15 21%-0-7 0%0-2 0%--0-1 0%---4-5 44%--
12Hatch0-3 0%--0-2 0%-0-1 0%-------
12HatchMain0-4 0%0-2 0%0-1 0%---0-1 0%------
12Pool35-51 41%0-1 0%---9-17 35%26-33 44%------
12PoolMain25-34 42%0-1 0%-22-21 51%0-1 0%0-2 0%2-7 22%---1-2 33%--
12PoolMuta7-20 26%0-2 0%2-9 18%0-1 0%------5-8 38%--
1HatchMuta_Sparkle56-9 86%--0-1 0%---56-6 90%-0-2 0%---
2HatchHydra161-24 87%0-1 0%0-2 0%----0-1 0%---161-20 89%-
2HatchLurker0-8 0%0-1 0%0-1 0%0-2 0%-0-1 0%0-2 0%----0-1 0%-
2HatchLurkerAllIn0-2 0%0-1 0%0-1 0%----------
2HatchMuta74-59 56%1-14 7%0-1 0%3-9 25%60-33 65%0-1 0%------10-1 91%
2HatchMuta_Sparkle0-1 0%---------0-1 0%--
3Hatch0-5 0%0-3 0%---0-2 0%-------
3HatchExpo0-3 0%0-2 0%--------0-1 0%--
3HatchHydra0-2 0%0-1 0%--------0-1 0%--
3HatchHydraBust0-14 0%0-7 0%0-2 0%0-2 0%-0-1 0%0-1 0%0-1 0%-----
3HatchHydraExpo1-5 17%---1-2 33%-0-2 0%--0-1 0%---
3HatchHydra_BHG0-4 0%0-1 0%0-1 0%0-1 0%-0-1 0%-------
3HatchLingBust36-41 47%2-20 9%-2-6 25%---32-15 68%-----
3HatchLurker0-4 0%----0-1 0%----0-3 0%--
3HatchMuta90-106 46%7-58 11%3-9 25%3-19 14%-0-1 0%-72-14 84%--5-5 50%--
3HatchMutaExpo48-64 43%0-1 0%1-25 4%0-1 0%32-22 59%0-1 0%-9-7 56%--6-7 46%--
3HatchPoolHydra1-24 4%1-15 6%0-2 0%--0-2 0%0-2 0%0-3 0%-----
3HatchPoolHydraExpo3-12 20%0-1 0%-0-1 0%-3-9 25%-0-1 0%-----
4HatchBeforeGas0-10 0%0-5 0%0-1 0%0-3 0%-0-1 0%-------
4HatchPoolHydra4-25 14%0-2 0%0-1 0%2-15 12%2-6 25%-0-1 0%------
4PoolHard3-13 19%0-1 0%1-7 12%2-4 33%------0-1 0%--
4PoolSoft61-44 58%0-3 0%0-2 0%0-2 0%7-14 33%0-3 0%---54-17 76%0-3 0%--
5HatchPoolHydra5-28 15%2-26 7%--3-2 60%--------
5Pool7-17 29%0-2 0%---0-1 0%3-10 23%0-1 0%-4-3 57%---
5PoolSpeed29-18 62%---0-1 0%0-1 0%1-2 33%--28-14 67%---
6Pool0-6 0%0-2 0%0-1 0%0-2 0%--0-1 0%------
6PoolSpeed4-14 22%0-4 0%3-7 30%--1-3 25%-------
7Pool0-6 0%0-1 0%0-3 0%0-1 0%--0-1 0%------
7PoolHydraLingRush7D0-5 0%-0-1 0%-0-1 0%0-1 0%0-1 0%--0-1 0%---
7PoolHydraRush7D0-2 0%------0-1 0%-0-1 0%---
8Pool0-2 0%--0-1 0%-0-1 0%-------
8PoolHydraRush8D5-8 38%-0-2 0%0-1 0%-----5-5 50%---
9Hatch9Pool9Gas10-12 45%0-1 0%0-6 0%0-1 0%--0-1 0%---10-3 77%--
9HatchMain8Pool8Gas2-8 20%0-1 0%2-6 25%--0-1 0%-------
9HatchTurtleHydra0-3 0%0-1 0%0-1 0%---0-1 0%------
9Pool183-11 94%0-4 0%0-3 0%--0-1 0%-0-1 0%--0-1 0%0-1 0%183-0 100%
9PoolExpo31-9 78%---------31-9 78%--
9PoolGasHatchSpeed7D18-19 49%0-1 0%18-18 50%----------
9PoolGasHatchSpeed8D21-29 42%0-4 0%-12-6 67%-0-2 0%0-1 0%0-3 0%-1-1 50%8-12 40%--
9PoolHatch0-3 0%-----0-2 0%-0-1 0%----
9PoolHatchGasSpeed7D11-8 58%0-1 0%11-6 65%0-1 0%---------
9PoolHatchGasSpeed8D36-50 42%1-16 6%5-6 45%30-24 56%0-1 0%0-2 0%0-1 0%------
9PoolHydra0-3 0%0-1 0%-----0-1 0%--0-1 0%--
9PoolLurker15-14 52%0-2 0%--------6-8 43%9-4 69%-
9PoolSpeed68-71 49%0-3 0%1-4 20%0-4 0%-13-16 45%24-21 53%0-2 0%--30-21 59%--
9PoolSpeedLing2-22 8%0-3 0%0-3 0%2-7 22%-0-3 0%0-2 0%0-3 0%--0-1 0%--
9PoolSunkHatch6-12 33%0-2 0%0-1 0%0-1 0%0-1 0%----5-4 56%1-3 25%--
9PoolSunken9-15 38%0-1 0%0-1 0%--0-1 0%2-10 17%---7-2 78%--
Overpool0-4 0%0-1 0%-0-1 0%0-1 0%0-1 0%-------
OverpoolLurker0-4 0%0-1 0%--0-1 0%--0-1 0%--0-1 0%--
OverpoolSpeed187-60 76%0-1 0%1-6 14%0-3 0%-27-37 42%1-3 25%-158-9 95%-0-1 0%--
OverpoolSunken8-7 53%--------8-7 53%---
OverpoolTurtle1-13 7%0-1 0%1-11 8%-0-1 0%--------
ZvP_10Hatch9Pool17-30 36%0-5 0%0-8 0%2-5 29%-----15-12 56%---
ZvP_11Hatch10Pool2-12 14%0-2 0%0-7 0%0-1 0%--2-2 50%------
ZvP_2HatchHydra2-28 7%0-3 0%0-9 0%0-4 0%-0-2 0%2-10 17%------
ZvP_9Hatch9Pool13-34 28%0-2 0%0-10 0%0-1 0%-13-18 42%0-1 0%0-2 0%-----
ZvZ_Overgas11Pool30-24 56%0-3 0%----13-15 46%-17-5 77%-0-1 0%--
ZvZ_Overgas9Pool0-5 0%0-2 0%-0-1 0%--0-2 0%------
ZvZ_Overpool11Gas5-21 19%0-2 0%-0-2 0%-5-13 28%0-3 0%--0-1 0%---
ZvZ_Overpool9Gas2-13 13%0-2 0%0-1 0%--1-7 12%1-3 25%------
ZvZ_OverpoolTurtle0-1 0%0-1 0%-----------
total-  51%14-250  5%49-216  18%83-180  32%105-90  54%73-161  31%82-153  35%169-63  73%175-15  92%120-69  63%146-120  55%170-26  87%193-1  99%

Microwave explored widely against top opponents, and concentrated efficiently on a few winning openings against weaker ones. On the other hand, although there is a flag in the configuration file named PlayGoodStrategiesFirst (turned on), Microwave seems to have little idea which strategies are most likely to work. Versus DaQin, 1 hatch mutalisk and 3 hatch mutalisk are successful, but the most natural 2 hatch muta is never tried. Of course that’s a widespread weakness among bots.

The 3 hatch muta strategies were relatively successful overall. That’s interesting.

zergs versus Krasi0

These two games were played a few days ago, after Krasio was updated. Krasio apparently forgets its learned data on update, and against some opponents takes a few games to remember how to win again.

Steamhammer-Krasio

In Steamhammer-Krasio on Moon Glaive, Steamhammer started aggressively with overpool (overlord on 9 drones then spawning pool), and the early zerglings prompted Krasio to play defensively with a bunker at its ramp. But sneaky sneaky Steamhammer made few lings and instead added a second hatchery and teched to lurkers. Despite some clumsy zerg play, the lurkers delayed terran from expanding until around 11 minutes into the game. In the picture, lurkers are about to deny Krasio’s attempt to take its natural.

lurkers deny expansion

Krasio did at last successfully double-expand, but by then zerg was ahead and was soon able to destroy the terran third.

breaking a terran base

The next terran expansion was too far away to defend, and the rest of the game was zerg all the way.

Microwave-Krasio

Microwave-Krasio on Icarus, Microwave opened with a hatchery on 12 and went for mutalisks. The early mutas made more losses than gains, but notice the strong zerg economy. Microwave did not fall behind in supply for the whole game—a sign that Krasio was doing something wrong strategically, since the terran unit control was clearly superior.

probe defeat

In the middle game Microwave switched to ground units, overrunning Krasio’s third base in the lower left. For the late game it suddenly switched back into mutalisks and amassed a sky-darkening cloud. Mutas erased Krasio’s second attempt at a third base, in the bottom right, and then it was too late for terran.

probe defeat

comparison

Despite the different unit mixes and play styles, the games are strategically similar. In both, Krasio did not play its best opening and fell behind early. The zergs were able to roll up outlying bases with relative ease because terran did not have the mobility to defend them, and then were so far ahead that they could win by brute force.

Krasio wins when it starts well, of course, and it usually starts well once it has a little experience. The top zergs have gained enough skill to be a threat, though. Both have adequate macro and know how to choose a poorly defended expansion to attack, skills that many bots lack. In the last 7 days, BASIL gives Steamhammer 4-4 versus Krasio, and Microwave 2-5.

When you can’t defend your own expansions, you need to keep your opponent off-balance instead. It’s an advanced skill, and even Krasio does not have it. Against the lurkers, terran could have tried vultures, or drops, or perhaps wraiths—harassment that lurkers will be poor at responding to. Against the mutalisks, terran had enough valkyries to be safe, but seemed to deploy only 1 or 2 at a time in any given fight. Also, since terran was behind, the goliaths were not the best unit choice because they slowed down army movements. Without them, a larger marine and medic army would have been able to maneuver rapidly in defense, or cross the map to threaten zerg bases. I think bots are starting to play well enough that this kind of strategy knowledge will help.

AIIDE 2019 - what Microwave did

Here’s data from Microwave’s history files, using the same script as for BananaBrain with a little customization. Unlike Microwave’s learning files, which deliberately omit data and include information from pre-learning, the history files tell what Microwave actually did during the games. Microwave didn’t record information about the opponent’s strategy, so that table is left out. That made it look a little sparse, so I added columns giving the first and last games when the opening was tried, where the first game in the history file is game 0. We can see things like when a winning opening was found, and whether it kept winning. If there are fewer than 100 games recorded for an opponent because Microwave crashed, then the game numbers generally do not align with the tournament round numbers.

Against difficult opponents, Microwave experimented widely. Against some opponents that Microwave pre-trained against, it played whatever came out of pre-training. So I don’t have much to say about opponents in the top half of the post. But toward the bottom I’ve made some comments. Especially see the note to AITP.


#1 locutus

openinggameswinsfirstlast
10Hatch9Pool9gas812%152
2HatchHydra70%053
2HatchLurker729%8389
2HatchLurkerAllIn20%6390
2HatchMuta1225%356
3HatchHydraBust30%1057
3HatchLingBust30%3891
3HatchPoolHydra50%1692
4HatchBeforeGas40%2793
4PoolHard30%1558
4PoolSoft40%2159
5Pool20%3660
5PoolSpeed30%4194
6Pool30%4295
6PoolSpeed30%4396
7Pool20%3761
8Pool30%4497
9Pool922%4578
9PoolLurker20%4679
9PoolSpeed30%1162
9PoolSpeedLing20%4780
ZvP_10Hatch9Pool40%1781
ZvZ_Overpool11Gas40%1882
23 openings988%

#2 purplewave

openinggameswinsfirstlast
10Hatch9Pool9gas119%2093
2HatchHydra60%1487
2HatchMuta50%3594
3HatchHydraBust90%395
3HatchLingBust147%074
4PoolHard10%8080
4PoolSoft714%3075
5Pool812%1590
5PoolSpeed10%8181
6Pool10%8282
6PoolSpeed10%8383
7Pool80%1776
8Pool40%4291
9Pool10%8484
9PoolSpeed30%5292
9PoolSpeedLing1421%477
ZvP_10Hatch9Pool10%8585
ZvZ_Overpool11Gas10%8686
18 openings967%

#3 bananabrain

openinggameswinsfirstlast
10Hatch9Pool9gas10%5454
2HatchHydra10%5151
2HatchMuta10%5252
3HatchLingBust3749%092
4PoolHard30%2963
4PoolSoft40%2867
5Pool1145%2276
5PoolSpeed729%1978
6Pool10%6262
6PoolSpeed520%2068
7Pool10%5555
8Pool30%2469
9Pool743%5670
9PoolSpeed10%5353
9PoolSpeedLing30%2571
ZvZ_Overgas9Pool40%2677
ZvZ_Overpool11Gas30%3579
17 openings9331%

#4 daqin

openinggameswinsfirstlast
10Hatch9Pool9gas1118%277
2HatchHydra40%1878
2HatchLurker40%2379
2HatchMuta1323%1789
3HatchHydraBust30%2051
3HatchLingBust3139%1676
3HatchPoolHydra30%2552
4PoolSoft30%653
5Pool30%754
7Pool30%1155
9Pool30%156
9PoolSpeed30%1057
9PoolSpeedLing30%058
ZvP_10Hatch9Pool30%559
14 openings9019%

#5 steamhammer

openinggameswinsfirstlast
9PoolSpeed10075%099
1 openings10075%

#6 zzzkbot

openinggameswinsfirstlast
9PoolHatch10%00
ZvZ_Overgas11Pool7080%170
2 openings7179%


Why are only 71 games recorded? According to the official results, Microwave crashed in 56 games throughout the tournament, and 29 of those crashes happened against ZZZKBot. Microwave recorded every game in which it did not crash. It’s a debugging opportunity. :-/


#8 iron

openinggameswinsfirstlast
10Hatch9Pool9gas20%5382
2HatchHydra10%8383
2HatchLurkerAllIn20%6388
2HatchMuta119%072
3HatchHydraBust1533%577
3HatchHydraExpo10%8484
3HatchPoolHydra10%8585
4HatchBeforeGas40%1889
4PoolHard60%1378
4PoolSoft714%1171
5Pool10%8686
5PoolSpeed60%1479
6Pool20%5487
6PoolSpeed520%3592
7Pool1030%1968
8Pool714%1780
9Pool812%195
9PoolSpeedLing40%2196
OverpoolTurtle40%2281
19 openings9713%

#9 xiaoyi

openinggameswinsfirstlast
10Hatch9Pool9gas20%4247
2HatchLurker10%4848
2HatchMuta20%4546
4PoolSoft3863%138
5Pool250%039
7Pool5176%4999
9Pool250%4041
9PoolSpeedLing20%4344
8 openings10065%


As soon as Microwave found that 7 pool worked, it played 7 pool exclusively.


#10 mcrave

openinggameswinsfirstlast
2HatchMuta4062%079
3HatchHydraBust1392%8698
4PoolHard10%8080
4PoolSoft4062%140
9Pool10%8585
ZvZ_Overgas11Pool450%8184
6 openings9965%


Microwave was late to discover the success of the hydra bust opening. That’s why it was played so little. The example shows the importance of finding good ideas as early as possible. I am adding smarts to Steamhammer to make it better at finding the good tries fast.

It’s interesting that 2HatchMuta and 4PoolSoft have the same numbers, but were given up on at different times.


#11 ualbertabot

openinggameswinsfirstlast
4PoolSoft10082%099
1 openings10082%


The choice against UAlbertaBot was determined by pre-training. From scratch, I expect Microwave would have tried a wider variety.


#12 aitp

openinggameswinsfirstlast
9PoolSpeedLing10093%099
1 openings10093%


If the first try wins, keep it up. What if Microwave had an opening that would have won more than 93%? The theory is that, above some winning rate, the risk of losing by trying alternatives is higher than the risk of losing by sticking with a known good opening. But what winning rate is high enough to stick with? It depends on how much you respect your opponents. If you expect to win nearly every game, like Locutus, maybe you should switch to an alternative as soon as you lose a single game. If you expect to finish near the bottom, maybe you should stick with a strategy that wins 50%.

But more: How much do you respect each opponent? Maybe bots should have a “contempt factor” like chess programs may use to decide whether to aim for a draw: Accept a low winning rate strategy against Locutus, but demand 95% wins against the unknown who you’ve decided is a weak newbie. I would rather call it a respect factor! In a UCB algorithm, a level of respect is implicitly encoded in the exploration rate constant. Does any bot already have a respect factor for specific opponents?


#13 bunkerboxer

openinggameswinsfirstlast
5Pool10099%099
1 openings10099%


Apparently the initial choice against an unknown is random.

AIIDE 2019 - what Microwave learned

Microwave keeps its result files in the same format as UAlbertaBot: A file for each opponent, and in the file a list of strategies tried, each with win and loss counts. But Microwave independently restricts the win count and the loss count to not exceed 10. This amounts to intentionally forgetting older history when there has been a lot of it. The advantage is that Microwave adapts its strategies more quickly if the opponent shifts its play. The disadvantage, of course, is that information is thrown away. As a side effect, the numbers in the “total” and “overall” cells of my tables are not too informative.

This post looks at Microwave’s result_*.txt files for each opponent, since it’s what I’ve done before and I already had a script to parse them. This year Microwave also kept history_*.txt files with a record of each game. I could get a fuller picture of what Microwave did from the history files. I’m not sure whether Microwave uses the history files to make decisions. Still, if this is about “what Microwave learned,” then the result files are what Microwave learned, at least in large part.

Microwave has pre-learned data files for a number of opponents. Data from those files survived to be included in these tables. In other words, the tables here include not only tournament games, but in some cases preparation games played before the tournament.

Microwave’s author MicroDK commented that Microwave might have a bug in keeping its learning files, since the numbers did not always agree with official tournament results. As explained yesterday for UAlbertaBot, the player cannot always know what the tournament manager decides is the outcome of the game. Between that and the pre-learned data, I see reason to doubt that Microwave had a bug. But I didn’t look into details.

This year Microwave recorded a total of 32 strategies, compared to 19 last year. I tried to keep the tables tractable by breaking them down by opponent race, since not all strategies were tried against all races. Nevertheless, prepare to scroll right!

terran

It seems that most of Microwave’s openings worked about equally poorly against Iron, which is interesting and hard for me to explain. 2 hatch muta equals 3 hatch hydra bust equals 7 pool—among others? XiaoYi was vulnerable to rushes, and Microwave settled on 7 pool. After seeing the learning files of only 2 bots, I’m already getting a picture of XiaoYi as strong but apparently not robust against tricky strategies; UAlbertaBot chose DT rush against it. AITP and BunkerBoxeR were easy opponents and seem to have been vulnerable to the first thing Microwave tried, so that zerg never felt the need to vary.

The tournament had 100 rounds. Totals of more than 100 games versus an opponent, as versus Iron here, are a sign that pre-learned data was carried over. Microwave did not have time during the competition to try this many strategies so many times each.

#bottotal10Hatch9Pool9gas2HatchHydra2HatchLurker2HatchLurkerAllIn2HatchMuta3HatchHydraBust3HatchHydraExpo3HatchLingBust3HatchPoolHydra4HatchBeforeGas4PoolHard4PoolSoft5Pool5PoolSpeed6Pool6PoolSpeed7Pool8Pool9Pool9PoolLurker9PoolSpeed9PoolSpeedLingOverpoolTurtleZvZ_Overpool11Gas
8iron63-175  26%1-5 17%1-5 17%1-5 17%2-7 22%5-10 33%5-10 33%1-5 17%0-5 0%1-5 17%2-7 22%5-10 33%5-10 33%1-5 17%5-10 33%1-5 17%3-8 27%5-10 33%5-10 33%3-8 27%4-10 29%2-7 22%2-7 22%3-8 27%0-3 0%
9xiaoyi22-13  63%0-2 0%-0-1 0%-0-2 0%------10-4 71%1-1 50%---10-0 100%-1-1 50%--0-2 0%--
12aitp10-0  100%---------------------10-0 100%--
13bunkerboxer10-0  100%------------10-0 100%-----------
overall-  36%1-7 12%1-5 17%1-6 14%2-7 22%5-12 29%5-10 33%1-5 17%0-5 0%1-5 17%2-7 22%5-10 33%15-14 52%12-6 67%5-10 33%1-5 17%3-8 27%15-10 60%5-10 33%4-9 31%4-10 29%2-7 22%12-9 57%3-8 27%0-3 0%

protoss

Aha, Bananabrain had a weakness against Microwave’s 3 hatch zergling bust! I’ve seen the same on BASIL, e.g. Microwave-BananaBrain on Empire of the Sun, where BananaBrain was negligent in setting up the defense of its natural. In general, Bananabrain showed sensitivity to the opponent’s strategy; the other top protoss bots were more consistent.

#bottotal10Hatch9Pool9gas2HatchHydra2HatchLurker2HatchLurkerAllIn2HatchMuta3HatchHydraBust3HatchHydraExpo3HatchLingBust3HatchPoolHydra4HatchBeforeGas4PoolHard4PoolSoft5Pool5PoolSpeed6Pool6PoolSpeed7Pool8Pool9Pool9PoolLurker9PoolSpeed9PoolSpeedLingZvP_10Hatch9PoolZvZ_Overgas11PoolZvZ_Overgas9PoolZvZ_Overpool11Gas
1locutus0-202  0%0-10 0%0-10 0%0-10 0%0-8 0%0-10 0%0-10 0%-0-8 0%0-8 0%0-8 0%0-10 0%0-10 0%0-10 0%0-8 0%0-8 0%0-8 0%0-10 0%0-8 0%0-10 0%0-7 0%0-10 0%0-7 0%0-7 0%--0-7 0%
2purplewave26-154  14%2-10 17%2-9 18%0-6 0%0-5 0%2-10 17%2-10 17%0-4 0%3-10 23%0-4 0%0-4 0%0-3 0%3-10 23%3-10 23%0-3 0%0-3 0%0-3 0%3-10 23%2-9 18%0-3 0%0-5 0%1-7 12%3-10 23%0-3 0%--0-3 0%
3bananabrain85-130  40%1-3 25%2-4 33%2-5 29%1-5 17%2-4 33%0-2 0%1-4 20%10-4 71%1-4 20%0-5 0%6-7 46%10-9 53%10-9 53%5-7 42%3-5 38%4-6 40%1-3 25%4-6 40%4-6 40%0-5 0%2-4 33%4-6 40%0-2 0%-7-8 47%5-7 42%
4daqin8-64  11%2-9 18%0-4 0%0-4 0%-3-10 23%0-3 0%-3-10 23%0-3 0%--0-3 0%0-3 0%---0-3 0%-0-3 0%-0-3 0%0-3 0%0-3 0%---
10mcrave95-78  55%2-2 50%2-3 40%5-3 62%2-3 40%10-4 71%10-0 100%0-4 0%2-3 40%1-2 33%1-4 20%3-2 60%10-4 71%1-4 20%2-3 40%5-4 56%10-5 67%4-5 44%2-3 40%7-4 64%0-3 0%3-3 50%3-2 60%2-2 50%8-4 67%-0-2 0%
overall-  25%7-34 17%6-30 17%7-28 20%3-21 12%17-38 31%12-25 32%1-12 8%18-35 34%2-21 9%1-21 5%9-22 29%23-36 39%14-36 28%7-21 25%8-20 29%14-22 39%8-31 21%8-26 24%11-26 30%0-20 0%6-27 18%10-28 26%2-17 11%8-4 67%7-8 47%5-19 21%

zerg

Steamhammer and ZZZKBot are opposite opponents, from Microwave’s point of view. Whatever worked against one did not work against the other. Most of the numbers in Steamhammer’s row, by the way, are from preparation games. I see the same numbers in the pre-learned data file. According to the history file, Microwave played its 9 pool speed opening in every game.

#bottotal12Pool4PoolHard4PoolSoft5Pool5PoolSpeed6Pool6PoolSpeed7Pool8Pool9HatchMain8Pool8Gas9PoolHatch9PoolSpeed9PoolSunkenOverpoolSpeedOverpoolTurtleZvZ_Overgas11PoolZvZ_Overpool11Gas
5steamhammer26-16  62%2-2 50%--1-2 33%-----2-2 50%1-2 33%10-0 100%1-2 33%4-3 57%--5-3 62%
6zzzkbot67-70  49%0-2 0%1-5 17%0-2 0%10-7 59%0-2 0%0-2 0%5-10 33%1-5 17%7-10 41%10-7 59%10-4 71%0-2 0%0-2 0%3-4 43%10-4 71%10-0 100%0-2 0%
overall-  52%2-4 33%1-5 17%0-2 0%11-9 55%0-2 0%0-2 0%5-10 33%1-5 17%7-10 41%12-9 57%11-6 65%10-2 83%1-4 20%7-7 50%10-4 71%10-0 100%5-5 50%

random

UAlbertaBot was the only random participant. It’s striking how similar openings can have different outcomes, though the numbers are noisy because the game counts intentionally limited and an opening that makes a bad first impression may not be repeated.

#bottotal4PoolHard4PoolSoft5Pool5PoolSpeed6Pool6PoolSpeed7Pool8Pool9PoolSpeedLing
11ualbertabot34-21  62%5-4 56%10-0 100%4-4 50%10-3 77%4-3 57%1-2 33%0-2 0%0-2 0%0-1 0%
overall-  62%5-4 56%10-0 100%4-4 50%10-3 77%4-3 57%1-2 33%0-2 0%0-2 0%0-1 0%

Steamhammer submitted to AIIDE

I have submitted Steamhammer 2.3.4 for AIIDE 2019, a day ahead of the deadline. The latest changes help in specific situations: Better decisions against dark templar, less time wasted when the defiler wants to consume, more accurate strategy choices in ZvZ when the opponent goes hydras, that kind of thing.

Overall, I’m pleased with this version. It is far more solid than any previous tournament version of Steamhammer. There are a couple of game-losing bugs that I did not solve, but they are rare. There are rough edges, but fewer than before. In last year’s AIIDE, Steamhammer was version 2.0, with many new features including unit clustering and defilers—and they were buggy. This year it is version 2.3.4, and the version number is deserved: The strength improvements over 2.0 are due to bug fixes and refinements, not new features.

This means, of course, that it is time to get back to work on version 3.0, with new strategy adaptation features. Add bugs for victory!

Before long I’ll either upload version 2.3.4 on SSCAIT as zerg only, or I’ll come out with version 2.3.5 that can play as any race.

By the way, I counted the number of zerg openings. There are now 142.

Steamhammer-Microwave rivalry

Microwave was forked from an early version of Steamhammer, and the two have been struggling against each other ever since.

• AIIDE 2017 - Microwave 70.86%, Steamhammer 64.14%
• SSCAIT 2017 - Steamhammer 83.12%, Microwave 79.87%
• AIIDE 2018 - Steamhammer 54.97%, Microwave 54.16%
• SSCAIT 2018 - Microwave 74.65%, Steamhammer 72.54%

The two bots have different strengths, but most results have been close. Which will edge out the other this time? On BASIL, Steamhammer and Microwave have been trading the top zerg position back and forth. Microwave has an advantage in head-to-head fights, but I think Steamhammer has a slight edge overall. We’ll see how the tournament goes!

Randomhammer (Z)-Microwave is a ZvZ with devourers and defilers. Microwave wins the majority of games, but Steamhammer has better hive tech skills.

AIIDE 2018 - what Microwave learned

Microwave uses UCB and keeps its learning data in the same file format as UAlbertaBot, one file per opponent listing on each line an opening, a count of wins, and a count of losses. It’s a simple format that is also used outside the UAlbertaBot family. Microwave adds a twist: It does not allow the count of wins or the count of losses to exceed 10. I’m not sure what the exact update rule is without reading the code, but the effect is that only the more recent game results are remembered. It’s appropriate if the enemy is expected to be learning too, and to change its strategy rapidly so that Microwave has to keep adapting.

Microwave plays different strategies against each race. Against Terran it has 7, against Protoss and Zerg 8, and against random 6. UAlbertaBot was the only random opponent. The strategies partly overlap. For example, 10Hatch9Pool9gas is played against both terran and protoss, while 9HatchMain8Pool8Gas is played only against zerg. The table has big blank spaces full of unplayed strategies. Maybe I should have sorted it by race, instead of by rank?

#bottotal10Hatch9Pool9gas12Pool3HatchPoolHydra5HatchGasHydra5Pool9HatchMain8Pool8Gas9Pool9PoolExpo9PoolHatch9PoolLurker9PoolSpeed9PoolSpeedLing9PoolSunkenOverpoolOverpoolSpeedZvT_12HatchHydraZvT_12HatchLurkerZvT_12HatchMutaZvZ_Overpool11Gas
#1saida0-70  0%0-10 0%---0-10 0%-0-10 0%--0-10 0%-----0-10 0%0-10 0%0-10 0%-
#2cherrypi0-80  0%-0-10 0%--0-10 0%0-10 0%--0-10 0%-0-10 0%-0-10 0%-0-10 0%---0-10 0%
#3cse0-80  0%0-10 0%-0-10 0%0-10 0%0-10 0%------0-10 0%---0-10 0%0-10 0%0-10 0%-
#4bluebluesky0-80  0%0-10 0%-0-10 0%0-10 0%0-10 0%------0-10 0%---0-10 0%0-10 0%0-10 0%-
#5locutus1-80  1%1-10 9%-0-10 0%0-10 0%0-10 0%------0-10 0%---0-10 0%0-10 0%0-10 0%-
#6isamind0-80  0%0-10 0%-0-10 0%0-10 0%0-10 0%------0-10 0%---0-10 0%0-10 0%0-10 0%-
#7daqin0-80  0%0-10 0%-0-10 0%0-10 0%0-10 0%------0-10 0%---0-10 0%0-10 0%0-10 0%-
#8mcrave7-68  9%1-10 9%-1-10 9%0-5 0%1-8 11%------1-10 9%---1-10 9%0-5 0%2-10 17%-
#9iron0-70  0%0-10 0%---0-10 0%-0-10 0%--0-10 0%-----0-10 0%0-10 0%0-10 0%-
#10zzzkbot24-37  39%-5-8 38%--0-2 0%9-10 47%--9-10 47%-0-1 0%-0-1 0%-0-1 0%---1-4 20%
#11steamhammer57-15  79%-10-2 83%--6-7 46%1-2 33%--10-2 83%-10-0 100%-0-1 0%-10-1 91%---10-0 100%
#13lastorder24-21  53%-0-1 0%--10-2 83%0-1 0%--2-4 33%-0-1 0%-10-6 62%-1-3 25%---1-3 25%
#14tyr15-13  54%2-3 40%-0-1 0%3-4 43%10-1 91%------0-1 0%---0-1 0%0-1 0%0-1 0%-
#15metabot41-13  76%10-2 83%-8-3 73%0-1 0%0-1 0%------10-1 91%---1-2 33%2-3 40%10-0 100%-
#16letabot26-18  59%4-5 44%---1-2 33%-10-0 100%--8-5 62%-----0-1 0%0-1 0%3-4 43%-
#17arrakhammer27-22  55%-7-8 47%--10-0 100%0-1 0%--0-1 0%-3-4 43%-5-4 56%-2-3 40%---0-1 0%
#18ecgberht38-18  68%0-1 0%---10-0 100%-0-1 0%--1-2 33%-----10-7 59%10-0 100%7-7 50%-
#19ualbertabot50-10  83%----10-1 91%-0-1 0%10-0 100%10-4 71%---10-4 71%10-0 100%-----
#20ximp27-15  64%2-3 40%-0-1 0%0-1 0%0-1 0%------10-0 100%---5-6 45%0-1 0%10-2 83%-
#21cdbot46-13  78%-10-0 100%--0-1 0%1-2 33%--4-5 44%-10-3 77%-1-2 33%-10-0 100%---10-0 100%
#22aiur48-15  76%1-2 33%-10-1 91%7-5 58%0-1 0%------9-3 75%---1-2 33%10-1 91%10-0 100%-
#23killall40-5  89%-10-0 100%--0-1 0%10-0 100%--0-1 0%-10-0 100%-10-1 91%-0-1 0%---0-1 0%
#24willyt34-10  77%4-5 44%---0-1 0%-0-1 0%--0-1 0%-----10-2 83%10-0 100%10-0 100%-
#25ailien28-32  47%-9-10 47%--1-4 20%0-1 0%--3-6 33%-0-1 0%-10-2 83%-5-7 42%---0-1 0%
#26cunybot67-1  99%-10-0 100%--10-0 100%0-1 0%--10-0 100%-10-0 100%-7-0 100%-10-0 100%---10-0 100%
#27hellbot74-0  100%10-0 100%-10-0 100%6-0 100%10-0 100%------8-0 100%---10-0 100%10-0 100%10-0 100%-
overall-  42%35-101 26%61-39 61%29-66 31%16-66 20%79-113 41%21-28 43%10-23 30%10-0 100%48-43 53%9-28 24%43-20 68%38-65 37%53-31 63%10-0 100%38-26 59%38-101 27%42-82 34%62-94 40%32-20 62%

The total column tells how successful Microwave was in recent games against each opponent. You might want to compare the percentages against the overall win rates from the official crosstable; they sometimes vary curiously. When the recorded results were less successful than the total results, it suggests that Microwave may have forgotten too much (though it could be random fluctuation). For example, Microwave scored 80% against LetaBot overall, but 59% in the recent games in this table.

The overall row tells how successful each opening was in recent games. Every opening was successful against some opponents, so there were no useless strategies. The body of the table, from #10 ZZZKBot and down, is full of strong contrasts, meaning that there was a big difference between the successful and unsuccessful openings against each opponent. That suggests that learning must have been useful.