archive by month
Skip to content

AIIDE 2019 - what Steamhammer learned

Today is Steamhammer. With a mid-rank finish and the widest range of builds, plus informative game records, Steamhammer may give us the best insight into how other bots played.

The tournament was 100 rounds, and Steamhammer was configured to remember the previous 100 game records, because in play there is no reason to remember more (earlier records are increasingly discounted). Steamhammer also had pre-learned game records for many opponents, so when the game record count reached 100, new records added caused old pre-learned records to drop away. Not all 100 tournament games happened for each opponent, but the pre-learned games filled in the small gaps so that Steamhammer ended up with exactly 100 game records per opponent in every case.

The “opening” table counts Steamhammer’s opening choices. The “plan” table shows the plan that Steamhammer first predicted that the opponent would play, then recognized that the opponent was playing. Both prediction and recognition can be wrong. The timing table is new this year, an attempt to get a little more information out of Steamhammer’s rich game records. For some events, it gives the count of games in which the event occurred, and the median time, earliest time, and latest time it occurred in those games when it did. The times are given under the assumption that 1 second of game time is exactly 24 frames, a simplification.

gas steal attempt - When Steamhammer sent out the drone to steal gas (if it did).
gas steal success - Whether the gas steal attempt succeeded in taking the opponent’s gas. Steamhammer doesn’t record the time it happens, so this is only a success count.
enemy scout - When the enemy scout first reached Streamhammer’s base.
enemy combat units - When the first enemy combat unit was seen.
enemy air units - When the enemy is first known to have tech for flying units (except overlords).
enemy cloaked units - When the enemy is first known to have tech for cloaked units.


#1 locutus

openinggameswins
11Gas10PoolMuta10%
12Hatch12Pool10%
2.5HatchMuta20%
2HatchHydra10%
2HatchHydraBust40%
2HatchLingAllInSpire10%
3HatchHydraBust50%
3HatchHydraExpo10%
3HatchLateHydras+150%
3HatchLingBust230%
4HatchBeforeGas10%
4HatchBeforeLair50%
5HatchBeforeGas20%
5PoolHard2Player20%
5Scout10%
7PoolSoft10%
8-8HydraRush10%
8Hatch7Pool10%
8Pool10%
9Pool20%
9PoolHatch20%
9PoolSpeedAllIn10%
AntiFact_Overpool9Gas10%
DefilerRush20%
Over10Hatch2Sunk10%
Over10HatchSlowLings10%
Over10PoolMuta10%
OverhatchExpoLing20%
OverhatchExpoMuta20%
Overpool2HatchLurker10%
OverpoolHatch10%
OverpoolHydra120%
OverpoolSpeed40%
OverpoolSunk10%
Overpool_4HatchLing20%
PurpleSwarmBuild10%
Sparkle 1HatchMuta10%
Sparkle 2HatchMuta10%
ZvP_3BaseSpire+Den10%
ZvP_3HatchPoolHydra20%
ZvP_4HatchPoolHydra1421%
ZvT_12PoolMuta20%
ZvZ_12PoolLing10%
ZvZ_12PoolLingB10%
ZvZ_Overpool9Gas10%
45 openings1003%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush--44%0%0%0%
Safe expand5656%2%4444%5%43%5%
Turtle4444%5%4545%2%43%9%
Unknown--77%0%0%0%
timing#medianearlylate
gas steal attempt431:290:002:34
gas steal success23---
enemy scout1001:351:116:51
enemy combat units1005:234:107:58
enemy air units712:057:3921:34
enemy cloaked units811:244:3921:34


It looks like Locutus opened forge-expand every game. It worked. Steamhammer desperately tried everything, including ZvZ builds and island builds, and finally squeezed 3 wins with a risky extreme macro opening, 4 hatcheries before spawning pool, which was able to win one game in five. I should add 5 and 6 hatch before pool and see if they help.

Locutus rarely made corsairs or dark templar. I wonder what its criteria are? Maybe it won before it got that far. The scout was usually quite early, and the first combat unit was seen late, as expected for a cannon-first opener.

I played over the 3 wins. They were in rounds 65, 70, and 73; after that, I expect that Locutus found a way to win. In 2 games, Steamhammer pulled ahead in early economy with its greedy opening, then struggled to defend and fell into a losing position. But Locutus got most of its units stuck in its base, and Steamhammer was able to turn it around and win after a hard fight with critical defiler support. In the third win, Locutus chose a zealot-archon unit mix that Steamhammer knows how to cope with, and zerg powered through.


#2 purplewave

openinggameswins
10Pool9Gas10%
11HatchTurtleHydra5044%
11HatchTurtleLurker10%
11HatchTurtleMuta1520%
12Hatch_4HatchLing10%
2HatchLingAllInSpire10%
3HatchHydraExpo10%
3HatchLing10%
3HatchLingExpo10%
4HatchBeforeLair10%
5PoolSoft10%
7Pool12Hatch10%
9PoolBurrow10%
AntiZeal_12Hatch10%
HiveRush10%
Over10Hatch20%
Over10Hatch1Sunk30%
Over10Hatch2Sunk10%
OverhatchLateGas10%
Overpool+110%
OverpoolSpeed10%
OverpoolTurtle20%
ZvP_3HatchPoolHydra10%
ZvT_7Pool10%
ZvZ_Overpool9Gas933%
25 openings10028%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Fast rush--22%0%0%0%
Heavy rush9999%28%9090%24%90%4%
Safe expand--33%100%0%0%
Turtle--11%100%0%0%
Unknown11%0%44%50%0%0%
timing#medianearlylate
gas steal attempt411:131:092:36
gas steal success37---
enemy scout982:131:1915:06
enemy combat units992:352:155:59
enemy air units5113:575:1520:37
enemy cloaked units4814:016:0217:11


PurpleWave in contrast went with mostly 2 gate openings against Steamhammer; that’s what “heavy rush” means for protoss. Steamhammer countered with early sunkens plus hydras or, less successfully, mutalisks (this version had a bug that weakened mutalisk play). There are also 3 wins with a ZvZ fast mutalisk opening. 2 gates should beat that, so protoss either played poorly or chose a different build in those games.


#3 bananabrain

openinggameswins
10HatchHydra10%
11Gas10PoolLurker20%
11Gas10PoolMuta1010%
11HatchTurtleHydra10%
12Hatch_4HatchLing10%
2.5HatchMuta10%
2HatchLingAllInSpire10%
3HatchHydra20%
3HatchHydraBust10%
3HatchHydraExpo10%
3HatchLateHydras10%
3HatchLingExpo911%
5PoolHard10%
6Pool10%
6PoolSpeed10%
7-7HydraLingRush10%
8Gas7PoolLurker B10%
9HatchMain9Pool9Gas10%
9PoolBurrow10%
9PoolSpeed10%
9PoolSpire10%
AntiFact_2Hatch1540%
AntiFact_Overpool9Gas10%
AntiZeal_12Hatch100%
Over10Hatch1Sunk10%
Over10HatchBust2825%
OverpoolSpeed10%
OverpoolTurtle 010%
ZvP_Overpool3Hatch20%
ZvT_3HatchMuta10%
30 openings10015%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush7070%14%3232%3%33%39%
Naked expand22%0%11%100%0%50%
Proxy--44%0%0%0%
Safe expand2323%17%1616%31%17%35%
Turtle55%20%1010%20%0%20%
Unknown--3737%16%0%0%
timing#medianearlylate
gas steal attempt501:261:091:38
gas steal success31---
enemy scout1001:561:213:17
enemy combat units1002:562:198:19
enemy air units835:192:5111:41
enemy cloaked units616:263:2714:05


BananaBrain contrasts with both previous opponents in that it played a variety of builds. Steamhammer was unable to predict what was coming. It looks strange that the best reaction was an opening designed to counter terran factory-first builds that include a vulture runby, but in fact it is a mildly specialized 2 hatch mutalisk variant and not so surprising. BananaBrain made corsairs and dark templar in most games.


#4 daqin

openinggameswins
10HatchHydra10%
10Pool9Hatch10%
11Gas10PoolLurker119%
11Gas10PoolMuta10%
11HatchTurtleLurker10%
12Hatch12Pool10%
12HatchTurtle20%
12Hatch_4HatchLing20%
2HatchHydraBust10%
2HatchLurker10%
3HatchHydra10%
3HatchHydraBust10%
3HatchHydraExpo40%
3HatchLing10%
3HatchLingBust21020%
3HatchLingExpo10%
4HatchBeforeGas30%
4HatchBeforeLair30%
4PoolSoft10%
5HatchBeforeGas20%
5Scout10%
8-8HydraRush10%
8Hatch7Pool10%
8Hatch7PoolSpeed1916%
9GasLair10%
9HatchExpo9Pool9Gas20%
9PoolBurrow10%
9PoolSpeedAllIn10%
AntiFact_2Hatch10%
AntiFactory10%
OverhatchExpoLing30%
OverhatchExpoMuta10%
OverhatchLateGas10%
Overpool+110%
OverpoolSunk10%
ZvP_2HatchMuta10%
ZvP_3BaseSpire+Den110%
ZvZ_12Gas11Pool10%
ZvZ_12HatchMain10%
ZvZ_12Pool10%
40 openings1006%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush--44%0%0%0%
Proxy--66%0%0%0%
Safe expand1111%9%2323%13%18%0%
Turtle8989%6%6363%5%62%4%
Unknown--44%0%0%0%
timing#medianearlylate
gas steal attempt431:261:091:58
gas steal success24---
enemy scout991:341:149:35
enemy combat units1005:264:076:58
enemy air units319:478:5416:19
enemy cloaked units369:447:2314:39


DaQin played forge-expand and has similar timings to Locutus, for the same reasons. The fast scout is to allow adjustment of the cannon count and timing, and the late combat units are due to getting a gateway later. Steamhammer couldn’t find any better reaction than to try to bust with zerglings, either early or late, and it was not particularly successful.


#6 zzzkbot

openinggameswins
2.5HatchMuta10%
3HatchLingExpo10%
9HatchExpo9Pool9Gas367%
9PoolLurker933%
9PoolSpeedAllIn10%
9PoolSunkHatch1258%
9PoolSunkSpeed933%
OverpoolSunk1338%
ZvZ_Overgas9Pool1258%
ZvZ_Overpool9Gas3982%
10 openings10059%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Turtle100100%59%7979%71%79%21%
Unknown--2121%14%0%0%
timing#medianearlylate
gas steal attempt261:141:111:37
gas steal success12---
enemy scout992:550:377:23
enemy combat units1004:062:254:43
enemy air units665:295:0310:11
enemy cloaked units0---


ZZZKBot mostly played a turtle-into-mutalisks strategy against Steamhammer, and was somewhat successful. You can read the idea straight out of the tables above. The 2:25 earliest timing but 4:06 median timing for combat units says that ZZZKBot sometimes rushed zerglings, but usually not.


#7 microwave

openinggameswins
11Gas10PoolLurker2843%
11Gas10PoolMuta1520%
2HatchHydra10%
3HatchLing10%
3HatchLingBust210%
5PoolHard10%
6Pool10%
7-7HydraLingRush10%
9GasLair10%
9HatchMain9Pool9Gas10%
9PoolLurker10%
OverhatchLing10%
OverhatchMuta2030%
OverpoolLurker10%
PurpleSwarmBuild10%
Sparkle 1HatchMuta812%
ZvZ_12HatchExpo10%
ZvZ_12HatchMain20%
ZvZ_Overpool11Gas10%
ZvZ_Overpool9Gas10%
ZvZ_OverpoolTurtle1225%
21 openings10025%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush77%29%22%50%0%86%
Naked expand8989%26%2323%17%25%73%
Turtle44%0%11%0%0%75%
Unknown--7474%27%0%0%
timing#medianearlylate
gas steal attempt541:300:421:57
gas steal success1---
enemy scout1002:391:373:47
enemy combat units1002:272:143:58
enemy air units396:255:219:19
enemy cloaked units0---


Microwave played a 9 pool speed build into expansion and then spire, which you cannot read out of the plan table because Steamhammer didn’t recognize it accurately. But in the timing table you can see that combat units (zerglings) were early and air units (mutalisks) were not late.

Steamhammer was not able to steal Microwave’s gas. It probably should have stopped trying.


#8 iron

openinggameswins
2.5HatchMuta10%
5HatchBeforeGas10%
5Scout10%
7-7HydraLingRush4384%
8Gas7PoolLurker B10%
AntiFact_13Pool1155%
AntiFactory3964%
OverhatchExpoMuta10%
OverhatchMuta10%
Sparkle 2HatchMuta10%
10 openings10067%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory100100%67%9191%70%91%9%
Unknown--99%33%0%0%
timing#medianearlylate
gas steal attempt301:261:252:03
gas steal success0---
enemy scout873:270:3415:09
enemy combat units1002:592:295:27
enemy air units2313:5310:1120:07
enemy cloaked units696:395:3511:47


Look at that huge range of scout timings! 0:34 means that the scout SCV was sent immediately at the start of the game and went directly to the zerg base. 15:09 probably means that no enemy unit got into the base until the end of the game when Steamhammer lost (Steamhammer is on BWAPI 4.1.2 and cannot detect scans). Steamhammer prevented the scout entirely in 13 out of the 100 games by its own count; 15:09 is probably the same. Steamhammer was not able to steal Iron’s gas, and did eventually give up trying.


#9 xiaoyi

openinggameswins
12Hatch13Pool10%
2HatchLingAllInSpire1619%
2HatchLurkerAllIn10%
3HatchLurker10%
3HatchPoolMuta10%
5PoolSoft10%
7-7HydraLingRush3669%
7PoolMid2475%
AntiFact_13Pool933%
AntiFactory10%
AntiFactoryHydra812%
Over10Hatch10%
12 openings10050%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory9898%51%7474%41%74%21%
Naked expand--11%100%0%0%
Safe expand--33%33%0%0%
Unknown22%0%2222%82%0%50%
timing#medianearlylate
gas steal attempt461:261:052:08
gas steal success1---
enemy scout922:371:347:29
enemy combat units1002:392:253:22
enemy air units5512:238:5516:30
enemy cloaked units617:395:4217:07


Steamhammer liked 7 pool against XiaoYi, just as Microwave did, but also liked its dawn hydra rush.


#10 mcrave

openinggameswins
2HatchHydraBust580%
3HatchHydraBust667%
9PoolHatch1984%
Over10Hatch2Sunk3288%
Over10Hatch2SunkHard2692%
OverpoolTurtle1283%
6 openings10086%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Heavy rush9797%87%6464%80%63%19%
Safe expand22%100%1111%100%0%0%
Turtle11%0%77%100%0%0%
Unknown--1818%94%0%0%
timing#medianearlylate
gas steal attempt531:281:111:33
gas steal success33---
enemy scout922:211:149:55
enemy combat units982:422:158:51
enemy air units6910:025:0614:18
enemy cloaked units3010:295:0116:39

#11 ualbertabot

openinggameswins
5Scout2875%
Over10Hatch2Sunk10%
OverpoolTurtle7197%
3 openings10090%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory55%100%88%100%0%0%
Fast rush44%100%1111%100%0%25%
Heavy rush8686%88%4747%87%48%24%
Naked expand55%100%1010%100%0%40%
Unknown--2424%83%0%0%
timing#medianearlylate
gas steal attempt431:120:001:16
gas steal success23---
enemy scout792:111:194:23
enemy combat units612:431:464:33
enemy air units1014:2012:0216:57
enemy cloaked units1214:252:3816:57


Thanks to pre-learning, I expected Steamhammer to play its overpool turtle build every game. I’m not sure why it didn’t. I also don’t know how it hit on the 5 scout build, which means send out a drone at 5 supply to scout very early, then leave all decisions to the strategy boss. It’s a logical try against a random opponent, especially one that has a single strategy for each race, and it was fairly successful. But it did not appear in the pre-learned data.


#12 aitp

openinggameswins
7-7HydraLingRush1292%
9HatchExpo9Pool9Gas30100%
AntiFact_13Pool22100%
AntiFactory2195%
AntiFactoryHydra1493%
ZvT_3HatchMuta10%
6 openings10096%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Factory8787%97%3030%97%28%62%
Fast rush44%100%44%100%0%50%
Heavy rush44%100%22%100%25%50%
Turtle44%100%55%60%0%25%
Unknown11%0%5959%98%0%0%
timing#medianearlylate
gas steal attempt441:251:121:58
gas steal success3---
enemy scout253:312:4119:11
enemy combat units1003:231:578:09
enemy air units3111:277:4619:34
enemy cloaked units597:385:1916:34


AITP scored zip against both mass zerglings (9HatchExpo9Pool9Gas) and against fast mutalisks (AntiFact_13Pool). And it successfully scouted Steamhammer’s base only 25% of the time. If you don’t scout reliably, it will be hard to withstand rushes.


#13 bunkerboxer

openinggameswins
9PoolExpo42100%
9PoolSunkHatch31100%
9PoolSunkSpeed27100%
3 openings100100%
planpredictedrecognizedaccuracy
countgameswinscountgameswinsgood?
Proxy6666%100%3535%100%36%36%
Unknown--4242%100%0%0%
Worker rush3434%100%2323%100%15%53%
timing#medianearlylate
gas steal attempt401:351:321:37
gas steal success33---
enemy scout912:101:473:47
enemy combat units842:432:093:27
enemy air units0---
enemy cloaked units0---


Steamhammer was not able to judge whether BunkerBoxeR was playing a proxy (with its proxy bunker) or a worker rush (since it sent SCVs in support). But it didn’t matter. The reactions are nearly the same. Since BunkerBoxeR never wants gas, stealing its gas was a waste.


overall

totalZvTZvPZvZZvR
openinggameswinsgameswinsgameswinsgameswinsgameswins
10HatchHydra20% 20%
10Pool9Gas10% 10%
10Pool9Hatch10% 10%
11Gas10PoolLurker4132% 138% 2843%
11Gas10PoolMuta2715% 128% 1520%
11HatchTurtleHydra5143% 5143%
11HatchTurtleLurker20% 20%
11HatchTurtleMuta1520% 1520%
12Hatch12Pool20% 20%
12Hatch13Pool10% 10%
12HatchTurtle20% 20%
12Hatch_4HatchLing40% 40%
2.5HatchMuta50% 10% 30% 10%
2HatchHydra20% 10% 10%
2HatchHydraBust1040% 1040%
2HatchLingAllInSpire1916% 1619% 30%
2HatchLurker10% 10%
2HatchLurkerAllIn10% 10%
3HatchHydra30% 30%
3HatchHydraBust1331% 1331%
3HatchHydraExpo70% 70%
3HatchLateHydras10% 10%
3HatchLateHydras+150% 50%
3HatchLing30% 20% 10%
3HatchLingBust21414% 1315% 10%
3HatchLingExpo128% 119% 10%
3HatchLurker10% 10%
3HatchPoolMuta10% 10%
4HatchBeforeGas40% 40%
4HatchBeforeLair90% 90%
4PoolSoft10% 10%
5HatchBeforeGas50% 10% 40%
5PoolHard20% 10% 10%
5PoolHard2Player20% 20%
5PoolSoft20% 10% 10%
5Scout3168% 10% 20% 2875%
6Pool20% 10% 10%
6PoolSpeed10% 10%
7-7HydraLingRush9377% 9179% 10% 10%
7Pool12Hatch10% 10%
7PoolMid2475% 2475%
7PoolSoft10% 10%
8-8HydraRush20% 20%
8Gas7PoolLurker B20% 10% 10%
8Hatch7Pool20% 20%
8Hatch7PoolSpeed1916% 1916%
8Pool10% 10%
9GasLair20% 10% 10%
9HatchExpo9Pool9Gas3591% 30100% 20% 367%
9HatchMain9Pool9Gas20% 10% 10%
9Pool20% 20%
9PoolBurrow30% 30%
9PoolExpo42100% 42100%
9PoolHatch2176% 2176%
9PoolLurker1030% 1030%
9PoolSpeed10% 10%
9PoolSpeedAllIn30% 20% 10%
9PoolSpire10% 10%
9PoolSunkHatch4388% 31100% 1258%
9PoolSunkSpeed3683% 27100% 933%
AntiFact_13Pool4274% 4274%
AntiFact_2Hatch1638% 1638%
AntiFact_Overpool9Gas20% 20%
AntiFactory6273% 6174% 10%
AntiFactoryHydra2264% 2264%
AntiZeal_12Hatch110% 110%
DefilerRush20% 20%
HiveRush10% 10%
Over10Hatch30% 10% 20%
Over10Hatch1Sunk40% 40%
Over10Hatch2Sunk3580% 3482% 10%
Over10Hatch2SunkHard2692% 2692%
Over10HatchBust2825% 2825%
Over10HatchSlowLings10% 10%
Over10PoolMuta10% 10%
OverhatchExpoLing50% 50%
OverhatchExpoMuta40% 10% 30%
OverhatchLateGas20% 20%
OverhatchLing10% 10%
OverhatchMuta2129% 10% 2030%
Overpool+120% 20%
Overpool2HatchLurker10% 10%
OverpoolHatch10% 10%
OverpoolHydra120% 120%
OverpoolLurker10% 10%
OverpoolSpeed60% 60%
OverpoolSunk1533% 20% 1338%
OverpoolTurtle8593% 1471% 7197%
OverpoolTurtle 010% 10%
Overpool_4HatchLing20% 20%
PurpleSwarmBuild20% 10% 10%
Sparkle 1HatchMuta911% 10% 812%
Sparkle 2HatchMuta20% 10% 10%
ZvP_2HatchMuta10% 10%
ZvP_3BaseSpire+Den120% 120%
ZvP_3HatchPoolHydra30% 30%
ZvP_4HatchPoolHydra1421% 1421%
ZvP_Overpool3Hatch20% 20%
ZvT_12PoolMuta20% 20%
ZvT_3HatchMuta20% 10% 10%
ZvT_7Pool10% 10%
ZvZ_12Gas11Pool10% 10%
ZvZ_12HatchExpo10% 10%
ZvZ_12HatchMain30% 10% 20%
ZvZ_12Pool10% 10%
ZvZ_12PoolLing10% 10%
ZvZ_12PoolLingB10% 10%
ZvZ_Overgas9Pool1258% 1258%
ZvZ_Overpool11Gas10% 10%
ZvZ_Overpool9Gas5070% 1030% 4080%
ZvZ_OverpoolTurtle1225% 1225%
total120052%40078%50028%20042%10090%
openings played1112493293


Steamhammer knows 142 different openings. In the whole tournament, it was only able to try 111 of them! It tried the most openings versus protoss, since it was looking everywhere for an escape from the overwhelming top protoss bots. Most openings were tried only a few times and lost every game, which means that Steamhammer would have performed better without them. That’s expected and even intentional; my plan is to add smarts until it is able to make good guesses about what to try. The work is underway.

Trackbacks

No Trackbacks

Comments

No comments

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.