AIIDE 2020 - BananaBrain versus McRave
If both bots in a pairing write history files, and both record all 150 games of the tournament, then the history files can be aligned and we can compare what the bots were thinking in each game. So far, between the limitations of the data and the limitations of my script, I’m only ready to do that for a few pairings. Dragon in particular often did not record all 150 games, and I’d rather not try to align game records when there are gaps in the histories (there is enough data to do it programmatically, but it’s a pain and risks errors). Also my script depends on parsing out data into a specific format, and it is only implemented for 4 bots so far (#3 BananaBrain, #4 Dragon, #5 McRave, #6 Microwave—alphabetical order and their finishing order were the same).
Today is BananaBrain versus McRave. The first BananaBrain line in its file about McRave:
2020-10-09 20:56:04,2,(2)Destination.scx,PvZ_9/9proxygate,Z_overpool,7.6,1
The first McRave line in its history file about BananaBrain (we’re told it doesn’t use this data in games, but it’s there and we can analyze it):
Lost,Destination,7:30,2Gate,Proxy,ZealotRush,PoolHatch,Overpool,2HatchSpeedling,1:21,1:21,1:21,5,Zerg_Larva,30,Zerg_Zergling,15,Zerg_Drone,3,Zerg_Overlord,24,Protoss_Probe,16,Protoss_Zealot,1,Protoss_Corsair Lost,HeartbreakRidge,17:40,2Gate,Main,Corsair,PoolHatch,Overpool,2HatchMuta,2:01,2:01,5:10,2,Zerg_Larva,16,Zerg_Zergling,42,Zerg_Drone,10,Zerg_Overlord,28,Zerg_Mutalisk,18,Zerg_Scourge,89,Protoss_Probe,54,Protoss_Zealot,23,Protoss_Dragoon,1,Protoss_High_Templar,1,Protoss_Shuttle,33,Protoss_Corsair,5,Protoss_Dark_Templar,1,Protoss_Reaver,8,Protoss_Scarab
My script extracts key info from each line so we can compare. BananaBrain played PvZ_9/9proxygate
and concluded that McRave answered with Z_overpool
, while McRave played PoolHatch,Overpool,2HatchSpeedling
and classified what it saw from BananaBrain as 2Gate,Proxy,ZealotRush
. In this game, both sides agreed pretty well about what was going on.
bananabrain strategies versus mcrave strategies
This table shows which BananaBrain strategies were successful against which three-part McRave strategies. All the winning rates are from BananaBrain’s point of view. The intersection of the overall row and the overall column says that BananaBrain won 82 out of 150 games throughout the tournament, which can be checked against the official crosstable. The overall row tells how BananaBrain fared against each of McRave’s strategies, which can be checked against my tables of what McRave learned. The overall column tells how each BananaBrain strategy performed, which can be checked against what BananaBrain learned. (Spoiler: All the numbers match.) The center cells are the meat, and show what countered what.
overall | PoolHatch,Overpool,2HatchMuta | PoolHatch,Overpool,2HatchSpeedling | PoolHatch,Overpool,3HatchSpeedling | |
---|---|---|---|---|
overall | 82/150 55% | 72/131 55% | 5/10 50% | 5/9 56% |
PvZ_10/12gate | 9/13 69% | 4/4 100% | - | 5/9 56% |
PvZ_1basespeedzeal | 6/12 50% | 6/12 50% | - | - |
PvZ_2basespeedzeal | 3/9 33% | 3/9 33% | - | - |
PvZ_4gate2archon | 1/6 17% | 1/6 17% | - | - |
PvZ_5gategoon | 9/16 56% | 9/16 56% | - | - |
PvZ_9/9gate | 26/27 96% | 26/27 96% | - | - |
PvZ_9/9proxygate | 5/10 50% | - | 5/10 50% | - |
PvZ_bisu | 1/5 20% | 1/5 20% | - | - |
PvZ_neobisu | 5/11 45% | 5/11 45% | - | - |
PvZ_sairdt | 3/10 30% | 3/10 30% | - | - |
PvZ_sairgoon | 11/17 65% | 11/17 65% | - | - |
PvZ_sairreaver | 1/5 20% | 1/5 20% | - | - |
PvZ_stove | 2/9 22% | 2/9 22% | - | - |
The table makes it plain that 2HatchSpeedling and 3HatchSpeedling were reactions to specific protoss builds, as the author pointed out in a comment. The counter to 10/12 gate at least seems to have been valuable, because McRave lost all 4 games where the 10/12 gate was played but not countered. The 9/9 gate crushed because no counter was played against it; the zealots are a McRave weakness.
bananabrain as seen by mcrave
But wait, there’s more. Both bots recorded not only their own strategy, but the recognized opponent strategy, so we can compare the known strategy of one bot with how the other bot recognized it. Note well: If the recognized strategy looks different than the actual strategy, it is not necessarily a mistake or a scouting miss. The bots may simply be noting different aspects of the game. Only some differences indicate mistakes.
The coloring is from the point of view of BananaBrain. For McRave, red is good and blue is bad.
bananabrain played | # | mcrave recognized |
---|---|---|
PvZ_10/12gate | 13 | 12 2Gate,Main,Corsair | 1 2Gate,Main,DT |
PvZ_1basespeedzeal | 12 | 8 1GateCore,2Zealot,DT | 2 2Gate,Main,DT | 1 2Gate,Main,4Gate | 1 1GateCore,2Zealot,Corsair |
PvZ_2basespeedzeal | 9 | 8 FFE,Forge,Speedlot | 1 FFE,Gateway,Speedlot |
PvZ_4gate2archon | 6 | 2 FFE,Forge,NeoBisu | 2 FFE,Forge,5GateGoon | 1 FFE,Forge,ZealotArchon | 1 FFE,Nexus,NeoBisu |
PvZ_5gategoon | 16 | 14 FFE,Forge,5GateGoon | 2 FFE,Nexus,5GateGoon |
PvZ_9/9gate | 27 | 26 2Gate,Main,Corsair | 1 2Gate,Main,DT |
PvZ_9/9proxygate | 10 | 10 2Gate,Proxy,ZealotRush |
PvZ_bisu | 5 | 3 FFE,Forge,NeoBisu | 2 FFE,Nexus,NeoBisu |
PvZ_neobisu | 11 | 5 FFE,Forge,NeoBisu | 4 FFE,Forge,Speedlot | 2 FFE,Nexus,NeoBisu |
PvZ_sairdt | 10 | 10 1GateCore,2Zealot,Corsair |
PvZ_sairgoon | 17 | 9 FFE,Forge,NeoBisu | 2 FFE,Nexus,5GateGoon | 2 FFE,Nexus,NeoBisu | 2 FFE,Forge,Unknown | 1 FFE,Forge,Speedlot | 1 FFE,Forge,5GateGoon |
PvZ_sairreaver | 5 | 5 FFE,Forge,NeoBisu |
PvZ_stove | 9 | 9 1GateCore,2Zealot,Corsair |
Only 2 games have an Unknown element. Without watching replays, I can’t say that any of McRave’s recognitions are wrong. Seeing PvZ_sairgoon as FFE,Forge,Speedlot could be correct if BananaBrain followed up with zealots in that one game.
I’m not sure what the difference is between FFE,Forge
and FFE,Gateway
and FFE,Nexus
. FFE stands for forge fast expand, which means a forge and a nexus, and then you need a gateway if you’re ever going to make a mobile army, so all three buildings are required. Maybe it’s whatever building McRave saw first.
mcrave as seen by bananabrain
Again, the coloring is from the point of view of BananaBrain.
mcrave played | # | bananabrain recognized |
---|---|---|
PoolHatch,Overpool,2HatchMuta | 131 | 101 Z_overpool | 27 Z_9pool | 3 Z_unknown |
PoolHatch,Overpool,2HatchSpeedling | 10 | 9 Z_overpool | 1 Z_unknown |
PoolHatch,Overpool,3HatchSpeedling | 9 | 8 Z_overpool | 1 Z_9pool |
BananaBrain remembered far less detail about the game than McRave. Overpool is only an initial build order which reaches its end at 9 supply and can be followed up with any tech or unit mix whatsoever. If all you know is that the opponent will start with overpool, the only conclusions you can draw are limits on the opponent’s tech timings and economy. On the other hand, if you do know more about the opponent’s play, can you use the information productively?
more?
I could generate more tables. Various tables showing recognized strategies might make sense. If at least one bot of the pair records the map for each game, it would be easy to break down strategies by map. Is there any particular breakdown you’d like to see?
Update: I added coloring to the “as seen by” tables, to show how win rates vary depending on what the bots recognized.
Comments
McRave on :
McRave on :
Johan de Jong on :
Anyway, I still need to find out why BananaBrain misrecognises McRave's overpool as 9 pool sometimes. I do not believe I have seen that occuring very often with other Zerg bots.
Jay Scott on :
McRave on :