archive by month
Skip to content

AIIDE 2022 alternate version on physical hardware

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

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

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

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

Hardware for the alternate version AIIDE 2022 tournament.

AIIDE 2022 - what bots wrote data?

A brief note.

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

Bots that did not compete last year:

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

Styx did not write learning files.

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

new bot Trident

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

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

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

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

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

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

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

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

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

AIIDE 2022 - the learning curves

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

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

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

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

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

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

AIIDE 2022 - map tables by bot

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AIIDE 2022 - maps and game durations

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

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

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

game durations

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

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

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

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

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

Stardust

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

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

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

Next: Breaking down results by map and opponent.

AIIDE 2022 - first look at results

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

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

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

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

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

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

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

by race

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

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

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

Next: Map tables.