Microwave keeps its result files in the same format as UAlbertaBot: A file for each opponent, and in the file a list of strategies tried, each with win and loss counts. But Microwave independently restricts the win count and the loss count to not exceed 10. This amounts to intentionally forgetting older history when there has been a lot of it. The advantage is that Microwave adapts its strategies more quickly if the opponent shifts its play. The disadvantage, of course, is that information is thrown away. As a side effect, the numbers in the “total” and “overall” cells of my tables are not too informative.
This post looks at Microwave’s result_*.txt
files for each opponent, since it’s what I’ve done before and I already had a script to parse them. This year Microwave also kept history_*.txt
files with a record of each game. I could get a fuller picture of what Microwave did from the history files. I’m not sure whether Microwave uses the history files to make decisions. Still, if this is about “what Microwave learned,” then the result files are what Microwave learned, at least in large part.
Microwave has pre-learned data files for a number of opponents. Data from those files survived to be included in these tables. In other words, the tables here include not only tournament games, but in some cases preparation games played before the tournament.
Microwave’s author MicroDK commented that Microwave might have a bug in keeping its learning files, since the numbers did not always agree with official tournament results. As explained yesterday for UAlbertaBot, the player cannot always know what the tournament manager decides is the outcome of the game. Between that and the pre-learned data, I see reason to doubt that Microwave had a bug. But I didn’t look into details.
This year Microwave recorded a total of 32 strategies, compared to 19 last year. I tried to keep the tables tractable by breaking them down by opponent race, since not all strategies were tried against all races. Nevertheless, prepare to scroll right!
terran
It seems that most of Microwave’s openings worked about equally poorly against Iron, which is interesting and hard for me to explain. 2 hatch muta equals 3 hatch hydra bust equals 7 pool—among others? XiaoYi was vulnerable to rushes, and Microwave settled on 7 pool. After seeing the learning files of only 2 bots, I’m already getting a picture of XiaoYi as strong but apparently not robust against tricky strategies; UAlbertaBot chose DT rush against it. AITP and BunkerBoxeR were easy opponents and seem to have been vulnerable to the first thing Microwave tried, so that zerg never felt the need to vary.
The tournament had 100 rounds. Totals of more than 100 games versus an opponent, as versus Iron here, are a sign that pre-learned data was carried over. Microwave did not have time during the competition to try this many strategies so many times each.
# | bot | total | 10Hatch9Pool9gas | 2HatchHydra | 2HatchLurker | 2HatchLurkerAllIn | 2HatchMuta | 3HatchHydraBust | 3HatchHydraExpo | 3HatchLingBust | 3HatchPoolHydra | 4HatchBeforeGas | 4PoolHard | 4PoolSoft | 5Pool | 5PoolSpeed | 6Pool | 6PoolSpeed | 7Pool | 8Pool | 9Pool | 9PoolLurker | 9PoolSpeed | 9PoolSpeedLing | OverpoolTurtle | ZvZ_Overpool11Gas |
8 | iron | 63-175 26% | 1-5 17% | 1-5 17% | 1-5 17% | 2-7 22% | 5-10 33% | 5-10 33% | 1-5 17% | 0-5 0% | 1-5 17% | 2-7 22% | 5-10 33% | 5-10 33% | 1-5 17% | 5-10 33% | 1-5 17% | 3-8 27% | 5-10 33% | 5-10 33% | 3-8 27% | 4-10 29% | 2-7 22% | 2-7 22% | 3-8 27% | 0-3 0% |
9 | xiaoyi | 22-13 63% | 0-2 0% | - | 0-1 0% | - | 0-2 0% | - | - | - | - | - | - | 10-4 71% | 1-1 50% | - | - | - | 10-0 100% | - | 1-1 50% | - | - | 0-2 0% | - | - |
12 | aitp | 10-0 100% | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | 10-0 100% | - | - |
13 | bunkerboxer | 10-0 100% | - | - | - | - | - | - | - | - | - | - | - | - | 10-0 100% | - | - | - | - | - | - | - | - | - | - | - |
overall | - 36% | 1-7 12% | 1-5 17% | 1-6 14% | 2-7 22% | 5-12 29% | 5-10 33% | 1-5 17% | 0-5 0% | 1-5 17% | 2-7 22% | 5-10 33% | 15-14 52% | 12-6 67% | 5-10 33% | 1-5 17% | 3-8 27% | 15-10 60% | 5-10 33% | 4-9 31% | 4-10 29% | 2-7 22% | 12-9 57% | 3-8 27% | 0-3 0% |
protoss
Aha, Bananabrain had a weakness against Microwave’s 3 hatch zergling bust! I’ve seen the same on BASIL, e.g. Microwave-BananaBrain on Empire of the Sun, where BananaBrain was negligent in setting up the defense of its natural. In general, Bananabrain showed sensitivity to the opponent’s strategy; the other top protoss bots were more consistent.
# | bot | total | 10Hatch9Pool9gas | 2HatchHydra | 2HatchLurker | 2HatchLurkerAllIn | 2HatchMuta | 3HatchHydraBust | 3HatchHydraExpo | 3HatchLingBust | 3HatchPoolHydra | 4HatchBeforeGas | 4PoolHard | 4PoolSoft | 5Pool | 5PoolSpeed | 6Pool | 6PoolSpeed | 7Pool | 8Pool | 9Pool | 9PoolLurker | 9PoolSpeed | 9PoolSpeedLing | ZvP_10Hatch9Pool | ZvZ_Overgas11Pool | ZvZ_Overgas9Pool | ZvZ_Overpool11Gas |
1 | locutus | 0-202 0% | 0-10 0% | 0-10 0% | 0-10 0% | 0-8 0% | 0-10 0% | 0-10 0% | - | 0-8 0% | 0-8 0% | 0-8 0% | 0-10 0% | 0-10 0% | 0-10 0% | 0-8 0% | 0-8 0% | 0-8 0% | 0-10 0% | 0-8 0% | 0-10 0% | 0-7 0% | 0-10 0% | 0-7 0% | 0-7 0% | - | - | 0-7 0% |
2 | purplewave | 26-154 14% | 2-10 17% | 2-9 18% | 0-6 0% | 0-5 0% | 2-10 17% | 2-10 17% | 0-4 0% | 3-10 23% | 0-4 0% | 0-4 0% | 0-3 0% | 3-10 23% | 3-10 23% | 0-3 0% | 0-3 0% | 0-3 0% | 3-10 23% | 2-9 18% | 0-3 0% | 0-5 0% | 1-7 12% | 3-10 23% | 0-3 0% | - | - | 0-3 0% |
3 | bananabrain | 85-130 40% | 1-3 25% | 2-4 33% | 2-5 29% | 1-5 17% | 2-4 33% | 0-2 0% | 1-4 20% | 10-4 71% | 1-4 20% | 0-5 0% | 6-7 46% | 10-9 53% | 10-9 53% | 5-7 42% | 3-5 38% | 4-6 40% | 1-3 25% | 4-6 40% | 4-6 40% | 0-5 0% | 2-4 33% | 4-6 40% | 0-2 0% | - | 7-8 47% | 5-7 42% |
4 | daqin | 8-64 11% | 2-9 18% | 0-4 0% | 0-4 0% | - | 3-10 23% | 0-3 0% | - | 3-10 23% | 0-3 0% | - | - | 0-3 0% | 0-3 0% | - | - | - | 0-3 0% | - | 0-3 0% | - | 0-3 0% | 0-3 0% | 0-3 0% | - | - | - |
10 | mcrave | 95-78 55% | 2-2 50% | 2-3 40% | 5-3 62% | 2-3 40% | 10-4 71% | 10-0 100% | 0-4 0% | 2-3 40% | 1-2 33% | 1-4 20% | 3-2 60% | 10-4 71% | 1-4 20% | 2-3 40% | 5-4 56% | 10-5 67% | 4-5 44% | 2-3 40% | 7-4 64% | 0-3 0% | 3-3 50% | 3-2 60% | 2-2 50% | 8-4 67% | - | 0-2 0% |
overall | - 25% | 7-34 17% | 6-30 17% | 7-28 20% | 3-21 12% | 17-38 31% | 12-25 32% | 1-12 8% | 18-35 34% | 2-21 9% | 1-21 5% | 9-22 29% | 23-36 39% | 14-36 28% | 7-21 25% | 8-20 29% | 14-22 39% | 8-31 21% | 8-26 24% | 11-26 30% | 0-20 0% | 6-27 18% | 10-28 26% | 2-17 11% | 8-4 67% | 7-8 47% | 5-19 21% |
zerg
Steamhammer and ZZZKBot are opposite opponents, from Microwave’s point of view. Whatever worked against one did not work against the other. Most of the numbers in Steamhammer’s row, by the way, are from preparation games. I see the same numbers in the pre-learned data file. According to the history file, Microwave played its 9 pool speed opening in every game.
# | bot | total | 12Pool | 4PoolHard | 4PoolSoft | 5Pool | 5PoolSpeed | 6Pool | 6PoolSpeed | 7Pool | 8Pool | 9HatchMain8Pool8Gas | 9PoolHatch | 9PoolSpeed | 9PoolSunken | OverpoolSpeed | OverpoolTurtle | ZvZ_Overgas11Pool | ZvZ_Overpool11Gas |
5 | steamhammer | 26-16 62% | 2-2 50% | - | - | 1-2 33% | - | - | - | - | - | 2-2 50% | 1-2 33% | 10-0 100% | 1-2 33% | 4-3 57% | - | - | 5-3 62% |
6 | zzzkbot | 67-70 49% | 0-2 0% | 1-5 17% | 0-2 0% | 10-7 59% | 0-2 0% | 0-2 0% | 5-10 33% | 1-5 17% | 7-10 41% | 10-7 59% | 10-4 71% | 0-2 0% | 0-2 0% | 3-4 43% | 10-4 71% | 10-0 100% | 0-2 0% |
overall | - 52% | 2-4 33% | 1-5 17% | 0-2 0% | 11-9 55% | 0-2 0% | 0-2 0% | 5-10 33% | 1-5 17% | 7-10 41% | 12-9 57% | 11-6 65% | 10-2 83% | 1-4 20% | 7-7 50% | 10-4 71% | 10-0 100% | 5-5 50% |
random
UAlbertaBot was the only random participant. It’s striking how similar openings can have different outcomes, though the numbers are noisy because the game counts intentionally limited and an opening that makes a bad first impression may not be repeated.
# | bot | total | 4PoolHard | 4PoolSoft | 5Pool | 5PoolSpeed | 6Pool | 6PoolSpeed | 7Pool | 8Pool | 9PoolSpeedLing |
11 | ualbertabot | 34-21 62% | 5-4 56% | 10-0 100% | 4-4 50% | 10-3 77% | 4-3 57% | 1-2 33% | 0-2 0% | 0-2 0% | 0-1 0% |
overall | - 62% | 5-4 56% | 10-0 100% | 4-4 50% | 10-3 77% | 4-3 57% | 1-2 33% | 0-2 0% | 0-2 0% | 0-1 0% |