archive by month
Skip to content

new bot JJJJJ

I got tired of analyzin’ stuff and let myself get distracted by other projects.

But today we have a new bot! Of course I’m pleased with any bot that names itself after copies of me, it shows good taste. Zerg JJJJJ (also on BASIL) describes itself as “Based on Dave Churchill’s StarterBot! One week project -- 9 pool build order, Hatchery count based build/attack decisions”.

JJJJJ opens with 9 pool, 3 pairs of zerglings, extractor trick, second hatchery and soon a third hatchery. It makes a lot of drones, adds hatcheries as needed, spawns no combat units other than zerglings, and after a while gets gas and starts slowly upgrading stuff. It attacks from time to time and otherwise issues no orders to its zerglings, which sit around the base and/or get lured by nearby enemies. It never expands. It has no combat sim. Though it remembers where it has seen enemies, it sends zerglings randomly around the map when in the dark, without systematic scouting. It defends itself with a sunken (not badly placed) and a spore (not as well placed).

For all that, it plays surprisingly well. The mass of zerglings gets scary for lower-level and even mid-level bot opponents. In checking out games, I saw it beat much more complex bots, like Slater.

It also has strong macro for a bot that never expands. It keeps its minerals slow, spending all its income. It knows how to long-distance mine, though it sometimes does so when it shouldn’t. It collects more gas than it needs, too.

Excellent quick project! Will it continue?

AIIDE 2021 - one hour games

The second game I found where both bots believed they had lost was a game that went to the full 60 minutes. The cause is not the same as the frame timeout issue.

The official results have 22 games that went the full hour and had to be adjudicated on points. (Click the “duration” column twice to sort the longest games first.) In most cases, I’m not able to check whether both bots recorded the result correctly, because I can only check bots that have history files and the files are complete. All but a few of the hour-long games have a participant whose recorded value I can’t check.

But I did find several games where the official winner recorded that it had lost. Initial indications are that if the game runs the full hour, both bots are told that they lost, at least sometimes. I only watched one of the long replays, and in that game the official results were correct and winner WillyT believed it had lost to Stardust. At the end of the hour, WillyT’s tanks were clearing protoss bases against no resistance, but had not quite finished the job.

I’ll check a little more tomorrow and inform Dave Churchill.

AIIDE 2021 - what UAlbertaBot learned

I haven’t found time to investigate the second instance of “we both lost”. After this post, I’m nearly done with summarizing and aligning the bot learning files. The only bot I haven’t gotten to is FreshMeat, which has a unique learning system, not similar to any other bot’s. FreshMeat’s code is remarkably low-level, and deciphering the learning algorithm and the meaning of the learning files will take time.

In any case, here is UAlbertaBot’s learned data. UAlbertaBot keeps counts of wins and losses per strategy, not full history files, so its data can be laid out in a single table.

openingtotal#1
stardus
#2
bananab
#3
dragon
#4
steamha
#5
mcrave
#6
willyt
#7
microwa
#8
daqin
#9
freshme
total-  26%2-155  1%8-147  5%27-130  17%13-139  9%98-57  63%48-105  31%67-88  43%32-124  21%68-81  46%
4RaxMarines58-93 38%0-15 0%0-11 0%3-15 17%1-17 6%40-2 95%2-9 18%0-5 0%0-10 0%12-9 57%
MarineRush18-97 16%0-15 0%1-15 6%0-6 0%0-11 0%2-3 40%0-8 0%13-25 34%0-10 0%2-4 33%
TankPush12-102 11%0-15 0%0-11 0%0-6 0%0-11 0%1-2 33%5-25 17%0-5 0%3-23 12%3-4 43%
VultureRush15-90 14%0-14 0%0-10 0%5-19 21%0-11 0%0-1 0%0-8 0%1-9 10%0-10 0%9-8 53%
DTRush41-85 33%2-18 10%0-11 0%10-26 28%0-8 0%0-2 0%0-3 0%-0-4 0%29-13 69%
DragoonRush10-62 14%0-10 0%0-11 0%0-6 0%1-12 8%0-2 0%0-3 0%-7-14 33%2-4 33%
ZealotRush104-150 41%0-10 0%4-28 12%0-6 0%10-16 38%24-24 50%19-25 43%35-15 70%12-21 36%0-5 0%
2HatchHydra6-72 8%0-15 0%0-10 0%6-20 23%0-12 0%-0-2 0%0-3 0%0-4 0%0-6 0%
3HatchMuta1-61 2%0-15 0%0-10 0%0-6 0%0-12 0%-0-2 0%0-3 0%0-4 0%1-9 10%
3HatchScourge0-56 0%0-14 0%0-9 0%0-6 0%0-12 0%-0-2 0%0-3 0%0-4 0%0-6 0%
ZerglingRush98-158 38%0-14 0%3-21 12%3-14 18%1-17 6%31-21 60%22-18 55%18-20 47%10-20 33%10-13 43%

Looking down the total column on the left, there is one big surprise. UAlbertaBot has a primary strategy for each race it may roll, and switches away only if the primary strategy turns out poorly. In past years when I analyzed UAlbertaBot’s data (2018, 2019, and 2020), UAlbertaBot’s primary strategy with every race was also its best strategy overall when it rolled that race. This year, the primary terran strategy MarineRush was no longer best; it was far exceeded by 4RaxMarines, with better results against 5 opponents and equal zero against 2 more. 4RaxMarines does not mean build four barracks to train marines, it means build a barracks at supply 4: It is a fast rush. Here is the build order from the config file.

"Terran_4RaxMarines" : { "Race" : "Terran", "OpeningBuildOrder" : ["Barracks", "SCV", "SCV", "Marine", "Supply Depot", "Marine", "SCV", "Marine", "SCV", "Marine", "SCV", "Marine", "Barracks", "Marine", "Marine", "Marine"]}

I guess opponents were less prepared for the fast marine rush. McRave in particular was unable to cope. I looked through BASIL’s build order page and did not see it; I guess no bot plays 4 rax regularly. The version of UAlbertaBot on BASIL is different from the one in the tournament. The BASIL UAlbertaBot does play the slower marine rush, so its opponents have gotten used to it.

The 3HatchScourge build was useless. The build was specially designed to give UAlbertaBot a chance against XIMP, and apparently has no other value. Curiously, 3HatchMuta was nearly as helpless, with only 1 win, against FreshMeat. That win was the only win as zerg against FreshMeat, though, so chalk up one advantage.

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 - McRave versus DaQin

Blue is good for McRave, red is good for DaQin.

mcrave strategies versus daqin strategies

overallForgeExpand5GateGoonForgeExpandSpeedlots
overall122/157 78%3/3 100%119/154 77%
HatchPool,12Hatch,2HatchMuta102/123 83%3/3 100%99/120 82%
PoolHatch,9Pool,2HatchMuta1/3 33%-1/3 33%
PoolHatch,9Pool,3HatchMuta1/2 50%-1/2 50%
PoolHatch,9Pool,6HatchHydra0/2 0%-0/2 0%
PoolHatch,Overpool,2HatchMuta18/23 78%-18/23 78%
PoolHatch,Overpool,3HatchMuta0/3 0%-0/3 0%
PoolHatch,Overpool,6HatchHydra0/1 0%-0/1 0%

Move along, nothing to see here folks.

mcrave as seen by daqin

mcrave played#daqin recognized
HatchPool,12Hatch,2HatchMuta12393 Not fast rush | 18 Unknown | 12 Heavy rush
PoolHatch,9Pool,2HatchMuta31 Not fast rush | 1 Unknown | 1 Fast rush
PoolHatch,9Pool,3HatchMuta22 Fast rush
PoolHatch,9Pool,6HatchHydra21 Unknown | 1 Not fast rush
PoolHatch,Overpool,2HatchMuta2322 Not fast rush | 1 Heavy rush
PoolHatch,Overpool,3HatchMuta32 Not fast rush | 1 Heavy rush
PoolHatch,Overpool,6HatchHydra11 Not fast rush

Apparently 9 pool is sometimes a fast rush and sometimes a not fast rush.

daqin as seen by mcrave

daqin played#mcrave recognized
ForgeExpand5GateGoon33 FFE,Forge,5GateGoon
ForgeExpandSpeedlots15488 FFE,Forge,Speedlot | 24 FFE,Forge,5GateGoon | 23 FFE,Gateway,Speedlot | 7 FFE,Forge,ZealotArchon | 6 FFE,Nexus,Speedlot | 2 FFE,Nexus,5GateGoon | 2 FFE,Forge,Unknown | 2 FFE,Gateway,5GateGoon

There are those dragoons again, even when DaQin believes it is making zealots. I imagine that something in McRave’s recognizer is approximate. It only matters if McRave reacts to its own wrong recognition, though.

AIIDE 2021 - Dragon versus DaQin

Two posts today, because they’re short. Blue is good for Dragon, red is good for DaQin.

dragon strategies versus daqin strategies

overall12NexusCarriers3GateDT4GateGoonDTDrop
overall74/157 47%52/127 41%5/9 56%16/20 80%1/1 100%
1rax fe55/98 56%42/81 52%-13/17 76%-
2rax bio1/6 17%1/6 17%---
2rax mech4/11 36%2/9 22%1/1 100%-1/1 100%
bio4/13 31%1/10 10%3/3 100%--
dirty worker rush0/5 0%0/5 0%---
mass vulture10/20 50%6/12 50%1/5 20%3/3 100%-
siege expand0/4 0%0/4 0%---

The bots seem to have found the saddle point of the strategy game: DaQin’s carriers were from OK to great against everything, and Dragon’s “1 rax fe” was also as good as it got against everything.

dragon as seen by daqin

dragon played#daqin recognized
1rax fe9832 Safe expand | 27 Unknown | 17 Proxy | 13 Naked expand | 9 Not fast rush
2rax bio63 Unknown | 2 Safe expand | 1 Naked expand
2rax mech117 Safe expand | 2 Not fast rush | 1 Proxy | 1 Naked expand
bio136 Safe expand | 3 Naked expand | 2 Unknown | 2 Proxy
dirty worker rush55 Worker rush
mass vulture2017 Factory | 2 Proxy | 1 Not fast rush
siege expand43 Unknown | 1 Not fast rush

Recognition was good against the worker rush and the vultures, but it looks scattered otherwise. Where did those supposed proxies come from?

AIIDE 2021 - BananaBrain versus DaQin

Not an exciting pairing. Blue is good for BananaBrain, red is good for DaQin.

bananabrain strategies versus daqin strategies

overall2GateDT3GateDT4GateGoon
overall141/157 90%3/3 100%134/150 89%4/4 100%
2gatedt8/10 80%-5/7 71%3/3 100%
2gatedtexpo0/1 0%-0/1 0%-
2gatereaver131/142 92%3/3 100%127/138 92%1/1 100%
9/9gate2/3 67%-2/3 67%-
zcore0/1 0%-0/1 0%-

bananabrain as seen by daqin

bananabrain played#daqin recognized
2gatedt1010 Fast rush
2gatedtexpo11 DarkTemplar rush
2gatereaver142140 DarkTemplar rush | 1 Proxy | 1 Not fast rush
9/9gate33 Fast rush
zcore11 DarkTemplar rush

daqin as seen by bananabrain

daqin played#bananabrain recognized
2GateDT32 1gatecore | 1 unknown
3GateDT15066 1gatecore | 65 4gategoon | 18 unknown | 1 ffe
4GateGoon43 4gategoon | 1 1gatecore

AIIDE 2021 - what DaQin learned


#1 stardust

openinggameswinsfirstlast
2GateDT13610%2156
3GateDT60%082
4GateGoon150%1135
3 openings1578%
enemygameswins
DarkTemplar rush738%
Fast rush220%
Not fast rush5413%
Proxy20%
Unknown60%
5 openings1578%


Results against #1 Stardust and #2 BananaBrain say that dark templars remain dangerous against strong opponents. Which is not a surprise; pros beat each other with DTs too.


#2 bananabrain

openinggameswinsfirstlast
2GateDT30%814
3GateDT15011%0156
4GateGoon40%139
3 openings15710%
enemygameswins
DarkTemplar rush1429%
Fast rush1323%
Not fast rush10%
Proxy10%
4 openings15710%



#3 dragon

openinggameswinsfirstlast
12NexusCarriers12759%0156
3GateDT944%229
4GateGoon2020%17148
DTDrop10%33
4 openings15753%
enemygameswins
Factory1753%
Naked expand1878%
Not fast rush1331%
Proxy2218%
Safe expand4747%
Unknown3571%
Worker rush5100%
7 openings15753%



#4 steamhammer

openinggameswinsfirstlast
ForgeExpand5GateGoon15774%0157
ForgeExpandSpeedlots10%33
2 openings15873%
enemygameswins
Fast rush4100%
Heavy rush2685%
Hydra bust2100%
Not fast rush12069%
Unknown683%
5 openings15873%


Apparently DaQin’s exploration parameter is set so that it doesn’t feel the need to explore if it has 74% wins. Is it true?


#5 mcrave

openinggameswinsfirstlast
ForgeExpand5GateGoon30%05
ForgeExpandSpeedlots15423%1156
2 openings15722%
enemygameswins
Fast rush367%
Heavy rush1421%
Not fast rush12021%
Unknown2025%
4 openings15722%


No, the note under Steamhammer is not true. DaQin doesn’t seem to explore much against zerg no matter what. In fact, looking more widely, DaQin explored its opening choices widely only against WillyT. Against others it mostly stuck to one primary choice. That is probably not good.


#6 willyt

openinggameswinsfirstlast
12NexusCarriers3256%096
3GateDT7468%3110
4GateGoon1225%41154
DTDrop3967%48156
4 openings15762%
enemygameswins
Heavy rush2157%
Naked expand250%
Not fast rush1963%
Proxy10%
Safe expand7457%
Unknown4075%
6 openings15762%



#7 microwave

openinggameswinsfirstlast
4GateGoon1100%1010
ForgeExpand5GateGoon30%04
ForgeExpandSpeedlots15318%1156
3 openings15718%
enemygameswins
Fast rush580%
Heavy rush2928%
Hydra bust10%
Not fast rush11115%
Proxy80%
Unknown30%
6 openings15718%



#9 freshmeat

openinggameswinsfirstlast
4GateGoon2100%89139
ForgeExpand5GateGoon15229%0156
ForgeExpandSpeedlots30%826
3 openings15729%
enemygameswins
Fast rush12100%
Heavy rush1856%
Hydra bust1100%
Not fast rush11917%
Proxy20%
Unknown560%
6 openings15729%



#10 ualbertabot

openinggameswinsfirstlast
3GateDT4693%0156
4GateGoon40%59111
ForgeExpand5GateGoon10776%3154
3 openings15779%
enemygameswins
DarkTemplar rush1974%
Factory17100%
Fast rush6970%
Heavy rush8100%
Hydra bust2100%
Not fast rush2986%
Proxy650%
Unknown7100%
8 openings15779%

AIIDE 2021 - win and loss timing by map

Like yesterday, an old table as a reminder of the bot performance on each map. It can help in judging how many games were wins versus losses.

#botoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1stardust95.63%96%97%97%98%90%94%98%97%94%96%
2bananabrain79.70%79%81%81%80%83%79%74%81%80%79%
3dragon51.19%50%47%52%50%50%55%56%50%50%51%
4steamhammer49.78%51%56%49%50%44%51%48%49%50%49%
5mcrave41.70%45%47%41%41%38%35%42%41%44%41%
6willyt41.05%38%39%42%36%36%51%38%43%49%40%
7microwave40.70%46%41%41%36%40%41%38%39%40%45%
8daqin39.63%41%36%42%42%45%44%39%41%31%35%
9freshmeat33.61%31%36%33%34%37%32%37%31%35%31%
10ualbertabot26.70%22%19%22%31%38%17%31%27%28%32%

For each bot, on each map: The top number in each cell is the duration of winning games, the bottom number is for losing games. A map can’t win or lose, so the overall row at the bottom gives the median duration of all games overall, or all games on each map.

#botoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
1stardust9:27
17:01
11:23
18:58
9:37
9:40
9:43
17:05
9:23
8:09
9:07
14:58
10:08
19:47
9:25
15:13
9:20
16:36
9:02
37:13
8:56
12:43
2bananabrain10:31
12:41
10:37
14:04
11:04
14:06
11:18
11:46
9:50
14:53
10:23
9:52
10:25
14:31
11:02
14:15
10:29
12:35
10:22
10:49
10:17
12:07
3dragon16:11
11:02
18:05
15:36
16:21
13:01
16:02
13:17
17:00
10:20
15:19
14:07
16:29
11:38
17:06
9:02
16:01
10:39
15:15
9:18
16:17
10:42
4steamhammer9:00
10:31
9:45
12:21
9:39
10:12
8:48
10:37
10:17
12:21
9:09
10:16
8:29
10:57
6:32
10:00
9:12
9:58
7:07
9:56
9:36
10:27
5mcrave13:33
13:46
13:08
14:20
13:40
13:24
14:07
15:15
13:48
14:07
13:37
13:18
13:45
13:33
12:49
14:04
13:47
13:20
12:20
14:14
12:40
13:10
6willyt14:28
14:30
15:24
16:47
13:59
14:38
14:50
16:11
14:10
13:46
14:18
11:41
14:46
18:18
14:28
13:34
13:11
15:08
13:23
14:06
14:46
13:19
7microwave10:22
9:29
10:54
9:58
9:51
9:20
10:57
11:00
9:27
8:19
10:20
8:22
12:00
12:17
9:52
9:05
9:21
9:28
8:56
9:36
11:22
8:47
8daqin13:28
12:22
15:14
12:59
13:09
11:40
12:27
12:15
14:15
12:29
12:55
12:52
12:58
13:54
14:07
12:17
13:14
12:11
12:34
11:33
12:06
12:09
9freshmeat7:21
8:14
7:22
8:11
7:02
7:54
7:24
9:12
7:51
7:46
7:58
8:36
7:32
8:10
7:07
8:04
7:16
8:05
7:12
8:44
7:33
8:21
10ualbertabot6:37
9:29
6:58
9:59
6:34
10:31
6:23
9:12
6:34
10:54
6:22
9:09
6:35
9:31
7:16
8:58
7:02
9:58
7:07
8:38
6:17
9:15
overall10:4811:5610:5711:2011:0210:3411:2310:2510:2610:0810:22

The overall column down the left is the same as yesterday’s. The overall row across the bottom has new information. The map with the longest games was Destination, which might reflect its double bridges to each natural that are difficult to cross; the defender can hold on a long time. The next longest were Polaris Rhapsody and Circuit Breaker; I can’t guess why. Python was the map with the shortest games.

Bots are fairly stable across maps. See Dragon: For wins, overall 16:11, lowest 15:19, highest 18:05. Its losses are not as tight, but still close.

AIIDE 2021 - win and loss timings

Reality is distracting me. While we wait for it to lose interest and return to its doghouse, here is a new kind of data.

First, as a reminder, here is the same old crosstable, colored by winning rate.

#botoverallstarbanadragsteamcrawillmicrdaqifresualb
1stardust95.63%84%98%100%95%95%100%91%99%99%
2bananabrain79.70%16%76%83%83%93%86%90%96%95%
3dragon51.19%2%24%37%67%96%66%47%39%83%
4steamhammer49.78%0%17%63%54%56%73%27%68%92%
5mcrave41.70%5%17%33%46%32%60%79%65%37%
6willyt41.05%5%7%4%44%68%67%38%68%69%
7microwave40.70%0%14%34%27%40%33%81%83%55%
8daqin39.63%9%10%53%73%21%62%19%31%78%
9freshmeat33.61%1%4%61%32%35%32%17%69%52%
10ualbertabot26.70%1%5%17%8%63%31%45%22%48%

Here is a new table, colored identically by win rates, but labeled with game durations. In each cell, the top number is the median length of winning games for the bot on the left, and the bottom number is the median length of losing games. Keep in mind that, for example, Stardust has a lot of wins and few losses (as you can see above), so its losing game times are based on little data.

#botoverallstarbanadragsteamcrawillmicrdaqifresualb
1stardust9:27
17:01
10:41
14:59
9:52
21:40
8:36
-
13:09
14:17
17:27
44:44
8:12
-
10:42
17:05
7:52
15:17
8:36
10:40
2bananabrain10:31
12:41
14:59
10:41
9:31
15:41
11:51
14:41
13:43
14:53
7:21
17:37
9:18
6:52
13:11
15:46
9:24
9:41
8:23
7:28
3dragon16:11
11:02
21:40
9:52
15:41
9:31
23:42
15:35
17:59
19:43
16:02
20:14
18:12
16:35
19:52
17:23
12:47
7:19
12:18
8:25
4steamhammer9:00
10:31
-
8:36
14:41
11:51
15:35
23:42
9:23
9:41
15:19
14:57
8:27
9:33
6:59
12:06
6:30
7:09
6:00
7:54
5mcrave13:33
13:46
14:17
13:09
14:53
13:43
19:43
17:59
9:41
9:23
13:10
15:39
10:47
16:41
14:13
16:41
8:59
6:47
13:40
5:49
6willyt14:28
14:30
44:44
17:27
17:37
7:21
20:14
16:02
14:57
15:19
15:39
13:10
15:37
5:51
19:47
21:07
10:48
9:25
11:33
5:44
7microwave10:22
9:29
-
8:12
6:52
9:18
16:35
18:12
9:33
8:27
16:41
10:47
5:51
15:37
10:42
16:07
6:28
6:46
8:01
6:08
8daqin13:28
12:22
17:05
10:42
15:46
13:11
17:23
19:52
12:06
6:59
16:41
14:13
21:07
19:47
16:07
10:42
10:58
7:02
9:45
7:16
9freshmeat7:21
8:14
15:17
7:52
9:41
9:24
7:19
12:47
7:09
6:30
6:47
8:59
9:25
10:48
6:46
6:28
7:02
10:58
9:40
7:23
10ualbertabot6:37
9:29
10:40
8:36
7:28
8:23
8:25
12:18
7:54
6:00
5:49
13:40
5:44
11:33
6:08
8:01
7:16
9:45
7:23
9:40

Looking down the overall column: Stardust wins quickly and loses slowly, which probably just means that it’s hard-hitting and difficult to beat. The terrans have long games, as you might expect, though McRave is not far behind. Dragon wins slowly and loses quickly, which might mean it is vulnerable to rushes (well, we know that’s true). WillyT has virtually equal win and loss durations. Among the zergs, aggressive Steamhammer wins faster than it loses, McRave is roughly equal while slower overall, and defensive Microwave wins more slowly than it loses.

Some of the inside cells have interesting numbers. The Stardust vs WillyT cell has Stardust winning in 17:27 and losing in 44:44, which must reflect the slow-creeping nature of WillyT’s tonk build. Another cell with unbalanced numbers is McRave versus UAlbertaBot. Another thing to look for is reversals: BananaBrain won quickly and lost slowly overall and against most opponents, but against Microwave it was the opposite; both players reversed their win-loss timing ratios.

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.