archive by month
Skip to content

Dan’s AIIDE map pool analysis

Purple Dan Gant did some analysis of the AIIDE 2023 map pool and kindly e-mailed info to me. Here it is; I edited it slightly for clarity.

  • Ran games between PurpleWave and BananaBrain across all the AIIDE maps (based on what I think the legal maps are)
  • All the maps ran (they were 1.16.1-compatible)
  • Some of the maps in my zip appear to be observer maps which are unusable for bot play because they have extra start locations. All but Crossing Field have acceptable alternative versions in the pool
  • PurpleWave worked correctly on all maps. Its behavior on Katrina was dumb but explicable due to the backyard natural

He offers results on a google spreadsheet: AIIDE 2023 Map Info (you have to switch between the About and Data sheets). And he created a new version of the map pool which may better represent what we should actually get: Dan’s unofficial copy of AIIDE 2023 map pool version 2.

Thanks, Dan! You have done a public service.

Steamhammer can play on all the maps, but on the ICCup observer maps it feels a need to scout the observer “bases” to make sure nobody’s there. It knows better than to try to expand there. There are maps where it can correctly reject observer slots as non-bases, but it depends on how they are set up. Steamhammer also plays stupidly on Katrina, and I don’t intend to fix it yet because it’s too much time cost to pay down a small risk. At some point I’ll teach it to do the terrain connectivity analysis from first principles, and create a graph that it can reason about. Playing on Outsider is a goal, but one step at a time.

Steamhammer work is coming along nicely. The new feature I’m adding is coming up to the finish line, and it is passing its tests so far. It won’t be fully refined yet, but still a good improvement. I should have time to add one more important feature before the tournament. Between them they will make the bot sharper at taking advantage of opportunities and more resilient when under pressure. Can’t ask more than that in a short timeframe.

AIIDE 2022 - map tables by bot

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CoG 2022 results by map

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Big Game Hunters on SCHNAIL

The popular map Big Game Hunters (BGH) has been added on SCHNAIL. It is very different from standard maps: There are 8 start positions, the mineral patches and geysers have 10x or more the usual resources per item, the layout is irregular, and there are imbalances everywhere. Strategy is different than on a tournament map, and bots need different knowledge and tuning to play on it.

Nevertheless, when I noticed last night that BGH was added, I quickly enabled it for Steamhammer. It should be fun, and I expect that different bugs and weaknesses will show. Steamhammer has played 3 games on the map so far. It lost them all, but I did learn stuff—so far, so good.

From the game history, it looks as though Krasi0 is the only other bot to have BGH enabled. I see one game as far back as 8 September. I recommend the map for authors who have time to learn from their bot’s SCHNAIL games, or who just want more fun.

A Fastest map is also added. I did not enable that for Steamhammer. (The layout is different from Fastest AfreecaTV, the closest corresponding map in Liquipedia.) I think it is not as much fun, and without trying it I guess Steamhammer is not likely to work there. Again, Krasi0 seems to be the only bot to enable it.

Aside: If I were in charge, Big Game Hunters and Fastest would only be enabled for practice games. They should not be inflicted on human players when they’re being serious. But SCHNAIL allows it. I see ranked games in the history.

SCHNAIL changed map

Hmm, has somebody been playing around a bit with their SCHNAIL installation?

base with many geysers, other alterations

This is from a replay recorded on the SCHNAIL server. I noticed a few other replays with similar map... issues.

AIIDE 2020 - results by map

I’ve found that the bland average “how well did I do on this map?” often obscures big variations in “how well did I do versus each opponent on this map?” The variations mean something about strategy execution or strategy selection. Unfortunately, with only this information it’s usually impossible to guess what the meaning is, so I don’t have many comments. In general, I think you have to look at games to see how two bots’ strategies interact on a given map. These tables can help you choose which games to look at.

First, here’s the overall table with the averages. It’s identical in content to the third table in the official results. With 1800 games per player and 10 maps, each cell represents 180 games (sometimes slightly fewer due to missing games). I also have a writeup of the maps.

overallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust93.22%96%92%96%93%88%94%92%94%94%92%
purplewave79.44%79%82%76%80%81%76%79%82%80%81%
bananabrain69.61%65%73%69%75%71%71%68%71%65%69%
dragon62.38%58%63%67%63%57%69%65%59%61%60%
mcrave57.22%62%54%57%59%58%54%55%61%56%56%
microwave54.47%58%59%47%54%54%52%52%54%61%53%
steamhammer54.00%55%53%58%52%56%50%60%53%52%51%
daqin50.14%53%48%51%51%51%56%51%49%42%49%
zzzkbot39.89%35%37%32%40%39%41%39%38%53%45%
ualbertabot31.14%33%30%35%32%37%24%28%34%23%34%
willyt29.44%19%26%32%22%29%35%38%33%33%28%
ecgberht24.28%28%28%27%21%24%23%21%18%23%29%
eggbot4.72%9%4%4%7%5%4%2%4%4%3%

Now the breakdown tables. For example, in the next table, Stardust scored 80% against PurpleWave on the map Destination. Each of these cells represents only 15 games (minus missing games), so small differences are not significant.

stardustoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
purplewave83%80%80%93%93%73%100%80%87%73%73%
bananabrain62%87%53%73%33%47%67%60%53%87%60%
dragon93%100%80%93%100%93%87%93%93%100%87%
mcrave98%93%100%93%100%100%93%100%100%100%100%
microwave99%100%100%100%100%93%100%100%100%100%100%
steamhammer98%100%100%100%100%87%100%93%100%100%100%
daqin93%87%100%100%93%87%93%87%100%87%93%
zzzkbot99%100%100%100%100%100%100%93%100%100%100%
ualbertabot98%100%100%100%100%80%100%100%100%100%100%
willyt99%100%100%100%100%100%100%100%100%93%100%
ecgberht99%100%100%100%100%100%100%100%100%93%93%
eggbot97%100%87%100%100%100%93%100%100%93%100%
overall93.22%96%92%96%93%88%94%92%94%94%92%

Stardust did about equally well on every map against PurpleWave, but not so against BananaBrain. It looks as though it’s due to BananaBrain’s play—see the BananaBrain table below. Stardust thoroughly suppressed other players, so that’s as much as we can say.

purplewaveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust17%20%20%7%7%27%0%20%13%27%27%
bananabrain63%60%87%47%60%60%73%67%60%67%47%
dragon45%53%47%47%40%53%7%27%80%40%53%
mcrave95%100%87%87%100%100%100%100%80%93%100%
microwave71%53%67%67%80%67%73%67%87%67%80%
steamhammer95%93%100%93%93%100%93%100%87%93%100%
daqin87%80%87%87%80%87%93%73%100%93%93%
zzzkbot91%93%93%100%100%73%87%100%93%93%73%
ualbertabot93%93%93%80%100%100%93%100%93%87%93%
willyt98%100%100%93%100%100%93%100%93%100%100%
ecgberht99%100%100%100%100%100%93%100%100%100%100%
eggbot100%100%100%100%100%100%100%100%100%100%100%
overall79.44%79%82%76%80%81%76%79%82%80%81%

bananabrainoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust38%13%47%27%67%53%33%40%47%13%40%
purplewave37%40%13%53%40%40%27%33%40%33%53%
dragon45%40%47%40%40%60%47%27%33%60%53%
mcrave55%47%73%40%60%53%60%40%53%60%60%
microwave61%60%87%60%67%53%53%67%67%33%67%
steamhammer71%60%80%60%87%53%80%73%73%67%73%
daqin66%60%67%53%67%67%53%67%80%80%67%
zzzkbot94%100%100%100%100%87%100%100%93%87%73%
ualbertabot88%93%80%100%80%87%100%87%80%100%73%
willyt84%73%100%93%93%93%93%80%80%60%73%
ecgberht99%93%93%100%100%100%100%100%100%100%100%
eggbot98%100%93%100%100%100%100%100%100%87%100%
overall69.61%65%73%69%75%71%71%68%71%65%69%

BananaBrain shows an irregular pattern against its strongest opposition, but seems to have more consistent map preferences against the middle ranks. I don’t know what it means, but it’s interesting.

dragonoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust7%0%20%7%0%7%13%7%7%0%13%
purplewave55%47%53%53%60%47%93%73%20%60%47%
bananabrain55%60%53%60%60%40%53%73%67%40%47%
mcrave79%80%73%93%73%80%80%73%47%93%93%
microwave57%27%40%80%53%47%80%60%60%60%60%
steamhammer30%20%27%33%33%20%47%20%40%20%40%
daqin53%40%53%27%33%60%53%80%53%60%73%
zzzkbot47%47%67%73%67%40%40%33%67%20%20%
ualbertabot80%80%92%87%80%60%87%80%71%87%80%
willyt93%100%93%100%100%93%93%87%93%93%80%
ecgberht94%100%100%100%100%100%100%93%80%100%67%
eggbot97%100%93%93%100%93%93%100%100%100%100%
overall62.38%58%63%67%63%57%69%65%59%61%60%

Dragon is strangely inconsistent. Does it learn strategy independently for each map? Does it do map analysis to adapt its play to the map, but there are flaws? Look at the PurpleWave row: Dragon crushed it on Circuit Breaker and fell down on Fighting Spirit.

mcraveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust2%7%0%7%0%0%7%0%0%0%0%
purplewave5%0%13%13%0%0%0%0%20%7%0%
bananabrain45%53%27%60%40%47%40%60%47%40%40%
dragon21%20%27%7%27%20%20%27%53%7%7%
microwave77%87%47%73%80%87%80%73%93%80%73%
steamhammer57%53%33%60%47%67%80%60%53%53%67%
daqin65%87%80%87%87%47%27%33%60%80%60%
zzzkbot83%93%87%87%87%93%73%73%87%60%87%
ualbertabot89%80%100%87%93%93%93%93%87%80%80%
willyt63%80%53%40%80%67%47%60%47%73%80%
ecgberht80%80%87%60%73%80%80%80%87%93%80%
eggbot99%100%100%100%93%100%100%100%100%100%100%
overall57.22%62%54%57%59%58%54%55%61%56%56%

microwaveoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust1%0%0%0%0%7%0%0%0%0%0%
purplewave29%47%33%33%20%33%27%33%13%33%20%
bananabrain39%40%13%40%33%47%47%33%33%67%33%
dragon43%73%60%20%47%53%20%40%40%40%40%
mcrave23%13%53%27%20%13%20%27%7%20%27%
steamhammer29%53%47%13%33%13%33%13%27%33%20%
daqin83%87%100%73%80%93%53%87%80%100%80%
zzzkbot93%93%93%100%93%93%93%100%100%73%93%
ualbertabot61%47%60%50%53%53%87%60%60%80%60%
willyt65%87%73%27%73%47%53%47%87%87%67%
ecgberht88%60%80%80%100%93%93%80%100%100%93%
eggbot100%100%100%100%100%100%100%100%100%100%100%
overall54.47%58%59%47%54%54%52%52%54%61%53%

steamhammeroverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust2%0%0%0%0%13%0%7%0%0%0%
purplewave5%7%0%7%7%0%7%0%13%7%0%
bananabrain29%40%20%40%13%47%20%27%27%33%27%
dragon70%80%73%67%67%80%53%80%60%80%60%
mcrave43%47%67%40%53%33%20%40%47%47%33%
microwave71%47%53%87%67%87%67%87%73%67%80%
daqin22%40%20%20%13%13%27%40%7%20%20%
zzzkbot75%60%73%93%67%93%80%93%87%47%53%
ualbertabot95%80%100%93%100%93%87%100%100%100%100%
willyt55%60%67%60%60%53%60%60%40%33%60%
ecgberht83%100%60%87%87%60%93%93%87%93%73%
eggbot97%100%100%100%93%100%87%93%100%100%100%
overall54.00%55%53%58%52%56%50%60%53%52%51%

daqinoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust7%13%0%0%7%13%7%13%0%13%7%
purplewave13%20%13%13%20%13%7%27%0%7%7%
bananabrain34%40%33%47%33%33%47%33%20%20%33%
dragon47%60%47%73%67%40%47%20%47%40%27%
mcrave35%13%20%13%13%53%73%67%40%20%40%
microwave17%13%0%27%20%7%47%13%20%0%20%
steamhammer78%60%80%80%87%87%73%60%93%80%80%
zzzkbot9%40%7%20%7%7%0%0%0%0%13%
ualbertabot69%73%87%53%67%60%73%73%73%71%60%
willyt96%100%100%93%93%100%100%100%100%73%100%
ecgberht99%100%93%100%100%100%100%100%100%100%100%
eggbot97%100%100%87%100%100%100%100%100%87%100%
overall50.14%53%48%51%51%51%56%51%49%42%49%

zzzkbotoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust1%0%0%0%0%0%0%7%0%0%0%
purplewave9%7%7%0%0%27%13%0%7%7%27%
bananabrain6%0%0%0%0%13%0%0%7%13%27%
dragon53%53%33%27%33%60%60%67%33%80%80%
mcrave17%7%13%13%13%7%27%27%13%40%13%
microwave7%7%7%0%7%7%7%0%0%27%7%
steamhammer25%40%27%7%33%7%20%7%13%53%47%
daqin91%60%93%80%93%93%100%100%100%100%87%
ualbertabot49%33%47%20%67%33%53%67%40%87%40%
willyt92%100%100%100%100%93%80%67%80%100%100%
ecgberht29%13%13%33%33%27%33%33%60%33%13%
eggbot100%100%100%100%100%100%100%100%100%100%100%
overall39.89%35%37%32%40%39%41%39%38%53%45%

ualbertabotoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust2%0%0%0%0%20%0%0%0%0%0%
purplewave7%7%7%20%0%0%7%0%7%13%7%
bananabrain12%7%20%0%20%13%0%13%20%0%27%
dragon20%20%8%13%20%40%13%20%29%13%20%
mcrave11%20%0%13%7%7%7%7%13%20%20%
microwave39%53%40%50%47%47%13%40%40%20%40%
steamhammer5%20%0%7%0%7%13%0%0%0%0%
daqin31%27%13%47%33%40%27%27%27%29%40%
zzzkbot51%67%53%80%33%67%47%33%60%13%60%
willyt45%27%73%47%73%47%27%33%47%27%47%
ecgberht61%60%47%67%60%60%53%73%73%47%73%
eggbot90%93%93%80%93%100%87%87%87%100%80%
overall31.14%33%30%35%32%37%24%28%34%23%34%

willytoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust1%0%0%0%0%0%0%0%0%7%0%
purplewave2%0%0%7%0%0%7%0%7%0%0%
bananabrain16%27%0%7%7%7%7%20%20%40%27%
dragon7%0%7%0%0%7%7%13%7%7%20%
mcrave37%20%47%60%20%33%53%40%53%27%20%
microwave35%13%27%73%27%53%47%53%13%13%33%
steamhammer45%40%33%40%40%47%40%40%60%67%40%
daqin4%0%0%7%7%0%0%0%0%27%0%
zzzkbot8%0%0%0%0%7%20%33%20%0%0%
ualbertabot55%73%27%53%27%53%73%67%53%73%53%
ecgberht74%53%87%47%80%93%80%93%87%60%60%
eggbot69%0%80%93%53%47%87%100%73%80%80%
overall29.44%19%26%32%22%29%35%38%33%33%28%

ecgberhtoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust1%0%0%0%0%0%0%0%0%7%7%
purplewave1%0%0%0%0%0%7%0%0%0%0%
bananabrain1%7%7%0%0%0%0%0%0%0%0%
dragon6%0%0%0%0%0%0%7%20%0%33%
mcrave20%20%13%40%27%20%20%20%13%7%20%
microwave12%40%20%20%0%7%7%20%0%0%7%
steamhammer17%0%40%13%13%40%7%7%13%7%27%
daqin1%0%7%0%0%0%0%0%0%0%0%
zzzkbot71%87%87%67%67%73%67%67%40%67%87%
ualbertabot39%40%53%33%40%40%47%27%27%53%27%
willyt26%47%13%53%20%7%20%7%13%40%40%
eggbot97%93%100%100%87%100%100%100%93%100%100%
overall24.28%28%28%27%21%24%23%21%18%23%29%

eggbotoverallDestinHeartbPolariAztecLonginCircuiEmpireFightiPythonRoadki
stardust3%0%13%0%0%0%7%0%0%7%0%
purplewave0%0%0%0%0%0%0%0%0%0%0%
bananabrain2%0%7%0%0%0%0%0%0%13%0%
dragon3%0%7%7%0%7%7%0%0%0%0%
mcrave1%0%0%0%7%0%0%0%0%0%0%
microwave0%0%0%0%0%0%0%0%0%0%0%
steamhammer3%0%0%0%7%0%13%7%0%0%0%
daqin3%0%0%13%0%0%0%0%0%13%0%
zzzkbot0%0%0%0%0%0%0%0%0%0%0%
ualbertabot10%7%7%20%7%0%13%13%13%0%20%
willyt31%100%20%7%47%53%13%0%27%20%20%
ecgberht3%7%0%0%13%0%0%0%7%0%0%
overall4.72%9%4%4%7%5%4%2%4%4%3%

EggBot’s wins against WillyT—the majority of all its wins—seem to have come from very specific situations.

CoG 2020 - breakdown by map

These tables show, for each bot, its win rate against each opponent, broken down by map. For example, the first table is for Stardust, and shows Stardust’s win percentages by opponent and map. The tournament played 200 round robins rotating between 5 maps, so each table cell shows the result of 200/5 = 40 games between the two opponents on that map, or slightly less than 40 if some games were not counted due to problems.

See looking forward to CoG 2020 for a general discussion of the maps. As a reminder, the maps are:

  • (2)Blue Storm
  • (3)Alchemist
  • (3)Great Barrier Reef
  • (4)Andromeda
  • (4)Luna the Final
StardustoverallBlueStAlchemGreatBAndromLunaTh
PurpleWave86%62%92%88%92%95%
BananaBrain63%55%62%72%65%62%
BetaStar76%100%55%80%72%75%
Microwave96%95%100%95%95%98%
XIAOYI95%98%100%98%90%90%
McRave96%100%95%92%95%100%
MetaBot99%100%100%100%100%98%
overall87.61%87%86%89%87%88%

Aha, details count! Stardust’s overall results look even across maps, but there are differences for the top protoss opponents. It had some trouble on Blue Storm against PurpleWave and BananaBrain, and on Alchemist versus BetaStar.

PurpleWaveoverallBlueStAlchemGreatBAndromLunaTh
Stardust14%38%8%12%8%5%
BananaBrain42%40%38%45%38%48%
BetaStar70%85%68%75%70%52%
Microwave84%82%80%90%85%82%
XIAOYI100%100%98%100%100%100%
McRave88%92%88%85%90%88%
MetaBot98%100%100%98%92%100%
overall70.82%77%68%72%69%68%

Again, differences show mainly against top opponents, where PurpleWave favored Blue Storm and struggled on Luna against Stardust and BetaStar (though it liked the map against BananaBrain). Luna is a classic macro map. Maybe PurpleWave is not as skilled at the brute force just-make-more-units-and-win style.

BananaBrainoverallBlueStAlchemGreatBAndromLunaTh
Stardust37%45%38%28%35%38%
PurpleWave58%60%62%55%62%52%
BetaStar67%82%68%60%62%62%
Microwave74%72%57%80%85%75%
XIAOYI98%100%95%100%98%95%
McRave64%48%90%65%68%50%
MetaBot91%100%88%89%89%87%
overall69.71%72%71%68%71%66%

BananaBrain by contrast shows differences versus many opponents, most notably McRave where it dominated on Alchemist and suffered on Blue Storm and Luna. A big disparity like that must mean something.

BetaStaroverallBlueStAlchemGreatBAndromLunaTh
Stardust24%0%45%20%28%25%
PurpleWave30%15%32%25%30%48%
BananaBrain33%18%32%40%38%38%
Microwave71%92%25%65%98%75%
XIAOYI46%25%30%80%32%65%
McRave70%100%20%80%90%62%
MetaBot90%92%100%85%91%81%
overall51.73%49%41%56%57%56%

A checkerboard table. The middling overall percentages are averages of big wins and big losses. BetaStar comes across as strong but brittle.

MicrowaveoverallBlueStAlchemGreatBAndromLunaTh
Stardust4%5%0%5%5%2%
PurpleWave16%18%20%10%15%18%
BananaBrain26%28%42%20%15%25%
BetaStar29%8%75%35%2%25%
XIAOYI82%88%80%90%78%72%
McRave42%28%60%32%48%40%
MetaBot86%95%82%98%75%82%
overall40.57%38%51%41%34%38%

Also with dramatic variations, especially against BetaStar. Was there map-specific preparation, and if so, why did it not work on Andromeda, which is traditionally considered a zerg-favored map? There was an incorrect announcement of maps followed by a correction, but Andromeda appears on both lists, and in any case the map announcements are dated before the submission deadline.

XIAOYIoverallBlueStAlchemGreatBAndromLunaTh
Stardust5%2%0%2%10%10%
PurpleWave0%0%2%0%0%0%
BananaBrain2%0%5%0%2%5%
BetaStar54%75%70%20%68%35%
Microwave18%12%20%10%22%28%
McRave100%100%100%98%100%100%
MetaBot76%95%92%98%57%40%
overall36.57%41%41%32%37%31%

McRaveoverallBlueStAlchemGreatBAndromLunaTh
Stardust4%0%5%8%5%0%
PurpleWave12%8%12%15%10%12%
BananaBrain36%52%10%35%32%50%
BetaStar30%0%80%20%10%38%
Microwave58%72%40%68%52%60%
XIAOYI0%0%0%2%0%0%
MetaBot82%98%85%78%78%72%
overall31.64%33%33%32%27%33%

MetaBotoverallBlueStAlchemGreatBAndromLunaTh
Stardust1%0%0%0%0%2%
PurpleWave2%0%0%2%8%0%
BananaBrain9%0%12%11%11%13%
BetaStar10%8%0%15%9%19%
Microwave14%5%18%2%25%18%
XIAOYI24%5%8%2%42%60%
McRave18%2%15%22%22%28%
overall11.02%3%8%8%17%20%

Upsetting XiaoYi on even one map is not bad.

AIIDE 2020 has a new map pool

Registration for the AIIDE 2020 tournament opened today. The registration deadline is 31 August, and the submission deadline is 30 September. Steamhammer will be competing.

Most details seem to have no change from last year, but after using the same 10 maps from 2011 to 2019, this year there is a new pool of 10 maps. In the 2 player maps, Benzene is dropped in favor of Polaris Rhapsody. In 3 player maps, Tau Cross is out and Longinus is in. In 4 player maps, Andromeda and Fortress give way to Fighting Spirit and Roadkill. Other maps remain the same.

That’s 4 new maps. All 4 appeared in the “unknown map” secondary tournament last year, so they are tested in bot play. (That tournament ran with 5 maps; only Arcadia was not moved into the new map pool.) All the choices seem standard and conservative, unknown only in the sense that they were unannounced beforehand. By the way, the “unknown map” tournament will be repeated this year. Maybe the map choice will be a little more daring this time?

  • (2)Destination Back door mineral block to each main base, and other features favoring cheese play. The most logical third base location is immediately above a wide ramp and hard to defend; bots have even more trouble defending the thirds.
  • (2)Heartbreak Ridge Back door mineral block to high ground over each side’s natural base, on the path to the third. The many ridges benefit bots which understand high ground. The center base breaks the middle of the map into two paths; you can go above or below the center.
  • (2)Polaris Rhapsody Follows the three-paths map pattern; you can move your army down the center, or by a longer path down either side.
  • (3)Aztec Low-ground main bases. This causes problems for bots which wall off inside their main.
  • (3)Longinus Level-ground main bases, like Tau Cross which it replaces.
  • (4)Circuit Breaker is an old standard.
  • (4)Empire of the Sun is another map with level-ground mains.
  • (4)Fighting Spirit is another old standard, likely the most played map of all time.
  • (4)Python is an old map which I take to be an attempt to rework the aboriginal Lost Temple into a balanced map. Compared to most maps, there is more contrast between close and distant main bases; the enemy may be near or far depending on starting locations.
  • (4)Roadkill is the most recent of the maps, not to be confused with Roadrunner. It has low-ground mains and the famously thorough Freakling technical design.

Maps not in the SSCAIT pool are Polaris Rhapsody, Aztec, Longinus, and Roadkill. The maps are also outside of BASIL’s extended map pool (“2019Season1”), so some bots may not have played them.

The changes seem designed maintain the variety and balance of the map pool. I don’t expect any big shift in results; a tournament on the previous map pool would likely have a similar outcome. The new pool is slightly less tricky due to dropping Benzene and Fortress, on which a bot with specialized map knowledge has a chance to gain an advantage. That may mean that old bots and new bots with more specific skills can be compared a little more fairly, but I expect that the difference is small.

Overall the map pool change seems fine, unlikely to cause difficulties either in the tournament or in comparing with past tournaments. Given that, I wonder why the change was made. For my part, I’m pleased to see Longinus. I will miss Fortress, though. I like that map.

Update: I asked Dave Churchill why the change after so many years of the same maps. He said he just hadn’t gotten around to it before—the maps were originally meant to be changed every year.

how to play on hard maps

Humans build up a wealth of knowledge about each map they regularly play: The best proxy spots are here and there; this base is particularly vulnerable to muta harass; such-and-such expansion build is only safe in cross positions. Some of the knowledge is very specific: On Circuit Breaker, at a mineral only you can displace the resource depot toward the edge of the map and it’s a little safer, or protoss can place the nexus normally and provide some protection from vulture raids with a specific pylon wall. I eventually want to teach Steamhammer to collect strategy and tactics data per map and learn that kind of knowledge itself.

For now, though, bots have a simplified understanding of maps. The information that comes out of terrain analysis is a small fraction of what a human knows. So I asked myself: On a map with destructible neutral buildings, like say Hitchhiker, how should a bot decide which buildings to break down and when? Is there a rule of thumb that we can use as a first approximation of deep knowledge and tactical analysis?

One of the steps is to decide where you want to go. If you have a destination in mind, you can compare the different ways of reaching it and choose a set of paths to open (a set of neutral buildings to destroy or mineral blocks to mine out). Most bots today, I get the impression, don’t use this goal-oriented approach, but open a new path when they happen to find that it is nearby.

Two major reasons to open a closed path are to expand to a base through it, or to attack the enemy through it. Suppose you choose your next expansion by scoring the neutral bases and taking the one with the best score (or perhaps none if none passes a threshold). For a base that you have to open a path to reach, count the cost of opening the path against the score.

Opening a path for attack does not seem as simple. On Hitchhiker, you start with an open path down the center, but it is a narrow ravine that is easy for either player to defend. You can also destroy buildings to open side paths. A path you can attack through is also a path the enemy can attack you through, and if you open a side path and send your army there, what stops the enemy from countering down another path? How do you weigh risk and gain?

Maybe you can suggest a better idea, but here is my thought: If you are unable to attack down any existing path (the combat simulator keeps saying you’ll lose), and the reason is not that your army is puny because you are behind, then maybe you should open another path and attack there instead. That seems simple enough to implement and likely to be of some value.

Another reason to open a closed path is to create a shorter path to a place you can already reach. That’s the reason on SSCAIT maps; it applies on Heartbreak Ridge and Destination to the backdoor mineral blocks, and on Benzene to the backdoor neutral buildings. You want to open the path when it benefits you more than the enemy, which generally means that you can actually or potentially control the new path with your army. I think that strong current bots are not bad at doing this defensively for paths near their base, but I haven’t seen a bot open a path offensively.

the CoG maps

The CoG tournament expects participating bots to support all maps in a pool of 19, and randomly selects 5 maps from the pool to play in the tournament. The registration deadline was yesterday, so I guess everybody has already decided whether to participate. But there was mention of the CoG maps in the Undermind podcast #44, so I thought it was worth a post.

I described the maps in a 2018 post about the then-CIG maps. This year’s CoG map pool is the same, except that they removed the extremely difficult map Plasma, “because this map may too tricky to play by agents,” an understatement. Plasma has egg blocks that must be destroyed before ground units can walk to the enemy base, and also small mains where terran and protoss cannot fit all the buildings they need, and narrow ramps from the mains that only allow small units to pass. The combination of special features is more than current bots can be expected to support. The last time Steamhammer participated, I tested that it could play games on Plasma without crashing and made no other preparations. If the map had been selected, games on it would have looked ridiculously bad and distorted the tournament results.

With Plasma removed, I expect only a few of the other maps to pose any difficulty to bots. In order of difficulty, on Alchemist the 2 entrances to each base may cause misplays, but I think games should look normal except for misplaced buildings and overlooked opportunities. On Blue Storm, the narrow entrance to the center near each side’s natural will cause some bots to pile up units, trying to send them through where they do not fit. The most difficult will be Hitchhiker, where many bots will try to route through the destructible buildings and leave units trapped. From what I’ve seen, even bots which know how to destroy the buildings will be unable to plan a route to the enemy base, and are likely to blunder in confusion through the game. With 5 maps chosen out of 19, odds are good that at least one of the 3 more difficult maps will be included.

That is what I expect based on past experience, but I could be wrong. Compared to 2018, bots today rely on more and different libraries. Does BWEM have trouble with any of the maps? Does BWEB misplace walls on some of them? I don’t know.

the story of a trapped drone

In a game Steamhammer - McRaveZ on La Mancha, McRave pulled drones to try to survive.

unsupported drone

But what happened to that one drone that seems to be leaning over the chasm? It collided with other units and was pushed across unwalkable terrain to a new position where it was trapped.

zerglings can’t reach the drone

Steamhammer’s zerglings desperately want to get at that drone, but they can’t... quite... reach it. The zerglings were nearly useless for the rest of the game, distracted by the stuck drone every time they reached the enemy base. Steamhammer floundered until it finally remembered that mutalisks are also a unit it can make.

Here is the walkability map. Steamhammer actually checks that it can reach the drone target, but the check is incorrect in this case: There is a narrow corridor, one walk tile or 8 pixels across, leading to the little platform where the drone waits. No unit is narrow enough to walk there (even a ghost is 15 pixels wide), but Steamhammer doesn’t know that.

8x8 walk tiles

The imprisoned drone illustrates a flaw in the map design: Accidents should not push units into places where they will be permanently trapped. Freakling would never allow such a blunder! Of course it also illustrates a bug in Steamhammer. The bug makes a regular appearance on a few maps, like Fortress, but this is the first time I’ve seen it affect play on a regular SSCAIT map.

Next: Steamhammer status. Soon: Some of Steamhammer’s best recent games.

an amusing Steamhammer bug

I was testing a macro build on the map Baekmagoji, a 2 player map where macro builds are fitting because each main base has 2 geysers and 18 mineral patches—double the usual. (I routinely test on all kinds of maps.) Early in the game, Steamhammer suddenly panicked and canceled a hatchery to get its spawning pool immediately. What was going on?

The bug, or I should say bugs, turned out to be this: Because the enemy main was so rich in resources, Steamhammer decided “well, it’s a bit far away, but still it’s the best choice for my natural base.” When the scout found enemy buildings (“hey, that’s in my natural”), Steamhammer concluded that it was getting proxied. Panic! That was easy to fix; the chosen natural is not allowed to be a starting base. But wait, why was the first expansion hatchery already started somewhere else, so that it could be canceled? Because the choice of the natural base and the actual first expansion taken are not quite coordinated correctly; in some cases they can be different for no good reason. Ack!

Baekmagoji is a difficult map for bots. Another issue is that some of the mineral patches in the main are not reachable until other patches are mined out. It’s a clever design, but Steamhammer doesn’t understand it and tries to assign drones to minerals that they can’t reach. Well, that’s not important to fix yet. I can’t think of another competitive map that would trigger this bug (though more than a few Blizzard maps do). Also notice the neutral sunken colonies spreading creep, and the blocking temples and blocking minerals. Lots of tricks lying in wait.

AIIDE 2019 - unknown maps per-player

Here are the per-player map tables for the AIIDE 2019 bonus tournament on “unknown” maps, meaning standard and well-known maps that weren’t announced beforehand. Since the competition is about maps, I want to look at the maps first.

With 10 opponents and 100 rounds, there are 10 * 9 * 100 / 2 = 4500 games total if all are played, meaning 900 games per player and 900 / 5 = 180 per player per map. Each player has 9 opponents, so there are 180/9 = 20 games per cell in these tables. The official results say that 4491 of the 4500 were successfully completed, so some cells have slightly fewer. Tail-ender UAlbertaBot participated in every game that did not complete (C0G has the same pattern).

LocutusoverallPolariLonginArcadiFightiRoadki
PurpleWave48%75%40%50%35%40%
DaQin73%75%75%85%75%55%
BananaBrain66%55%75%70%75%55%
Microwave98%100%90%100%100%100%
Steamhammer99%100%100%95%100%100%
XiaoYi97%100%90%100%95%100%
McRave96%100%95%100%100%85%
Iron100%100%100%100%100%100%
UAlbertaBot98%100%95%95%100%100%
overall86.11%89%84%88%87%82%


PurpleWaveoverallPolariLonginArcadiFightiRoadki
Locutus52%25%60%50%65%60%
DaQin76%60%90%70%95%65%
BananaBrain68%80%60%70%60%70%
Microwave96%95%100%95%95%95%
Steamhammer86%70%95%80%90%95%
XiaoYi90%90%80%90%90%100%
McRave93%95%95%90%95%90%
Iron98%100%100%100%90%100%
UAlbertaBot100%100%100%100%100%100%
overall84.28%79%87%83%87%86%


DaQinoverallPolariLonginArcadiFightiRoadki
Locutus27%25%25%15%25%45%
PurpleWave24%40%10%30%5%35%
BananaBrain41%60%30%35%30%50%
Microwave89%95%95%90%80%85%
Steamhammer97%95%95%100%100%95%
XiaoYi74%100%65%70%60%75%
McRave37%50%45%30%30%30%
Iron98%100%95%100%95%100%
UAlbertaBot77%75%70%89%68%80%
overall62.58%71%59%62%55%66%


BananaBrainoverallPolariLonginArcadiFightiRoadki
Locutus34%45%25%30%25%45%
PurpleWave32%20%40%30%40%30%
DaQin59%40%70%65%70%50%
Microwave74%75%70%75%75%75%
Steamhammer81%70%80%80%85%90%
XiaoYi62%50%70%50%70%70%
McRave69%80%70%55%65%75%
Iron56%30%55%65%45%85%
UAlbertaBot87%100%85%95%80%75%
overall61.56%57%63%61%62%66%


MicrowaveoverallPolariLonginArcadiFightiRoadki
Locutus2%0%10%0%0%0%
PurpleWave4%5%0%5%5%5%
DaQin11%5%5%10%20%15%
BananaBrain26%25%30%25%25%25%
Steamhammer84%90%95%75%80%80%
XiaoYi82%85%90%70%75%90%
McRave50%45%35%45%55%70%
Iron33%30%15%40%15%65%
UAlbertaBot65%70%60%79%60%55%
overall39.60%39%38%39%37%45%


SteamhammeroverallPolariLonginArcadiFightiRoadki
Locutus1%0%0%5%0%0%
PurpleWave14%30%5%20%10%5%
DaQin3%5%5%0%0%5%
BananaBrain19%30%20%20%15%10%
Microwave16%10%5%25%20%20%
XiaoYi50%25%80%70%45%30%
McRave89%85%90%95%90%85%
Iron59%85%40%60%55%55%
UAlbertaBot90%95%90%90%84%90%
overall37.75%40%37%43%35%33%


XiaoYioverallPolariLonginArcadiFightiRoadki
Locutus3%0%10%0%5%0%
PurpleWave10%10%20%10%10%0%
DaQin26%0%35%30%40%25%
BananaBrain38%50%30%50%30%30%
Microwave18%15%10%30%25%10%
Steamhammer50%75%20%30%55%70%
McRave29%35%40%25%20%25%
Iron80%80%85%70%90%75%
UAlbertaBot79%60%85%85%100%65%
overall37.00%36%37%37%42%33%


McRaveoverallPolariLonginArcadiFightiRoadki
Locutus4%0%5%0%0%15%
PurpleWave7%5%5%10%5%10%
DaQin63%50%55%70%70%70%
BananaBrain31%20%30%45%35%25%
Microwave50%55%65%55%45%30%
Steamhammer11%15%10%5%10%15%
XiaoYi71%65%60%75%80%75%
Iron41%25%30%45%40%65%
UAlbertaBot46%20%63%50%55%45%
overall36.04%28%36%39%38%39%


IronoverallPolariLonginArcadiFightiRoadki
Locutus0%0%0%0%0%0%
PurpleWave2%0%0%0%10%0%
DaQin2%0%5%0%5%0%
BananaBrain44%70%45%35%55%15%
Microwave67%70%85%60%85%35%
Steamhammer41%15%60%40%45%45%
XiaoYi20%20%15%30%10%25%
McRave59%75%70%55%60%35%
UAlbertaBot75%90%80%75%80%50%
overall34.44%38%40%33%39%23%


UAlbertaBotoverallPolariLonginArcadiFightiRoadki
Locutus2%0%5%5%0%0%
PurpleWave0%0%0%0%0%0%
DaQin23%25%30%11%32%20%
BananaBrain13%0%15%5%20%25%
Microwave35%30%40%21%40%45%
Steamhammer10%5%10%10%16%10%
XiaoYi21%40%15%15%0%35%
McRave54%80%37%50%45%55%
Iron25%10%20%25%20%50%
overall20.43%21%19%16%19%27%

Against its strong opponents, Locutus had trouble on the map Roadkill, possibly because of the low-ground main. If Locutus stuck with its cannons-at-the-ramp strategy, the cannons were weak on low ground. Iron also struggled on Roadkill. Polaris Rhapsody, the only 2-player map, also showed some extreme results—see BananaBrain versus Iron and McRave versus UAlbertaBot.

There are plenty more details in the tables.

AIIDE 2019 - unknown maps tournament

The AIIDE 2019 unknown maps competition results are up. At first glance, the biggest surprise is that the ranking is extremely similar to the ranking in the main tournament. 10 bots chose to compete. The weakest players did not participate, so the winning rates for all bots are lower than in the main tournament.

The results for some reason don’t include a straight listing of the 5 maps used. They are (2) Polaris Rhapsody, (3) Longinus 2, (4) Arcadia 2, (4) Fighting Spirit, and (4) Roadkill. Fighting Spirit is of course familiar to SSCAIT participants. The first 4 maps are classics from the KESPA era (which ended in 2012) and Roadkill is a more recent design.

I know from test games that Steamhammer plays well on Arcadia. (I test Steamhammer on all kinds of maps as a regular thing.) I’m pleased to see that reflected in the map statistics. Other map preferences that stand out are that DaQin likes Polaris Rhapsody and dislikes Fighting Spirit, Microwave prefers Roadkill, and Iron had trouble on Roadkill.

I will analyze the unknown maps tournament, at least to some extent. I’m not sure exactly how. There’s a bit of an embarrassment of riches at the moment.

AIIDE 2019 - maps per player

I’m pleased with this one. This is the same data as yesterday, how each bot did against each other on each map, but organized by player rather than by map. If you’re a bot author, I think this is a better way to find out about strengths and weaknesses.

For example, the first table is from the point of view of Locutus. The percentages are Locutus’s win rates. The upset by DaQin on Aztec immediately stands out amid Locutus’s otherwise consistent results. I imagine that Bruce @ Locutus will examine those 10 games and perhaps find a bug that DaQin exploited. (Locutus played its cannons at ramp into zealot drop strategy in these games. It lost because cannons at the ramp are a poor defense when the outside is on higher ground—Aztec has low-ground main bases. Maybe a weakness in learning or preparation?)

LocutusoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
PurpleWave45%50%50%40%40%40%60%40%30%40%60%
BananaBrain89%100%100%80%100%100%80%70%100%70%90%
DaQin83%100%80%100%20%80%100%90%90%80%90%
Steamhammer97%90%100%100%90%100%90%100%100%100%100%
ZZZKBot99%100%100%100%100%100%100%100%90%100%100%
Microwave92%100%100%80%80%100%90%90%90%90%100%
Iron99%100%100%100%100%100%90%100%100%100%100%
XiaoYi96%100%100%100%90%70%100%100%100%100%100%
McRave99%100%100%100%100%100%100%100%90%100%100%
UAlbertaBot99%100%100%100%100%100%100%100%90%100%100%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR99%100%100%100%100%100%100%100%90%100%100%
overall91.42%95%94%92%85%91%92%91%89%90%95%


PurpleWaveoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus55%50%50%60%60%60%40%60%70%60%40%
BananaBrain44%80%70%80%50%60%10%40%20%0%30%
DaQin85%80%70%100%100%70%80%100%100%70%80%
Steamhammer71%90%100%70%40%60%80%60%70%90%50%
ZZZKBot100%100%100%100%100%100%100%100%100%100%100%
Microwave93%100%90%90%100%90%90%90%90%90%100%
Iron98%100%100%90%100%100%100%100%100%100%90%
XiaoYi97%90%100%100%100%100%90%100%90%100%100%
McRave89%100%90%100%100%90%80%100%70%70%90%
UAlbertaBot98%100%100%100%100%100%100%78%100%100%100%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR97%100%90%90%100%100%100%100%90%100%100%
overall85.54%91%88%90%88%86%81%86%83%82%82%


BananaBrainoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus11%0%0%20%0%0%20%30%0%30%10%
PurpleWave56%20%30%20%50%40%90%60%80%100%70%
DaQin51%30%40%60%80%50%30%60%60%60%40%
Steamhammer85%100%70%90%80%80%70%100%100%70%90%
ZZZKBot83%90%100%70%80%70%90%100%70%90%70%
Microwave71%90%70%90%70%60%70%60%80%60%60%
Iron59%40%70%50%60%60%70%80%50%70%40%
XiaoYi57%40%80%40%50%50%40%80%40%80%70%
McRave69%70%60%90%70%50%80%70%70%70%60%
UAlbertaBot84%80%90%80%90%80%90%80%89%90%70%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR100%100%100%100%100%100%100%100%100%100%100%
overall68.81%63%68%68%69%62%71%77%70%77%65%


DaQinoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus17%0%20%0%80%20%0%10%10%20%10%
PurpleWave15%20%30%0%0%30%20%0%0%30%20%
BananaBrain49%70%60%40%20%50%70%40%40%40%60%
Steamhammer94%100%100%90%100%100%100%100%70%90%90%
ZZZKBot10%10%20%10%10%10%20%10%0%10%0%
Microwave83%90%60%60%90%100%80%90%100%80%80%
Iron92%100%90%100%90%100%90%100%80%70%100%
XiaoYi82%100%100%90%100%90%60%70%60%60%90%
McRave41%40%60%40%40%20%50%30%40%30%60%
UAlbertaBot78%70%100%80%90%70%80%80%70%60%80%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR99%100%100%100%90%100%100%100%100%100%100%
overall63.33%67%70%59%68%66%64%61%56%57%66%


SteamhammeroverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus3%10%0%0%10%0%10%0%0%0%0%
PurpleWave29%10%0%30%60%40%20%40%30%10%50%
BananaBrain15%0%30%10%20%20%30%0%0%30%10%
DaQin6%0%0%10%0%0%0%0%30%10%10%
ZZZKBot59%40%60%80%80%40%50%40%60%50%90%
Microwave25%10%30%50%30%30%20%40%20%10%10%
Iron67%70%90%100%40%40%90%60%60%100%20%
XiaoYi50%30%60%50%20%10%80%50%80%60%60%
McRave86%100%90%100%100%70%100%90%90%40%80%
UAlbertaBot91%90%90%90%89%80%90%89%90%100%100%
AITP97%90%100%90%100%100%90%100%100%100%100%
BunkerBoxeR100%100%100%100%100%100%100%100%100%100%100%
overall52.25%46%54%59%54%44%57%50%55%51%52%


ZZZKBotoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus1%0%0%0%0%0%0%0%10%0%0%
PurpleWave0%0%0%0%0%0%0%0%0%0%0%
BananaBrain17%10%0%30%20%30%10%0%30%10%30%
DaQin90%90%80%90%90%90%80%90%100%90%100%
Steamhammer41%60%40%20%20%60%50%60%40%50%10%
Microwave44%50%0%60%40%50%50%50%60%30%50%
Iron55%0%50%60%30%50%100%50%80%50%80%
XiaoYi49%60%90%70%10%20%60%40%20%70%50%
McRave67%70%70%50%80%40%30%80%80%90%80%
UAlbertaBot90%90%80%90%100%90%90%70%100%90%100%
AITP72%70%60%60%90%80%20%70%90%90%90%
BunkerBoxeR99%100%100%100%100%100%90%100%100%100%100%
overall52.08%50%48%52%48%51%48%51%59%56%57%


MicrowaveoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus8%0%0%20%20%0%10%10%10%10%0%
PurpleWave7%0%10%10%0%10%10%10%10%10%0%
BananaBrain29%10%30%10%30%40%30%40%20%40%40%
DaQin17%10%40%40%10%0%20%10%0%20%20%
Steamhammer75%90%70%50%70%70%80%60%80%90%90%
ZZZKBot56%50%100%40%60%50%50%50%40%70%50%
Iron13%0%0%10%10%0%20%50%20%10%10%
XiaoYi65%60%80%70%60%80%40%80%60%30%90%
McRave64%60%80%100%70%50%60%70%60%30%60%
UAlbertaBot82%60%100%90%60%80%60%80%90%100%100%
AITP93%90%90%70%100%100%90%100%100%100%90%
BunkerBoxeR99%100%100%100%90%100%100%100%100%100%100%
overall50.67%44%58%51%48%48%48%55%49%51%54%


IronoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus1%0%0%0%0%0%10%0%0%0%0%
PurpleWave2%0%0%10%0%0%0%0%0%0%10%
BananaBrain41%60%30%50%40%40%30%20%50%30%60%
DaQin8%0%10%0%10%0%10%0%20%30%0%
Steamhammer33%30%10%0%60%60%10%40%40%0%80%
ZZZKBot45%100%50%40%70%50%0%50%20%50%20%
Microwave87%100%100%90%90%100%80%50%80%90%90%
XiaoYi26%10%50%0%50%20%40%20%30%40%0%
McRave65%70%80%80%80%80%70%50%40%40%60%
UAlbertaBot90%100%90%100%90%90%90%60%90%90%100%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR93%100%100%80%80%100%90%100%90%90%100%
overall49.25%56%52%46%56%53%44%41%47%47%52%


XiaoYioverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus4%0%0%0%10%30%0%0%0%0%0%
PurpleWave3%10%0%0%0%0%10%0%10%0%0%
BananaBrain43%60%20%60%50%50%60%20%60%20%30%
DaQin18%0%0%10%0%10%40%30%40%40%10%
Steamhammer50%70%40%50%80%90%20%50%20%40%40%
ZZZKBot51%40%10%30%90%80%40%60%80%30%50%
Microwave35%40%20%30%40%20%60%20%40%70%10%
Iron74%90%50%100%50%80%60%80%70%60%100%
McRave36%40%10%50%30%40%30%40%30%60%30%
UAlbertaBot73%44%60%90%80%80%75%60%89%89%60%
AITP100%100%100%100%100%100%100%100%100%100%100%
BunkerBoxeR98%100%100%100%90%100%100%100%90%100%100%
overall48.62%50%34%52%52%57%49%47%52%50%44%


McRaveoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus1%0%0%0%0%0%0%0%10%0%0%
PurpleWave11%0%10%0%0%10%20%0%30%30%10%
BananaBrain31%30%40%10%30%50%20%30%30%30%40%
DaQin59%60%40%60%60%80%50%70%60%70%40%
Steamhammer14%0%10%0%0%30%0%10%10%60%20%
ZZZKBot33%30%30%50%20%60%70%20%20%10%20%
Microwave36%40%20%0%30%50%40%30%40%70%40%
Iron35%30%20%20%20%20%30%50%60%60%40%
XiaoYi64%60%90%50%70%60%70%60%70%40%70%
UAlbertaBot43%40%60%50%10%40%30%20%70%40%70%
AITP82%80%70%60%100%90%80%80%100%100%60%
BunkerBoxeR71%70%80%70%50%80%70%70%80%70%70%
overall40.00%37%39%31%32%48%40%37%48%48%40%


UAlbertaBotoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus1%0%0%0%0%0%0%0%10%0%0%
PurpleWave2%0%0%0%0%0%0%22%0%0%0%
BananaBrain16%20%10%20%10%20%10%20%11%10%30%
DaQin22%30%0%20%10%30%20%20%30%40%20%
Steamhammer9%10%10%10%11%20%10%11%10%0%0%
ZZZKBot10%10%20%10%0%10%10%30%0%10%0%
Microwave18%40%0%10%40%20%40%20%10%0%0%
Iron10%0%10%0%10%10%10%40%10%10%0%
XiaoYi27%56%40%10%20%20%25%40%11%11%40%
McRave57%60%40%50%90%60%70%80%30%60%30%
AITP75%89%80%50%78%90%70%33%90%70%100%
BunkerBoxeR89%70%90%90%80%90%100%80%100%100%90%
overall28.04%31%25%22%29%31%31%33%27%26%25%


AITPoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus0%0%0%0%0%0%0%0%0%0%0%
PurpleWave0%0%0%0%0%0%0%0%0%0%0%
BananaBrain0%0%0%0%0%0%0%0%0%0%0%
DaQin0%0%0%0%0%0%0%0%0%0%0%
Steamhammer3%10%0%10%0%0%10%0%0%0%0%
ZZZKBot28%30%40%40%10%20%80%30%10%10%10%
Microwave7%10%10%30%0%0%10%0%0%0%10%
Iron0%0%0%0%0%0%0%0%0%0%0%
XiaoYi0%0%0%0%0%0%0%0%0%0%0%
McRave18%20%30%40%0%10%20%20%0%0%40%
UAlbertaBot25%11%20%50%22%10%30%67%10%30%0%
BunkerBoxeR59%30%20%70%40%70%100%80%60%50%70%
overall11.62%9%10%20%6%9%21%16%7%8%11%


BunkerBoxeRoverallBenzenDestinHeartbAztecTauCroAndromCircuiEmpireFortrePython
Locutus1%0%0%0%0%0%0%0%10%0%0%
PurpleWave3%0%10%10%0%0%0%0%10%0%0%
BananaBrain0%0%0%0%0%0%0%0%0%0%0%
DaQin1%0%0%0%10%0%0%0%0%0%0%
Steamhammer0%0%0%0%0%0%0%0%0%0%0%
ZZZKBot1%0%0%0%0%0%10%0%0%0%0%
Microwave1%0%0%0%10%0%0%0%0%0%0%
Iron7%0%0%20%20%0%10%0%10%10%0%
XiaoYi2%0%0%0%10%0%0%0%10%0%0%
McRave29%30%20%30%50%20%30%30%20%30%30%
UAlbertaBot11%30%10%10%20%10%0%20%0%0%10%
AITP41%70%80%30%60%30%0%20%40%50%30%
overall8.08%11%10%8%15%5%4%6%8%8%6%

The zergs and terrans seem more sensitive to the map than protoss. For example, Locutus vs PurpleWave win rates vary from 30% to 60%, which could be entirely due to statistical fluctuation, while ZZZKBot vs Iron ranges from 0% to 100%, which is not random. I imagine that ZZZKBot’s map selectivity has to do with its learning algorithm. But overall, there are many cases where the map seems to make a difference against opponents of similar strength. I think bots will benefit from more sensitivity to the map design.

AIIDE 2019 - per-map crosstables

A separate crosstable for each of the 10 maps. Most cells have only 10 games in them (some have fewer because of unsuccessful games), so the numbers are noisy. Nevertheless, I think the tables are full of insights—so full that it’s easy to be overwhelmed. I left the game counts out of the cells to make the tables more compact, so they are easier to compare.

Watch how ZZZKBot versus Iron varies strongly depending on the map.

(2) Benzene

PurpleWave’s favorite map. Is that because of Purple pathfinding skills? But Locutus liked the map too.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus95.00%50%100%100%90%100%100%100%100%100%100%100%100%
2PurpleWave90.83%50%80%80%90%100%100%100%90%100%100%100%100%
3BananaBrain63.33%0%20%30%100%90%90%40%40%70%80%100%100%
4DaQin66.67%0%20%70%100%10%90%100%100%40%70%100%100%
5Steamhammer45.83%10%10%0%0%40%10%70%30%100%90%90%100%
6ZZZKBot50.00%0%0%10%90%60%50%0%60%70%90%70%100%
7Microwave44.17%0%0%10%10%90%50%0%60%60%60%90%100%
8Iron55.83%0%0%60%0%30%100%100%10%70%100%100%100%
9XiaoYi49.58%0%10%60%0%70%40%40%90%40%44%100%100%
10McRave36.67%0%0%30%60%0%30%40%30%60%40%80%70%
11UAlbertaBot31.36%0%0%20%30%10%10%40%0%56%60%89%70%
12AITP9.24%0%0%0%0%10%30%10%0%0%20%11%30%
13BunkerBoxeR10.83%0%0%0%0%0%0%0%0%0%30%30%70%

(2) Destination

Key area on the map: Over the wall behind the enemy natural. Build an e-bay there and send tanks. Float the e-bay and siege the tanks, maybe add turrets for air defense. How many defending bots would survive? XiaoYi suffered badly on this map, but that’s not why.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus94.17%50%100%80%100%100%100%100%100%100%100%100%100%
2PurpleWave88.33%50%70%70%100%100%90%100%100%90%100%100%90%
3BananaBrain67.50%0%30%40%70%100%70%70%80%60%90%100%100%
4DaQin70.00%20%30%60%100%20%60%90%100%60%100%100%100%
5Steamhammer54.17%0%0%30%0%60%30%90%60%90%90%100%100%
6ZZZKBot47.50%0%0%0%80%40%0%50%90%70%80%60%100%
7Microwave58.33%0%10%30%40%70%100%0%80%80%100%90%100%
8Iron51.67%0%0%30%10%10%50%100%50%80%90%100%100%
9XiaoYi34.17%0%0%20%0%40%10%20%50%10%60%100%100%
10McRave39.17%0%10%40%40%10%30%20%20%90%60%70%80%
11UAlbertaBot25.00%0%0%10%0%10%20%0%10%40%40%80%90%
12AITP10.00%0%0%0%0%0%40%10%0%0%30%20%20%
13BunkerBoxeR10.00%0%10%0%0%0%0%0%0%0%20%10%80%

(2) Heartbreak Ridge

It’s a tricky map, but bots don’t seem to realize that. Steamhammer liked it a bit and Iron disliked it, but no bot stood out as particularly loving or hating it.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus91.67%40%80%100%100%100%80%100%100%100%100%100%100%
2PurpleWave90.00%60%80%100%70%100%90%90%100%100%100%100%90%
3BananaBrain67.50%20%20%60%90%70%90%50%40%90%80%100%100%
4DaQin59.17%0%0%40%90%10%60%100%90%40%80%100%100%
5Steamhammer59.17%0%30%10%10%80%50%100%50%100%90%90%100%
6ZZZKBot52.50%0%0%30%90%20%60%60%70%50%90%60%100%
7Microwave50.83%20%10%10%40%50%40%10%70%100%90%70%100%
8Iron45.83%0%10%50%0%0%40%90%0%80%100%100%80%
9XiaoYi51.67%0%0%60%10%50%30%30%100%50%90%100%100%
10McRave30.83%0%0%10%60%0%50%0%20%50%50%60%70%
11UAlbertaBot22.50%0%0%20%20%10%10%10%0%10%50%50%90%
12AITP20.00%0%0%0%0%10%40%30%0%0%40%50%70%
13BunkerBoxeR8.33%0%10%0%0%0%0%0%20%0%30%10%30%

(3) Aztec

A 3-player map with low-ground main bases. I like this map. DaQin liked it too, since it upset Locutus, unlike on any other map.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus85.00%40%100%20%90%100%80%100%90%100%100%100%100%
2PurpleWave87.50%60%50%100%40%100%100%100%100%100%100%100%100%
3BananaBrain69.17%0%50%80%80%80%70%60%50%70%90%100%100%
4DaQin67.50%80%0%20%100%10%90%90%100%40%90%100%90%
5Steamhammer53.78%10%60%20%0%80%30%40%20%100%89%100%100%
6ZZZKBot48.33%0%0%20%90%20%40%30%10%80%100%90%100%
7Microwave48.33%20%0%30%10%70%60%10%60%70%60%100%90%
8Iron55.83%0%0%40%10%60%70%90%50%80%90%100%80%
9XiaoYi51.67%10%0%50%0%80%90%40%50%30%80%100%90%
10McRave32.50%0%0%30%60%0%20%30%20%70%10%100%50%
11UAlbertaBot28.81%0%0%10%10%11%0%40%10%20%90%78%80%
12AITP5.88%0%0%0%0%0%10%0%0%0%0%22%40%
13BunkerBoxeR15.00%0%0%0%10%0%0%10%20%10%50%20%60%

(3) Tau Cross

Bases beyond the natural are open to attack. I think that is why Steamhammer had trouble. It was XiaoYi’s best map.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus90.83%40%100%80%100%100%100%100%70%100%100%100%100%
2PurpleWave85.83%60%60%70%60%100%90%100%100%90%100%100%100%
3BananaBrain61.67%0%40%50%80%70%60%60%50%50%80%100%100%
4DaQin65.83%20%30%50%100%10%100%100%90%20%70%100%100%
5Steamhammer44.17%0%40%20%0%40%30%40%10%70%80%100%100%
6ZZZKBot50.83%0%0%30%90%60%50%50%20%40%90%80%100%
7Microwave48.33%0%10%40%0%70%50%0%80%50%80%100%100%
8Iron53.33%0%0%40%0%60%50%100%20%80%90%100%100%
9XiaoYi56.67%30%0%50%10%90%80%20%80%40%80%100%100%
10McRave47.50%0%10%50%80%30%60%50%20%60%40%90%80%
11UAlbertaBot30.83%0%0%20%30%20%10%20%10%20%60%90%90%
12AITP9.17%0%0%0%0%0%20%0%0%0%10%10%70%
13BunkerBoxeR5.00%0%0%0%0%0%0%0%0%0%20%10%30%

(4) Andromeda

A bot that understands when to take the in-base mineral-only gains an edge. But so would a bot which understands how to attack it from outside, not as common a skill.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus92.50%60%80%100%90%100%90%90%100%100%100%100%100%
2PurpleWave80.83%40%10%80%80%100%90%100%90%80%100%100%100%
3BananaBrain70.83%20%90%30%70%90%70%70%40%80%90%100%100%
4DaQin64.17%0%20%70%100%20%80%90%60%50%80%100%100%
5Steamhammer56.67%10%20%30%0%50%20%90%80%100%90%90%100%
6ZZZKBot48.33%0%0%10%80%50%50%100%60%30%90%20%90%
7Microwave47.50%10%10%30%20%80%50%20%40%60%60%90%100%
8Iron44.17%10%0%30%10%10%0%80%40%70%90%100%90%
9XiaoYi49.15%0%10%60%40%20%40%60%60%30%75%100%100%
10McRave40.00%0%20%20%50%0%70%40%30%70%30%80%70%
11UAlbertaBot30.51%0%0%10%20%10%10%40%10%25%70%70%100%
12AITP20.83%0%0%0%0%10%80%10%0%0%20%30%100%
13BunkerBoxeR4.17%0%0%0%0%0%10%0%10%0%30%0%0%

(4) Circuit Breaker

Iron was unhappy with this map, though to me it seems like a good map for Iron’s skills.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus90.83%40%70%90%100%100%90%100%100%100%100%100%100%
2PurpleWave85.71%60%40%100%60%100%90%100%100%100%78%100%100%
3BananaBrain76.67%30%60%60%100%100%60%80%80%70%80%100%100%
4DaQin60.83%10%0%40%100%10%90%100%70%30%80%100%100%
5Steamhammer50.42%0%40%0%0%40%40%60%50%90%89%100%100%
6ZZZKBot50.83%0%0%0%90%60%50%50%40%80%70%70%100%
7Microwave55.00%10%10%40%10%60%50%50%80%70%80%100%100%
8Iron40.83%0%0%20%0%40%50%50%20%50%60%100%100%
9XiaoYi46.67%0%0%20%30%50%60%20%80%40%60%100%100%
10McRave36.67%0%0%30%70%10%20%30%50%60%20%80%70%
11UAlbertaBot33.33%0%22%20%20%11%30%20%40%40%80%33%80%
12AITP15.97%0%0%0%0%0%30%0%0%0%20%67%80%
13BunkerBoxeR5.83%0%0%0%0%0%0%0%0%0%30%20%20%

(4) Empire of the Sun

ZZZKBot’s favorite map.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus89.17%30%100%90%100%90%90%100%100%90%90%100%90%
2PurpleWave83.05%70%20%100%70%100%90%100%90%70%100%100%90%
3BananaBrain69.75%0%80%60%100%70%80%50%40%70%89%100%100%
4DaQin55.83%10%0%40%70%0%100%80%60%40%70%100%100%
5Steamhammer55.00%0%30%0%30%60%20%60%80%90%90%100%100%
6ZZZKBot59.17%10%0%30%100%40%60%80%20%80%100%90%100%
7Microwave49.17%10%10%20%0%80%40%20%60%60%90%100%100%
8Iron46.67%0%0%50%20%40%20%80%30%40%90%100%90%
9XiaoYi52.10%0%10%60%40%20%80%40%70%30%89%100%90%
10McRave48.33%10%30%30%60%10%20%40%60%70%70%100%80%
11UAlbertaBot26.72%10%0%11%30%10%0%10%10%11%30%90%100%
12AITP6.67%0%0%0%0%0%10%0%0%0%0%10%60%
13BunkerBoxeR8.33%10%10%0%0%0%0%0%10%10%20%0%40%

(4) Fortress

Fortress has corner bases that can be reached either by air, or by workers which mineral-walk through a gate. I have yet to see a bot that can take advantage of the corner bases. I'll be watching replays to see if I can find one. BananaBrain did well on this map, it's a candidate.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus90.00%40%70%80%100%100%90%100%100%100%100%100%100%
2PurpleWave81.67%60%0%70%90%100%90%100%100%70%100%100%100%
3BananaBrain76.67%30%100%60%70%90%60%70%80%70%90%100%100%
4DaQin57.50%20%30%40%90%10%80%70%60%30%60%100%100%
5Steamhammer50.83%0%10%30%10%50%10%100%60%40%100%100%100%
6ZZZKBot55.83%0%0%10%90%50%30%50%70%90%90%90%100%
7Microwave50.83%10%10%40%20%90%70%10%30%30%100%100%100%
8Iron46.67%0%0%30%30%0%50%90%40%40%90%100%90%
9XiaoYi50.42%0%0%20%40%40%30%70%60%60%89%100%100%
10McRave48.33%0%30%30%70%60%10%70%60%40%40%100%70%
11UAlbertaBot26.05%0%0%10%40%0%10%0%10%11%60%70%100%
12AITP7.50%0%0%0%0%0%10%0%0%0%0%30%50%
13BunkerBoxeR7.50%0%0%0%0%0%0%0%10%0%30%0%50%

(4) Python

Python is a grand old classic, a largely successful attempt to redesign Lost Temple without all the imbalances. It has 2 island bases.

#botoverallLocuPurpBanaDaQiSteaZZZKMicrIronXiaoMcRaUAlbAITPBunk
1Locutus95.00%60%90%90%100%100%100%100%100%100%100%100%100%
2PurpleWave81.51%40%30%80%50%100%100%90%100%90%100%100%100%
3BananaBrain65.00%10%70%40%90%70%60%40%70%60%70%100%100%
4DaQin65.83%10%20%60%90%0%80%100%90%60%80%100%100%
5Steamhammer52.50%0%50%10%10%90%10%20%60%80%100%100%100%
6ZZZKBot57.50%0%0%30%100%10%50%80%50%80%100%90%100%
7Microwave54.17%0%0%40%20%90%50%10%90%60%100%90%100%
8Iron51.67%0%10%60%0%80%20%90%0%60%100%100%100%
9XiaoYi44.17%0%0%30%10%40%50%10%100%30%60%100%100%
10McRave40.00%0%10%40%40%20%20%40%40%70%70%60%70%
11UAlbertaBot25.42%0%0%30%20%0%0%0%0%40%30%100%90%
12AITP10.92%0%0%0%0%0%10%10%0%0%40%0%70%
13BunkerBoxeR5.83%0%0%0%0%0%0%0%0%0%30%10%30%

Next: I want to present the same information in a different format that I hope will be easier to draw lessons from.