The submitted Steamhammer was mistakenly configured to retain 100 game records per opponent. I had thought it was set for 200, and didn’t double-check. So of the 157 games against each opponent, of which 150 counted in the tournament, I have records for only the final 100. That’s 93 tournament games plus the 7 extra at the end.
My prepared data was successful. For all opponents which I prepared for, the prepared openings were among the highest scoring (including the zero score versus Stardust). It’s notable that Steamhammer’s gas steal was not successful against any opponent, perhaps another sign of an elite tournament. It was either infeasible or abandoned as a failure against every opponent except DaQin, and did no good then.
Steamhammer’s game records are rich with data. To show a little bit more of it, I added a new feature in the opening table. There are new “wins” and “losses” columns showing the median time that winning and losing games with that opening lasted. The median is a better measure than the mean, because we can expect the distribution of game times to be right-tailed: Games are limited to between zero minutes and one hour, but we expect a hump nearer to zero and a long tail of slower games. That inflates the mean and makes it misleading. For the tournament, I turned off surrendering, so Steamhammer played its losses out to the end.
#1 stardust
opening | games | wins | wins | losses | first | last |
10Hatch | 1 | 0% | - | 8:48 | 48 | 48 |
10HatchHydra | 1 | 0% | - | 8:41 | 45 | 45 |
11HatchTurtleHydra | 3 | 0% | - | 10:33 | 14 | 56 |
11HatchTurtleMuta | 3 | 0% | - | 10:40 | 10 | 67 |
11Pool | 1 | 0% | - | 8:48 | 74 | 74 |
12Gas11PoolMuta | 1 | 0% | - | 6:53 | 60 | 60 |
12Hatch_4HatchLing | 1 | 0% | - | 14:08 | 25 | 25 |
2HatchLurkerAllIn | 1 | 0% | - | 9:12 | 65 | 65 |
2x10Hatch | 1 | 0% | - | 8:30 | 95 | 95 |
2x10HatchBurrow | 1 | 0% | - | 9:21 | 55 | 55 |
3HatchHydraExpo | 4 | 0% | - | 8:03 | 23 | 86 |
3HatchLateHydras | 1 | 0% | - | 7:43 | 9 | 9 |
3HatchLing | 1 | 0% | - | 7:54 | 51 | 51 |
3HatchLingBurrow | 1 | 0% | - | 8:31 | 71 | 71 |
3HatchLingExpo | 2 | 0% | - | 8:43 | 6 | 37 |
4HatchBeforeLair | 1 | 0% | - | 7:39 | 47 | 47 |
4PoolSoft | 1 | 0% | - | 8:26 | 68 | 68 |
6Pool | 2 | 0% | - | 9:12 | 75 | 92 |
6PoolHide | 1 | 0% | - | 8:35 | 17 | 17 |
6PoolSpeed | 6 | 0% | - | 8:27 | 3 | 85 |
7DroneGas | 1 | 0% | - | 7:51 | 80 | 80 |
7Pool10Hatch | 1 | 0% | - | 8:16 | 83 | 83 |
7Pool12Hatch | 1 | 0% | - | 8:36 | 50 | 50 |
7Pool6GasLurker B | 1 | 0% | - | 9:38 | 44 | 44 |
7PoolHard | 1 | 0% | - | 14:07 | 41 | 41 |
7PoolHarder | 1 | 0% | - | 8:23 | 76 | 76 |
7PoolMid | 1 | 0% | - | 8:03 | 89 | 89 |
7PoolSoft | 1 | 0% | - | 13:09 | 42 | 42 |
8Hatch7PoolBurrow | 1 | 0% | - | 9:47 | 64 | 64 |
8Hatch7PoolBurrowB | 1 | 0% | - | 8:23 | 5 | 5 |
8Scout | 1 | 0% | - | 8:14 | 87 | 87 |
9HatchExpo9Pool9Gas | 2 | 0% | - | 8:29 | 16 | 94 |
9Pool8Hatch | 1 | 0% | - | 8:17 | 98 | 98 |
9Pool9Hatch | 1 | 0% | - | 10:29 | 70 | 70 |
9PoolBurrow | 1 | 0% | - | 9:34 | 84 | 84 |
9PoolBurrowB | 1 | 0% | - | 8:07 | 4 | 4 |
9PoolHatchSpeed7Drone | 2 | 0% | - | 7:58 | 31 | 73 |
9PoolHatchSpeed7DroneB | 2 | 0% | - | 8:01 | 0 | 24 |
9PoolHatchSpeedAllInB | 1 | 0% | - | 8:41 | 22 | 22 |
9PoolLair | 1 | 0% | - | 7:36 | 99 | 99 |
9PoolLurker | 1 | 0% | - | 9:41 | 27 | 27 |
9PoolSpeed | 2 | 0% | - | 9:03 | 8 | 26 |
9PoolSpire | 1 | 0% | - | 9:03 | 32 | 32 |
9PoolSunkSpeed | 1 | 0% | - | 7:41 | 79 | 79 |
AntiFact_13Pool | 1 | 0% | - | 8:17 | 54 | 54 |
AntiFact_2Hatch | 3 | 0% | - | 7:39 | 69 | 93 |
AntiFactoryHydra | 1 | 0% | - | 7:08 | 63 | 63 |
AntiZeal_12Hatch | 3 | 0% | - | 10:20 | 33 | 77 |
HiveRush | 1 | 0% | - | 6:50 | 30 | 30 |
Over10Hatch | 2 | 0% | - | 10:07 | 15 | 34 |
Over10Hatch1Sunk | 1 | 0% | - | 8:35 | 96 | 96 |
Over10Hatch2Sunk | 3 | 0% | - | 10:33 | 1 | 88 |
Over10Hatch2SunkHard | 1 | 0% | - | 9:15 | 46 | 46 |
Over10HatchBust | 2 | 0% | - | 8:21 | 18 | 49 |
Over10HatchSlowLings | 2 | 0% | - | 8:23 | 61 | 78 |
OverhatchExpoLing | 1 | 0% | - | 8:30 | 13 | 13 |
OverhatchLing | 1 | 0% | - | 10:25 | 58 | 58 |
Overpool14Hatch | 1 | 0% | - | 7:39 | 7 | 7 |
Overpool2HatchLurker | 2 | 0% | - | 9:06 | 43 | 82 |
OverpoolLurker | 1 | 0% | - | 8:48 | 72 | 72 |
OverpoolTurtle 0 | 1 | 0% | - | 8:32 | 2 | 2 |
Overpool_3HatchLing | 1 | 0% | - | 10:29 | 20 | 20 |
PurpleSwarmBuild | 1 | 0% | - | 8:08 | 66 | 66 |
ZvP_2HatchMuta | 2 | 0% | - | 7:55 | 38 | 97 |
ZvP_Overpool3Hatch | 1 | 0% | - | 8:16 | 29 | 29 |
ZvT_13Pool | 2 | 0% | - | 9:18 | 57 | 91 |
ZvT_7Pool | 1 | 0% | - | 8:30 | 81 | 81 |
ZvZ_12Pool | 1 | 0% | - | 7:01 | 53 | 53 |
ZvZ_Overpool11Gas | 1 | 0% | - | 7:50 | 35 | 35 |
ZvZ_Overpool9Gas | 1 | 0% | - | 7:47 | 19 | 19 |
70 openings | 100 | 0% |
- |
8:30 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Heavy rush | 100 | 100% | 0% | 40 | 40% | 0% | 40% | 58% |
Naked expand | | - | - | 2 | 2% | 0% | 0% | 0% |
Unknown | | - | - | 58 | 58% | 0% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 2:54 | 1:47 | 4:11 |
my gas | 99 | 3:17 | 1:34 | 7:33 |
enemy scout | 100 | 1:57 | 1:18 | 7:53 |
enemy combat unit | 100 | 2:41 | 2:21 | 4:37 |
enemy gas | 100 | 4:20 | 3:37 | 6:37 |
enemy air unit | 9 | 9:42 | 8:30 | 11:09 |
enemy cloaked unit | 8 | 9:43 | 9:14 | 11:09 |
game duration | 100 | 8:30 | 6:50 | 18:12 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 10 | 2:12 | 1:58 | 2:21 | 0% | 4:22 |
gas steal success | 6 | 2:15 | 2:03 | 2:31 | 0% | 4:32 |
none or failed | 94 | - | - | - | 0% | 4:17 |
gas steal killed | 6 | 2:47 | 2:42 | 2:58 |
Steamhammer lost every game, but there is still valuable info here. If you’re losing all games, the game duration is a plausible proxy for how much trouble you caused the opponent. Especially so if you tried a rush opening and ended up in a long game—either the rush did some damage, or the opponent overreacted and was slowed down. Here, a couple of 7 pool builds were among the longest games. Steamhammer probably should have repeated them.
Notice the 4 pool and the hive rush. Steamhammer tried the whole range. Steamhammer recognized Stardust’s build in 2 games as nexus without cannons, a reaction that Stardust did not have last year. Otherwise, results are similar to last year’s.
#2 bananabrain
opening | games | wins | wins | losses | first | last |
11Gas10PoolMuta | 1 | 0% | - | 6:04 | 33 | 33 |
11Gas10PoolMutaB | 1 | 0% | - | 6:21 | 56 | 56 |
11HatchTurtleLurker | 15 | 53% | 15:32 | 9:43 | 71 | 98 |
11Pool | 1 | 0% | - | 14:48 | 10 | 10 |
12-11HatchStem | 1 | 0% | - | 16:34 | 78 | 78 |
2x10HatchSlow | 7 | 0% | - | 8:30 | 4 | 95 |
3HatchHydra | 1 | 0% | - | 12:20 | 42 | 42 |
3HatchLingBurrow | 1 | 0% | - | 14:00 | 19 | 19 |
4PoolSoft | 1 | 0% | - | 7:55 | 74 | 74 |
6Scout | 1 | 0% | - | 8:48 | 66 | 66 |
9Hatch8Pool | 1 | 0% | - | 6:12 | 69 | 69 |
9PoolBurrow | 8 | 12% | 16:29 | 12:53 | 43 | 82 |
9PoolHatchSpeed7DroneB | 1 | 0% | - | 10:26 | 1 | 1 |
9PoolHatchSpeedAllIn | 5 | 20% | 9:49 | 6:51 | 58 | 68 |
9PoolHatchSpeedSpire | 8 | 0% | - | 7:21 | 3 | 99 |
9PoolHatchSpeedSpire2 | 1 | 0% | - | 7:02 | 15 | 15 |
9PoolSpeed | 1 | 0% | - | 11:01 | 14 | 14 |
9PoolSpeedAllIn | 1 | 0% | - | 13:02 | 16 | 16 |
9PoolSunkHatch | 1 | 0% | - | 11:50 | 28 | 28 |
AntiFact_Overpool11Hatch | 1 | 0% | - | 13:18 | 93 | 93 |
AntiZeal_12Hatch | 1 | 0% | - | 7:48 | 26 | 26 |
Over10Hatch1Sunk | 1 | 0% | - | 15:10 | 47 | 47 |
Over10Hatch2Sunk | 1 | 0% | - | 14:38 | 27 | 27 |
Over10Hatch2SunkHard | 1 | 0% | - | 16:03 | 36 | 36 |
Over10HatchHydra | 1 | 0% | - | 10:35 | 38 | 38 |
Overgas+1 | 1 | 0% | - | 13:18 | 85 | 85 |
OverhatchExpoLing | 11 | 18% | 7:34 | 14:51 | 24 | 83 |
OverpoolLurker | 1 | 0% | - | 6:15 | 61 | 61 |
OverpoolTurtle | 6 | 17% | 15:01 | 15:59 | 17 | 96 |
ZvP_3HatchPoolHydra | 15 | 7% | 18:18 | 8:27 | 2 | 70 |
ZvT_3HatchMuta | 1 | 0% | - | 15:27 | 0 | 0 |
ZvZ_12HatchMain | 1 | 0% | - | 15:23 | 6 | 6 |
ZvZ_12Pool | 1 | 0% | - | 6:39 | 31 | 31 |
33 openings | 100 | 14% |
15:24 |
10:42 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Fast rush | 2 | 2% | 0% | 11 | 11% | 0% | 0% | 50% |
Heavy rush | 97 | 97% | 14% | 63 | 63% | 13% | 63% | 22% |
Safe expand | 1 | 1% | 0% | 3 | 3% | 67% | 0% | 0% |
Turtle | | - | - | 1 | 1% | 0% | 0% | 0% |
Unknown | | - | - | 22 | 22% | 18% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 3:03 | 1:47 | 4:38 |
my gas | 93 | 2:57 | 1:33 | 7:14 |
enemy scout | 100 | 2:10 | 1:15 | 5:03 |
enemy combat unit | 100 | 2:40 | 2:18 | 5:47 |
enemy gas | 94 | 6:05 | 3:16 | 9:12 |
enemy air unit | 91 | 6:07 | 3:17 | 11:33 |
enemy cloaked unit | 57 | 9:26 | 6:06 | 14:59 |
game duration | 100 | 11:45 | 6:04 | 21:43 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 10 | 2:30 | 1:51 | 3:33 | 10% | 5:42 |
gas steal success | 3 | 2:10 | 1:55 | 2:11 | 0% | 4:22 |
none or failed | 97 | - | - | - | 14% | 6:07 |
gas steal killed | 3 | 2:50 | 2:48 | 2:51 |
In the 150 tournament games, Steamhammer scored 25 wins versus BananaBrain. Of those, 15 were due to BananaBrain suffering a frame timeout. Ouch. The game scores say that BananaBrain was ahead in 11 of the 15 games when it timed out. So the win percentages and times need to be interpreted carefully. The wins overall were longer games than the losses, possibly because BananaBrain was more likely to time out in a longer game with a larger game state to model and more units to control.
11HatchTurtleLurker
scored over 50% in 15 games! Is it particularly good at prompting BananaBrain to time out? If I’d known about it ahead of time, I could have added it to my preparation and perhaps scored higher.
The build 2x10HatchSlow
is shown as tried 7 times with no wins. I know from watching games that the opening scored wins earlier in the tournament, before the final 100 games; that is why it was tried so often later on. The build is very similar to Broken Horn’s 10 hatch-9 hatch-pool, but (I think) slightly more efficient. Apparently BananaBrain learned to avoid lines that lose to the mass of slow zerglings.
Successfully stealing its gas caused BananaBrain to take its gas sooner. I haven’t seen that before. In any case, it was only 3 games; Steamhammer found the gas steal unprofitable.
#3 dragon
opening | games | wins | wins | losses | first | last |
2HatchLurkerAllIn | 1 | 0% | - | 30:51 | 41 | 41 |
3HatchHydra | 1 | 0% | - | 10:16 | 33 | 33 |
5HatchPool | 24 | 71% | 13:23 | 28:23 | 6 | 94 |
7-7HydraLingRush | 1 | 0% | - | 16:57 | 45 | 45 |
9PoolFastLurker | 9 | 33% | 9:16 | 27:47 | 1 | 92 |
9PoolHatchSpeed | 4 | 25% | 3:31 | 16:32 | 17 | 58 |
9PoolSunkSpeed | 2 | 0% | - | 26:54 | 14 | 38 |
AntiFact_13Pool | 17 | 65% | 18:05 | 16:34 | 50 | 96 |
AntiZeal_12Hatch | 1 | 0% | - | 38:54 | 12 | 12 |
ZvP_4HatchPoolHydra | 8 | 62% | 5:57 | 15:58 | 65 | 99 |
ZvT_3HatchMutaExpo | 32 | 78% | 15:50 | 24:55 | 0 | 98 |
11 openings | 100 | 62% |
15:36 |
25:13 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Factory | 41 | 41% | 56% | 17 | 17% | 47% | 24% | 41% |
Naked expand | | - | - | 4 | 4% | 50% | 0% | 0% |
Safe expand | 23 | 23% | 74% | 15 | 15% | 80% | 9% | 48% |
Turtle | | - | - | 1 | 1% | 0% | 0% | 0% |
Unknown | | - | - | 31 | 31% | 68% | 0% | 0% |
Worker rush | 36 | 36% | 61% | 32 | 32% | 59% | 75% | 8% |
timing | # | median | early | late |
my combat unit | 98 | 3:12 | 2:13 | 7:53 |
my gas | 80 | 3:49 | 1:34 | 12:10 |
enemy scout | 98 | 2:11 | 0:53 | 12:07 |
enemy combat unit | 82 | 2:48 | 2:21 | 8:38 |
enemy gas | 81 | 6:04 | 2:44 | 10:40 |
enemy air unit | 74 | 9:39 | 4:31 | 17:18 |
enemy cloaked unit | 62 | 10:51 | 5:50 | 19:39 |
game duration | 100 | 16:28 | 3:31 | 60:00 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 17 | 2:09 | 1:56 | 2:58 | 53% | 6:31 |
gas steal success | 9 | 2:16 | 2:07 | 2:30 | 44% | 7:04 |
none or failed | 91 | - | - | - | 64% | 6:03 |
gas steal killed | 9 | 4:05 | 3:08 | 5:05 |
The most successful openings were 5HatchPool
(5 hatcheries before pool, a supremely greedy build to exploit bots that never attack early) and ZvT_3HatchMutaExpo
, the two openings I selected as preparation. For bots carried over from the previous year, good preparation is easier.
Dragon has a chaotic play style. Steamhammer’s wildest game of the tournament may be Steamhammer-Dragon on Longinus (replay file). Dragon played a V strategy: Vultures, valkyries, and vessels.
#5 mcrave
opening | games | wins | wins | losses | first | last |
11Gas10PoolMuta | 1 | 0% | - | 10:07 | 89 | 89 |
12Gas11PoolLurker | 1 | 0% | - | 9:05 | 40 | 40 |
2HatchHydra | 1 | 0% | - | 6:32 | 45 | 45 |
2HatchMutaPure | 1 | 0% | - | 4:02 | 61 | 61 |
4PoolHard | 3 | 0% | - | 8:52 | 14 | 43 |
9Pool8GasLurker | 1 | 0% | - | 11:25 | 88 | 88 |
9PoolHatchSpeedAllIn | 16 | 62% | 6:03 | 10:25 | 0 | 96 |
9PoolLair | 1 | 0% | - | 4:58 | 68 | 68 |
Over10Hatch11Pool | 18 | 44% | 10:45 | 7:54 | 2 | 81 |
OverhatchLateGas | 1 | 0% | - | 16:08 | 53 | 53 |
ZvZ_12HatchExpo | 1 | 0% | - | 8:18 | 23 | 23 |
ZvZ_12HatchMain | 10 | 30% | 11:05 | 8:26 | 7 | 90 |
ZvZ_OverpoolTurtle | 45 | 78% | 9:27 | 11:10 | 4 | 99 |
13 openings | 100 | 56% |
9:19 |
9:46 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Heavy rush | 23 | 23% | 48% | 5 | 5% | 60% | 4% | 74% |
Turtle | 77 | 77% | 58% | 11 | 11% | 0% | 8% | 87% |
Unknown | | - | - | 84 | 84% | 63% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 99 | 2:26 | 1:49 | 3:19 |
my gas | 94 | 2:09 | 1:43 | 5:02 |
enemy scout | 99 | 2:57 | 0:41 | 5:25 |
enemy combat unit | 100 | 2:32 | 1:49 | 4:26 |
enemy gas | 98 | 3:47 | 2:52 | 6:12 |
enemy air unit | 94 | 5:05 | 4:01 | 7:07 |
enemy cloaked unit | 0 | - | - | - |
game duration | 100 | 9:27 | 4:02 | 24:09 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 7 | 2:13 | 1:58 | 2:55 | 57% | 2:58 |
gas steal success | 0 | - | - | - | - | - |
none or failed | 100 | - | - | - | 56% | 3:47 |
gas steal killed | 0 | - | - | - |
Again two of my prepared builds, 9PoolHatchSpeedAllIn
and ZvZ_OverpoolTurtle
, were the top choices. Both are tough for most zerg bots to handle. My other prepared build, ZvZ_Overgas9Pool
, does not appear in these 100 games. Apparently it flopped and was abandoned early. Rushy builds ended up winning faster than they lost, and more macro builds were the reverse, as you might expect. The timing table shows that McRave went spire nearly every game (overlords do not count as “air units” there), and not slowly. That’s normal for ZvZ, of course, but it shows that McRave did not favor builds to overrun the opponent with zerglings.
#6 willyt
opening | games | wins | wins | losses | first | last |
12Hatch_4HatchLing | 1 | 0% | - | 14:08 | 73 | 73 |
2.5HatchMutaExpo | 4 | 50% | 19:42 | 14:04 | 76 | 94 |
9HatchExpo9Pool9Gas | 1 | 0% | - | 17:39 | 56 | 56 |
9PoolHatchSpeedAllIn | 13 | 38% | 4:53 | 8:51 | 0 | 97 |
9PoolHatchSpeedSpire2 | 1 | 0% | - | 9:33 | 70 | 70 |
9PoolLair | 1 | 0% | - | 16:43 | 30 | 30 |
9PoolLurker | 15 | 80% | 12:15 | 20:15 | 3 | 98 |
9PoolSpeed | 13 | 46% | 6:26 | 12:49 | 1 | 90 |
9PoolSpeedAllIn | 12 | 67% | 5:50 | 9:32 | 12 | 99 |
ZvT_13Pool | 25 | 64% | 19:35 | 20:09 | 4 | 81 |
ZvT_2HatchMuta | 1 | 0% | - | 22:10 | 29 | 29 |
ZvT_3HatchMuta | 13 | 54% | 17:35 | 18:49 | 22 | 78 |
12 openings | 100 | 56% |
13:56 |
14:57 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Factory | 1 | 1% | 100% | 1 | 1% | 100% | 0% | 0% |
Fast rush | 8 | 8% | 38% | 3 | 3% | 67% | 0% | 75% |
Heavy rush | 5 | 5% | 80% | 2 | 2% | 0% | 0% | 60% |
Naked expand | 47 | 47% | 57% | 16 | 16% | 100% | 17% | 64% |
Safe expand | 39 | 39% | 54% | 13 | 13% | 46% | 10% | 67% |
Unknown | | - | - | 65 | 65% | 48% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 2:18 | 2:13 | 5:58 |
my gas | 100 | 2:14 | 1:45 | 6:22 |
enemy scout | 100 | 2:14 | 1:42 | 7:17 |
enemy combat unit | 100 | 2:58 | 2:06 | 6:14 |
enemy gas | 85 | 5:16 | 3:16 | 7:59 |
enemy air unit | 44 | 14:59 | 8:39 | 23:14 |
enemy cloaked unit | 31 | 15:22 | 7:19 | 20:23 |
game duration | 100 | 14:30 | 4:41 | 60:00 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 10 | 2:06 | 1:56 | 3:09 | 10% | 5:34 |
gas steal success | 8 | 2:14 | 2:06 | 3:15 | 0% | 5:42 |
none or failed | 92 | - | - | - | 61% | 5:15 |
gas steal killed | 8 | 3:59 | 3:03 | 4:20 |
WillyT has become much stronger over the past year. It is better at handling Steamhammer’s lurker builds—except for the especially early 9 pool lurker build, which apparently catches it unready. Steamhammer’s improvements in lurker play were important to keep up with progress. I think Steamhammer’s diverse mix of openings was essential to counter WillyT, which has its own diverse mix and will figure out how to counter anything that is too predictable.
Steamhammer’s closest game of the tournament was Steamhammer-WillyT on Empire of the Sun (replay file). Steamhammer decisively stopped WillyT from taking the nearby north island base, but allowed it to hold the distant south island despite scouting it the instant it started. Notice WillyT’s interesting but somewhat uncoordinated dropship play throughout the game.
#7 microwave
opening | games | wins | wins | losses | first | last |
5HatchPool | 1 | 0% | - | 5:23 | 18 | 18 |
8Hatch7Pool | 5 | 80% | 10:15 | 9:32 | 20 | 59 |
973HydraBust | 5 | 40% | 13:28 | 5:16 | 54 | 91 |
9HatchMain9Pool9Gas | 1 | 0% | - | 4:32 | 56 | 56 |
9PoolHatchBurrow | 1 | 0% | - | 5:26 | 46 | 46 |
9PoolHatchSpeedAllIn | 20 | 80% | 6:48 | 12:00 | 0 | 99 |
9PoolHatchSpeedSpire | 24 | 83% | 11:05 | 6:06 | 4 | 93 |
9PoolSpeedSpire | 1 | 0% | - | 11:09 | 81 | 81 |
ZvZ_12HatchMain | 20 | 85% | 11:20 | 17:50 | 65 | 96 |
ZvZ_12PoolMain | 11 | 73% | 9:35 | 5:06 | 8 | 97 |
ZvZ_Overpool9Gas | 11 | 64% | 13:27 | 17:08 | 2 | 42 |
11 openings | 100 | 74% |
11:14 |
8:31 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Fast rush | 17 | 17% | 71% | 14 | 14% | 93% | 6% | 59% |
Heavy rush | 49 | 49% | 71% | 25 | 25% | 76% | 27% | 31% |
Naked expand | 26 | 26% | 81% | 16 | 16% | 62% | 12% | 35% |
Turtle | 8 | 8% | 75% | 9 | 9% | 89% | 12% | 25% |
Unknown | | - | - | 36 | 36% | 67% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 98 | 2:25 | 2:13 | 3:15 |
my gas | 97 | 2:31 | 1:47 | 7:09 |
enemy scout | 98 | 2:30 | 1:22 | 4:43 |
enemy combat unit | 100 | 2:32 | 1:05 | 3:31 |
enemy gas | 66 | 4:35 | 2:25 | 17:32 |
enemy air unit | 52 | 7:51 | 3:43 | 17:33 |
enemy cloaked unit | 0 | - | - | - |
game duration | 100 | 10:57 | 4:27 | 25:22 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 8 | 2:11 | 1:53 | 2:41 | 75% | 4:33 |
gas steal success | 2 | 2:29 | 2:14 | 2:43 | 100% | 4:34 |
none or failed | 98 | - | - | - | 73% | 4:35 |
gas steal killed | 2 | 2:40 | 2:21 | 2:58 |
Microwave had too many weaknesses. Of the 4 openings with 80% plus win rates, 3 were from preparation and one was Steamhammer’s discovery during the tournament. It’s interesting that the 12 hatch build ZvZ_12HatchMain
was faster to win than to lose. I think that means it won with zerglings from its extra larvas.
The plan table shows that Microwave followed its own broad range of plans. In the timing table, see the wide and matching variation in Microwave’s gas timing and air unit timing. Did Microwave never get zergling speed in long games?
#8 daqin
opening | games | wins | wins | losses | first | last |
11Gas10PoolMuta | 1 | 0% | - | 11:29 | 24 | 24 |
2HatchLingAllInSpire | 8 | 12% | 9:37 | 12:16 | 52 | 92 |
2HatchLurkerPure | 1 | 0% | - | 15:31 | 45 | 45 |
2x10HatchSlow | 1 | 0% | - | 9:52 | 55 | 55 |
3HatchHydra | 2 | 0% | - | 17:14 | 72 | 93 |
3HatchHydraBust | 5 | 20% | 18:07 | 12:09 | 22 | 91 |
3HatchHydraExpo | 1 | 0% | - | 11:04 | 6 | 6 |
3HatchLing | 12 | 33% | 7:06 | 11:29 | 3 | 73 |
3HatchLingExpo | 12 | 17% | 34:02 | 11:35 | 36 | 97 |
4HatchBeforeGas | 2 | 0% | - | 12:31 | 2 | 21 |
4HatchBeforeLair | 2 | 0% | - | 11:47 | 67 | 99 |
5HatchBeforeGas | 1 | 0% | - | 11:11 | 68 | 68 |
5PoolHard2Player | 1 | 0% | - | 9:41 | 4 | 4 |
9HatchExpo9Pool9Gas | 10 | 30% | 8:12 | 12:25 | 75 | 95 |
9Pool9Hatch | 1 | 0% | - | 12:24 | 32 | 32 |
AntiZeal_12Hatch | 1 | 0% | - | 11:40 | 41 | 41 |
Over10Hatch11Pool | 1 | 0% | - | 14:04 | 31 | 31 |
Over10Hatch2Sunk | 1 | 0% | - | 15:21 | 70 | 70 |
Over10PoolHydra | 1 | 0% | - | 9:43 | 74 | 74 |
OverhatchExpoLing | 30 | 40% | 6:34 | 10:26 | 0 | 98 |
OverhatchLateGas | 1 | 0% | - | 12:30 | 96 | 96 |
OverhatchMuta | 1 | 0% | - | 14:16 | 29 | 29 |
ZvP_3BaseSpire+Den | 2 | 0% | - | 14:06 | 5 | 25 |
ZvP_3HatchPoolHydra | 2 | 0% | - | 13:17 | 50 | 78 |
24 openings | 100 | 23% |
7:02 |
11:40 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Heavy rush | 4 | 4% | 50% | 10 | 10% | 0% | 25% | 0% |
Naked expand | 3 | 3% | 0% | 11 | 11% | 100% | 0% | 0% |
Safe expand | 58 | 58% | 24% | 41 | 41% | 10% | 40% | 3% |
Turtle | 35 | 35% | 20% | 34 | 34% | 24% | 40% | 6% |
Unknown | | - | - | 4 | 4% | 0% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 3:07 | 1:53 | 3:54 |
my gas | 100 | 2:47 | 1:47 | 6:26 |
enemy scout | 100 | 1:31 | 1:10 | 9:29 |
enemy combat unit | 100 | 4:33 | 4:06 | 6:41 |
enemy gas | 94 | 5:28 | 5:06 | 6:52 |
enemy air unit | 12 | 16:50 | 9:10 | 20:14 |
enemy cloaked unit | 24 | 12:39 | 6:35 | 17:59 |
game duration | 100 | 11:18 | 5:42 | 60:00 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 30 | 2:08 | 1:55 | 2:36 | 23% | 5:35 |
gas steal success | 24 | 2:17 | 2:06 | 2:25 | 25% | 5:36 |
none or failed | 76 | - | - | - | 22% | 5:23 |
gas steal killed | 24 | 2:47 | 2:35 | 3:06 |
After this upset, I think I’ll take DaQin as a test opponent and finally figure out the skills to defeat it. DaQin is a Locutus fork, so beating it probably means doing better against other protoss bots.
The timing table shows that DaQin was remarkably late with air units. That includes both corsairs and observers—DaQin was late with both of them. In fact, I don’t remember whether it makes corsairs at all. Mutalisks might be a good choice to win.
#9 freshmeat
opening | games | wins | wins | losses | first | last |
11Gas10PoolMuta | 12 | 67% | 7:06 | 5:50 | 2 | 94 |
8PoolHard | 6 | 33% | 8:20 | 9:09 | 14 | 45 |
9Hatch8Pool | 1 | 0% | - | 6:48 | 92 | 92 |
9PoolHatchSpeedAllInB | 37 | 84% | 5:56 | 5:55 | 5 | 99 |
9PoolSunkHatch | 8 | 62% | 5:06 | 9:46 | 4 | 74 |
9PoolSunkSpeed | 8 | 25% | 8:01 | 7:04 | 0 | 52 |
Overpool14Hatch | 1 | 0% | - | 6:19 | 86 | 86 |
OverpoolSunk | 17 | 71% | 9:18 | 9:45 | 3 | 97 |
ZvT_13Pool | 3 | 33% | 7:33 | 5:43 | 90 | 93 |
ZvZ_12PoolMain | 7 | 43% | 7:07 | 5:35 | 11 | 87 |
10 openings | 100 | 64% |
6:21 |
6:53 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Fast rush | 13 | 13% | 38% | 14 | 14% | 71% | 31% | 31% |
Heavy rush | 57 | 57% | 65% | 30 | 30% | 67% | 25% | 32% |
Naked expand | | - | - | 2 | 2% | 100% | 0% | 0% |
Turtle | 30 | 30% | 73% | 25 | 25% | 52% | 10% | 20% |
Unknown | | - | - | 28 | 28% | 64% | 0% | 0% |
Worker rush | | - | - | 1 | 1% | 100% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 2:17 | 2:09 | 3:27 |
my gas | 98 | 2:53 | 1:46 | 7:53 |
enemy scout | 79 | 2:31 | 1:26 | 7:29 |
enemy combat unit | 100 | 2:34 | 1:05 | 5:17 |
enemy gas | 39 | 4:01 | 2:55 | 9:29 |
enemy air unit | 29 | 4:43 | 4:01 | 5:51 |
enemy cloaked unit | 0 | - | - | - |
game duration | 100 | 6:30 | 4:17 | 16:24 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 11 | 2:15 | 1:55 | 2:57 | 45% | 3:31 |
gas steal success | 6 | 2:18 | 2:01 | 3:01 | 33% | - |
none or failed | 94 | - | - | - | 66% | 4:01 |
gas steal killed | 6 | 3:04 | 2:31 | 4:06 |
When I was preparing opponent-specific data, Steamhammer had an overwhelming score against FreshMeat on BASIL. This result is good but not overwhelming; FreshMeat improved a lot in a short time. I had recognized that FreshMeat had made great strides, but there was not enough recent data to show what was working in the most recent games. So I made no preparation at all. These tables show an example of how Steamhammer figures out an opponent from scratch. I think it did OK.
#10 ualbertabot
opening | games | wins | wins | losses | first | last |
Over10HatchSlowLings | 1 | 0% | - | 8:16 | 99 | 99 |
OverhatchExpoMuta | 17 | 59% | 5:21 | 6:26 | 21 | 95 |
OverpoolTurtle | 82 | 94% | 6:17 | 11:51 | 0 | 98 |
3 openings | 100 | 87% |
6:00 |
8:16 |
plan | predicted | recognized | accuracy |
count | games | wins | count | games | wins | good | ? |
Factory | 10 | 10% | 100% | 13 | 13% | 100% | 10% | 0% |
Fast rush | 33 | 33% | 82% | 27 | 27% | 85% | 36% | 18% |
Heavy rush | 49 | 49% | 90% | 31 | 31% | 81% | 31% | 20% |
Naked expand | 8 | 8% | 75% | 12 | 12% | 100% | 0% | 12% |
Unknown | | - | - | 17 | 17% | 82% | 0% | 0% |
timing | # | median | early | late |
my combat unit | 100 | 2:26 | 2:15 | 3:13 |
my gas | 99 | 2:58 | 2:39 | 6:33 |
enemy scout | 88 | 2:08 | 1:21 | 9:58 |
enemy combat unit | 89 | 2:33 | 1:47 | 4:30 |
enemy gas | 82 | 3:44 | 2:37 | 14:24 |
enemy air unit | 14 | 14:20 | 11:50 | 15:59 |
enemy cloaked unit | 10 | 14:21 | 2:37 | 16:46 |
game duration | 100 | 6:31 | 4:35 | 21:33 |
gas steal | # | median | early | late | wins | enemy gas |
gas steal decision | 8 | 2:32 | 1:48 | 2:54 | 88% | 7:00 |
gas steal success | 4 | 2:29 | 2:10 | 2:44 | 75% | 13:15 |
none or failed | 96 | - | - | - | 88% | 3:37 |
gas steal killed | 4 | 3:02 | 2:51 | 3:06 |
Comparing this year to last year, Steamhammer actually did a little worse against UAlbertaBot. The skills I improved over the last year didn’t include skills to defeat UAlbertaBot’s pressure builds, or to adapt better to its random race.
overall
| total | ZvT | ZvP | ZvZ | ZvR |
opening | games | wins | games | wins | games | wins | games | wins | games | wins |
10Hatch | 1 | 0% |
| 1 | 0% |
| |
10HatchHydra | 1 | 0% |
| 1 | 0% |
| |
11Gas10PoolMuta | 15 | 53% |
| 2 | 0% |
13 | 62% |
|
11Gas10PoolMutaB | 1 | 0% |
| 1 | 0% |
| |
11HatchTurtleHydra | 3 | 0% |
| 3 | 0% |
| |
11HatchTurtleLurker | 15 | 53% |
| 15 | 53% |
| |
11HatchTurtleMuta | 3 | 0% |
| 3 | 0% |
| |
11Pool | 2 | 0% |
| 2 | 0% |
| |
12-11HatchStem | 1 | 0% |
| 1 | 0% |
| |
12Gas11PoolLurker | 1 | 0% |
| | 1 | 0% |
|
12Gas11PoolMuta | 1 | 0% |
| 1 | 0% |
| |
12Hatch_4HatchLing | 2 | 0% |
1 | 0% |
1 | 0% |
| |
2.5HatchMutaExpo | 4 | 50% |
4 | 50% |
| | |
2HatchHydra | 1 | 0% |
| | 1 | 0% |
|
2HatchLingAllInSpire | 8 | 12% |
| 8 | 12% |
| |
2HatchLurkerAllIn | 2 | 0% |
1 | 0% |
1 | 0% |
| |
2HatchLurkerPure | 1 | 0% |
| 1 | 0% |
| |
2HatchMutaPure | 1 | 0% |
| | 1 | 0% |
|
2x10Hatch | 1 | 0% |
| 1 | 0% |
| |
2x10HatchBurrow | 1 | 0% |
| 1 | 0% |
| |
2x10HatchSlow | 8 | 0% |
| 8 | 0% |
| |
3HatchHydra | 4 | 0% |
1 | 0% |
3 | 0% |
| |
3HatchHydraBust | 5 | 20% |
| 5 | 20% |
| |
3HatchHydraExpo | 5 | 0% |
| 5 | 0% |
| |
3HatchLateHydras | 1 | 0% |
| 1 | 0% |
| |
3HatchLing | 13 | 31% |
| 13 | 31% |
| |
3HatchLingBurrow | 2 | 0% |
| 2 | 0% |
| |
3HatchLingExpo | 14 | 14% |
| 14 | 14% |
| |
4HatchBeforeGas | 2 | 0% |
| 2 | 0% |
| |
4HatchBeforeLair | 3 | 0% |
| 3 | 0% |
| |
4PoolHard | 3 | 0% |
| | 3 | 0% |
|
4PoolSoft | 2 | 0% |
| 2 | 0% |
| |
5HatchBeforeGas | 1 | 0% |
| 1 | 0% |
| |
5HatchPool | 25 | 68% |
24 | 71% |
| 1 | 0% |
|
5PoolHard2Player | 1 | 0% |
| 1 | 0% |
| |
6Pool | 2 | 0% |
| 2 | 0% |
| |
6PoolHide | 1 | 0% |
| 1 | 0% |
| |
6PoolSpeed | 6 | 0% |
| 6 | 0% |
| |
6Scout | 1 | 0% |
| 1 | 0% |
| |
7-7HydraLingRush | 1 | 0% |
1 | 0% |
| | |
7DroneGas | 1 | 0% |
| 1 | 0% |
| |
7Pool10Hatch | 1 | 0% |
| 1 | 0% |
| |
7Pool12Hatch | 1 | 0% |
| 1 | 0% |
| |
7Pool6GasLurker B | 1 | 0% |
| 1 | 0% |
| |
7PoolHard | 1 | 0% |
| 1 | 0% |
| |
7PoolHarder | 1 | 0% |
| 1 | 0% |
| |
7PoolMid | 1 | 0% |
| 1 | 0% |
| |
7PoolSoft | 1 | 0% |
| 1 | 0% |
| |
8Hatch7Pool | 5 | 80% |
| | 5 | 80% |
|
8Hatch7PoolBurrow | 1 | 0% |
| 1 | 0% |
| |
8Hatch7PoolBurrowB | 1 | 0% |
| 1 | 0% |
| |
8PoolHard | 6 | 33% |
| | 6 | 33% |
|
8Scout | 1 | 0% |
| 1 | 0% |
| |
973HydraBust | 5 | 40% |
| | 5 | 40% |
|
9Hatch8Pool | 2 | 0% |
| 1 | 0% |
1 | 0% |
|
9HatchExpo9Pool9Gas | 13 | 23% |
1 | 0% |
12 | 25% |
| |
9HatchMain9Pool9Gas | 1 | 0% |
| | 1 | 0% |
|
9Pool8GasLurker | 1 | 0% |
| | 1 | 0% |
|
9Pool8Hatch | 1 | 0% |
| 1 | 0% |
| |
9Pool9Hatch | 2 | 0% |
| 2 | 0% |
| |
9PoolBurrow | 9 | 11% |
| 9 | 11% |
| |
9PoolBurrowB | 1 | 0% |
| 1 | 0% |
| |
9PoolFastLurker | 9 | 33% |
9 | 33% |
| | |
9PoolHatchBurrow | 1 | 0% |
| | 1 | 0% |
|
9PoolHatchSpeed | 4 | 25% |
4 | 25% |
| | |
9PoolHatchSpeed7Drone | 2 | 0% |
| 2 | 0% |
| |
9PoolHatchSpeed7DroneB | 3 | 0% |
| 3 | 0% |
| |
9PoolHatchSpeedAllIn | 54 | 59% |
13 | 38% |
5 | 20% |
36 | 72% |
|
9PoolHatchSpeedAllInB | 38 | 82% |
| 1 | 0% |
37 | 84% |
|
9PoolHatchSpeedSpire | 32 | 62% |
| 8 | 0% |
24 | 83% |
|
9PoolHatchSpeedSpire2 | 2 | 0% |
1 | 0% |
1 | 0% |
| |
9PoolLair | 3 | 0% |
1 | 0% |
1 | 0% |
1 | 0% |
|
9PoolLurker | 16 | 75% |
15 | 80% |
1 | 0% |
| |
9PoolSpeed | 16 | 38% |
13 | 46% |
3 | 0% |
| |
9PoolSpeedAllIn | 13 | 62% |
12 | 67% |
1 | 0% |
| |
9PoolSpeedSpire | 1 | 0% |
| | 1 | 0% |
|
9PoolSpire | 1 | 0% |
| 1 | 0% |
| |
9PoolSunkHatch | 9 | 56% |
| 1 | 0% |
8 | 62% |
|
9PoolSunkSpeed | 11 | 18% |
2 | 0% |
1 | 0% |
8 | 25% |
|
AntiFact_13Pool | 18 | 61% |
17 | 65% |
1 | 0% |
| |
AntiFact_2Hatch | 3 | 0% |
| 3 | 0% |
| |
AntiFact_Overpool11Hatch | 1 | 0% |
| 1 | 0% |
| |
AntiFactoryHydra | 1 | 0% |
| 1 | 0% |
| |
AntiZeal_12Hatch | 6 | 0% |
1 | 0% |
5 | 0% |
| |
HiveRush | 1 | 0% |
| 1 | 0% |
| |
Over10Hatch | 2 | 0% |
| 2 | 0% |
| |
Over10Hatch11Pool | 19 | 42% |
| 1 | 0% |
18 | 44% |
|
Over10Hatch1Sunk | 2 | 0% |
| 2 | 0% |
| |
Over10Hatch2Sunk | 5 | 0% |
| 5 | 0% |
| |
Over10Hatch2SunkHard | 2 | 0% |
| 2 | 0% |
| |
Over10HatchBust | 2 | 0% |
| 2 | 0% |
| |
Over10HatchHydra | 1 | 0% |
| 1 | 0% |
| |
Over10HatchSlowLings | 3 | 0% |
| 2 | 0% |
| 1 | 0% |
Over10PoolHydra | 1 | 0% |
| 1 | 0% |
| |
Overgas+1 | 1 | 0% |
| 1 | 0% |
| |
OverhatchExpoLing | 42 | 33% |
| 42 | 33% |
| |
OverhatchExpoMuta | 17 | 59% |
| | | 17 | 59% |
OverhatchLateGas | 2 | 0% |
| 1 | 0% |
1 | 0% |
|
OverhatchLing | 1 | 0% |
| 1 | 0% |
| |
OverhatchMuta | 1 | 0% |
| 1 | 0% |
| |
Overpool14Hatch | 2 | 0% |
| 1 | 0% |
1 | 0% |
|
Overpool2HatchLurker | 2 | 0% |
| 2 | 0% |
| |
OverpoolLurker | 2 | 0% |
| 2 | 0% |
| |
OverpoolSunk | 17 | 71% |
| | 17 | 71% |
|
OverpoolTurtle | 88 | 89% |
| 6 | 17% |
| 82 | 94% |
OverpoolTurtle 0 | 1 | 0% |
| 1 | 0% |
| |
Overpool_3HatchLing | 1 | 0% |
| 1 | 0% |
| |
PurpleSwarmBuild | 1 | 0% |
| 1 | 0% |
| |
ZvP_2HatchMuta | 2 | 0% |
| 2 | 0% |
| |
ZvP_3BaseSpire+Den | 2 | 0% |
| 2 | 0% |
| |
ZvP_3HatchPoolHydra | 17 | 6% |
| 17 | 6% |
| |
ZvP_4HatchPoolHydra | 8 | 62% |
8 | 62% |
| | |
ZvP_Overpool3Hatch | 1 | 0% |
| 1 | 0% |
| |
ZvT_13Pool | 30 | 57% |
25 | 64% |
2 | 0% |
3 | 33% |
|
ZvT_2HatchMuta | 1 | 0% |
1 | 0% |
| | |
ZvT_3HatchMuta | 14 | 50% |
13 | 54% |
1 | 0% |
| |
ZvT_3HatchMutaExpo | 32 | 78% |
32 | 78% |
| | |
ZvT_7Pool | 1 | 0% |
| 1 | 0% |
| |
ZvZ_12HatchExpo | 1 | 0% |
| | 1 | 0% |
|
ZvZ_12HatchMain | 31 | 65% |
| 1 | 0% |
30 | 67% |
|
ZvZ_12Pool | 2 | 0% |
| 2 | 0% |
| |
ZvZ_12PoolMain | 18 | 61% |
| | 18 | 61% |
|
ZvZ_Overpool11Gas | 1 | 0% |
| 1 | 0% |
| |
ZvZ_Overpool9Gas | 12 | 58% |
| 1 | 0% |
11 | 64% |
|
ZvZ_OverpoolTurtle | 45 | 78% |
| | 45 | 78% |
|
total | 900 | 48% | 200 | 59% | 300 | 12% | 300 | 65% | 100 | 87% |
openings played | 125 | 23 | 101 | 30 | 3 |