archive by month
Skip to content

tscmoop-Steamhammer hell-for-leather game

This game Tscmoo protoss vs. Steamhammer went back and forth, with both sides repeatedly decimating the other’s workers. On the one hand it’s kind of entertaining, but on the other it shows how weak both bots still are. Steamhammer was much too hesitant with its mutalisks, and Tscmoo did not make the right units to keep control of the situation. They both made plenty of mistakes.

Tscmoo went for a forge expand build, much safer than the bare expansions it has been opening with recently. Steamhammer opened 12 hatchery and got away with it because tscmoo didn’t scout early (if protoss scouts it in time the scouting probe can delay the hatchery, and even if that fails protoss can pull ahead economically by starting the nexus before any cannons, since zerglings will be delayed). Steamhammer has a partial understanding of how to counter forge expand, and it made extra drones and went up to 4 bases. But zerg was also clumsy around the cannons and lost zerglings unnecessarily.

Tscmoo built up zealot numbers while teching. It got a templar archives and high templar, plus a stargate that it never used (but which zerg had to prepare against). Steamhammer started with hydraling on the ground since hydralisks are good against cannons, but seeing the zealots it switched to mutalisks. Zerg started its carapace upgrade shortly after protoss started attack +1, which was correct timing, and later in the game drew ahead in upgrades.

The mutalisks cleaned up probes in the protoss main, apparently putting zerg well ahead. Notice the red zealots in the middle on the minimap.

mutalisks clean up

But the zealots were too strong for the ground army and returned the favor. The mutalisks indecisively moved back and forth, taking occasional swipes at protoss stuff but reacting late to the zealots. Here zerg seems to be fighting back, but at the 3 o’clock expansion zealots are ravaging drones with little opposition.

zealots clean up

Zerg ingeniously transferred drones between bases during the fight and lost more than it should have. When the smoke cleared, zerg had 9 workers and protoss had 12. By the numbers, zerg was narrowly ahead in army, but protoss was merging archons and if the archons maneuvered well then Steamhammer would have to back off while both sides rebuilt. The game was still on.

archon fails to clean up

Well, the archons did not maneuver well. The first one tried to engage the mutalisks by itself, instead of retreating to the cannons to wait for the second archon. That would have been a difficult move for a bot to find. Protoss lost more probes and the templar archives came under fire.

At the same time, zealots returned and killed more drones. This time Steamhammer had the sense to defend its natural with a sunken, and the zealots could not land a killing blow. Steamhammer was able to restore a modest economy while Tscmoo kept losing probes, and archons, and high templar before they could merge, and finally buildings.

Tomorrow: Steamhammer wants opening learning 2.

pro artisanal cheese in ZvZ

How many people remember my catalog of cheese from last August? Of the “no current bots do this” cheeses that I listed then, only early proxy gates (by PurpleCheese) have appeared since. The field is still unplowed.

In other words, hardly anyone pays attention to my suggestions, so I can be the first to point out an idea and also, much later, the first to get around to implementing it in a bot. The best of all worlds!

To show how wide the unplowed field is, here’s a pro ZvZ game on the map Jade, played on 2 June in the Afreeca Clan League. Watch it before reading on, if you want to be surprised.

ggaemo (Z) versus Effort (Z) (with commentary in Korean)

game analysis

Effort at bottom left opened 12 pool. It is a popular build in human play because it is the most economic ZvZ opening that is mostly safe against faster pools, and the pool first (instead of hatchery first) gives it a lot of versatility: You can get fast gas or not, you can expand quickly or not, in any combination. It is not popular in bot ZvZ because it requires a lot of adaptation, and the versatility is hard to take advantage of.

ggaemo at bottom right opened with 12 hatchery, the slowest and riskiest ZvZ build that players dare. The 12 hatch is not safe against most faster pools, but pros still like it because it gives an edge over 12 pool, and 12 pool is popular. Also pros are good at defending, so unlike bots they have a chance to survive even if countered.

So the opening choices, which the players had to make before they scouted each other, favor ggaemo. But the starting positions gave Effort a countervailing advantage because of scouting patterns. Overlords prefer to scout over the opponent’s natural first, so ggaemo’s overlord went up. Effort’s first overlord went across and spotted the morphing hatchery without being seen itself, and overlords did not cross paths so Effort knew he had an information advantage.

I don’t know any bot that could exploit the information advantage, but pros have options. Effort sent 3 drones to the enemy bases, at first holding 2 out of sight range as if only scouting, but then showing 1 in the main and the 2 others at the morphing natural. When the natural finished, he made all 3 drones into offensive creep colonies.

ggaemo was able to save his natural, but the offensive sunken in the main prevented mining and, with support from zerglings, survived a last-ditch defensive pile-up to win.

When bots can do that, we’ll be getting somewhere.

two upsets

Two surprise upsets today caught my interest.

new from MadMix

The game MadMix by Oyvind Johannessen vs McRave surprised me.

McRave fell out of the top ranks a while back, but has lately been climbing back up. I’m guessing that some new subsystem was switched in a while back, and it has taken this long to work the bugs out. After a long drought and a bunch of tries, the new version of McRave notched its first recent win versus Steamhammer today (and another shortly after). I expect McRave will keep rising and return to the top 5 before long.

MadMix is brand new, but already has a big update. The initial version made most units for all races, but never researched upgrades or tech. Today’s version researches most upgrades and at least some tech, so the mix is even madder!

In MadMix versus McRave, random MadMix rolled zerg and started off with fast lurkers. McRave is much higher ranked and has a better build order, better tactics, and better micro. McRave had a vastly superior force in the early game, but for some reason chose not to engage—mistake #1. When the lurkers came out, McRave had no detection and was contained despite MadMix’s poor combat skills.

MadMix slowly expanded to many bases while McRave was contained. McRave made a robo facility but never added an observatory, so it had no detection—mistake #2. I’m sure it’s an oversight or bug and will be fixed before long. McRave still could have made a nexus at its natural, added cannons for detection, and maintained a chance to win, but instead when the protoss main mined out, McRave resorted to long distance mining—mistake #3. Even so, McRave’s macro was stronger and the protoss army remained dominant. In smaller attacks, MadMix retreated support units and unburrowed lurkers each time targets moved out of range, so the forward lurkers tended not to live long. For a lurker, staying underground and restricting your enemy’s mobility can be more important than having a target.

McRave was strangely passive this game, moving its army mostly in response to immediate threats. With zerg on many bases and protoss long distance mining, the writing was on the wall. Eventually MadMix started mass attacks and broke through to win. The picture is from shortly after MadMix’s army first became the larger one (notice the worker counts). In the upper left you can see lurkers holding an isolated protoss force at bay; for some reason, MadMix made better use of its lurkers during the breakthrough attack.

MadMix upgrades tab

The upgrades tab shows that MadMix did a ton of upgrades this game, even overlord sight range. You can see scourge, and offscreen is a devourer, even though McRave never made an air unit. The zerg unit mix is genuinely mad. It did not make queens, which may mean that it realizes it needs to know how to use the spells first.

Maybe another update soon will see MadMix using most tech, too. In any case, MadMix is already ranked higher than Travis Shelton, the other random bot with a wide choice of units.

Randomhammer gets a win over Krasi0

Randomhammer scored an upset win over Krasi0 with a vulture drop. I knew the drops would pull some good wins.

Randomhammer (this time) sent its dropship the short way around the edge of the map to Krasi0’s base. Randomhammer’s vulture micro was disappointingly poor, but even so the drop was moderately successful; it killed few SCVs, but stopped mining for a surprisingly long time as Krasi0 cautiously backed away.You can see in the production tab that Randomhammer is expanding and adding units while Krasi0 is producing nothing.

Randomhammer’s drop

Krasi0 may have seen the building starport just before its scout was chased away by marines. In any case, it made goliaths with a few tanks mixed in, a good counter to the air units and vultures which were the only units it had seen indications of. But Randomhammer immediately switched to tanks (it’s a hardcoded tech switch—Steamhammer’s terran and protoss strategy is ultra-simple), and expanded not once, but twice.

Krasi0 delayed its expansion and did not have enough gas to make many tanks alongside the other tech it wanted. With 3 geysers, Randomhammer had greater tank numbers and was able to push through and win despite Krasi0’s superior tactics and unit control. Knowing how to position tanks on high ground is great, but if you have 2 tanks versus 6, it’s not great enough.

Randomhammer’s push

strange games

Two strange events.

let’s put the expansion right there

In a game versus Krasi0, Steamhammer decided to go three hatcheries before spawning pool. It’s a greedy opening, a sensible choice against Krasi0’s slightly less greedy opening. Of course, when you’re trying to win by greed you tend to scout late, so when it was time to place the 3rd hatchery, Steamhammer did not know where Krasi0 was. The expansion drone walked past a bunker under construction and started the hatchery in the terran natural.

misplaced hatchery

Steamhammer had the good sense to cancel the morphing hatchery before it died, but still.... Opening build: Failed.

When the enemy base location is unknown, MapTools::getNextExpansion() is supposed to choose the free expansion closest to home by ground distance. It should have chosen the 6 o’clock base, not the enemy natural. It’s a bug.

wait, is this the same game again?

Steamhammer played against Microwave 2 times in the last 2 days: Yesterday’s game and today’s game. Both games were on the map La Mancha, which is a little surprising since there are 15 maps. Both games had the same positions, Steamhammer in the upper left and Microwave in the lower left. OK, it could happen sometimes. And in both games, Steamhammer played its overgas 11 pool opening, a risky opening that it is set to play just under 1% of the time.

That does not happen! This is a coincidence that should come up 1 time in 18,000, more games than Steamhammer has played. Did somebody take control of the random number generator?

Microwave was blue in both games, but Steamhammer got different colors. Whew. The games were similar, as you might expect. Microwave played overpool and was almost but not quite able to capitalize on its earlier zerglings...

zergling advantage

... then lost to the fast mutalisks that Steamhammer got by going gas first.

mutalisk advantage

A third game today between the two bots was completely different. That’s how it’s supposed to work.

Arrakhammer

I rather like Arrakhammer. It quickly differentiated itself from its parent Steamhammer and now plays quite differently. And its strategies are logical.

Look how Arrakhammer defeats Wuli: It holds off the raging zealots with mass sunkens and no units, objectively poor but perfect against Wuli. Then it techs up to hydra-lurker. Wuli is unable to cope with the lurkers and falls over.

mass sunkens, no units

XIMP by Tomas Vajda follows the same abstract plan of holding off the enemy with mass static defense and following up with tech units that the opponent cannot cope with. Some similar plan probably works against most non-adaptive bots (it might fail against bots which always make tanks or other siege units). The plan seems so general and effective that I’ve been thinking of coding it into Steamhammer as a use of opponent modeling. When Steamhammer realizes from experience that the enemy bot has a fixed unit mix, it may build mass static defense while it techs up to a countering unit mix.

overhatch versus overhatch

Arrakhammer is based on the previous, 1.2.2, version of Steamhammer, which did not have the overhatch opening yet. But the author has not been shy about looking into the newer 1.2.3 version. Here in Arrakhammer versus Steamhammer on Icarus, Arrakhammer borrows the overhatch opening and tries to tweak it for an advantage over Steamhammer’s variant of the opening.

The openings are identical up to supply 15. Steamhammer spent its first 100 gas on zergling speed, since it was playing a zergling opening. Arrakhammer instead started a lair and added a sunken to hold the zergling pressure. It’s not the natural way to play the opening, but it is a logical attempt to cross up an opponent that is committed to zerglings.

The plan commits Arrakhammer to defense until mutalisks come out, so it brought its zerglings home even before the sunken was started. Steamhammer had made 2 zerglings more (which didn’t matter because they were far away) and Arrakhammer lost 3 as they retreated up the ramp (which did matter). Unfortunately, Arrakhammer defended inaccurately and lost 2 drones, a severe loss. You can see the orange zerglings out of position in the picture. Good defense could have saved all drones.

a defensive mistake

Play was left, but in the next zergling attack Arrakhammer pulled drones too far from the mineral line (a classic Steamhammer blunder) and lost 5 more. After that it was irrecoverable. A picture of the drone blood:

5 drones lost

The opening try was logical and it could have won if Steamhammer had made the mistakes, or had chosen an inappropriate build. Its weakness was that it depended on correct defense. Bots are strong in attack and weak in defense; that is why Steamhammer is aggressive whenever possible. As defense grows stronger, a wider range of strategies will become practical.

Steamhammer repeatedly threw away zerglings trying to approach the sunken and made other mistakes, but its advantage was unbreakable and it finally won by getting mutalisks first.

the end

many ways to beat XIMP

I enjoyed this game of m-khan’s KaonBot versus XIMP by Tomas Vajda, showing another way to beat the carriers.

As I write, KaonBot is rated about 1900, so it is a slightly worse than average bot. I would say that it is at the high end of the low-ranking terran bots. KaonBot goes mass marines every game (with medics and upgrades), which is a severe limitation, but it has above-average smarts in adapting its economy to the situation. Against XIMP, KaonBot quickly took the entire map, except the island bases. XIMP could not get a third base because they were all taken!

Marines are deadly efficient at shooting down interceptors, because they do normal damage rather than explosive damage like goliaths, dragoons, or hydralisks. The picture shows marines fighting interceptors and cannons. The carriers could not keep interceptors in the air. This first infantry force was not enough to clear the cannons, but a later one was.

marines versus carriers and cannons

KaonBot seems to score around 50% against XIMP, which is pretty good.

Ways to beat XIMP, with example bots:

  • cloaked wraiths - WOPR by Soeren Klett (with goliath-tank followup)
  • goliaths - Krasi0
  • marines - KaonBot
  • tanks - Tyr by Simon Prins (wipe out the cannons before the carriers are out)
  • ghosts - nobody yet?
  • hydralisks - Killerbot by Marian Devecka
  • hydra-scourge - UAlbertaBot by Dave Churchill (special build order for XIMP)
  • ultralisks - Ailien (ignore the carriers, kill the bases)
  • dragoons - Steamhammer playing protoss (with a 13 nexus build)

Protoss has the most trouble against the carriers, but when Randomhammer rolls protoss, it goes with a straightforward nexus-first build that produces enough units to break the cannons. AIUR does the same thing sometimes, though not as consistently. If you get far enough ahead in macro, it should be easy to win with almost any strategy.

It should be, but it isn’t always. Steamhammer zerg still struggles against XIMP, losing games due to several bugs and limitations. On 2-player maps Steamhammer doesn’t finish its opening build order, and depending on how it scouts, it may not make a spire (which makes the win easier). In the most recent game, Steamhammer took many bases and crushed XIMP’s natural and main with ultralisks, leaving only the protoss third, then lost by streaming ultra-ling into the empty protoss main to be slaughtered by carriers until zerg finally mined out. It’s a combination of a scouting limitation, a tactical limitation, and an expansion bug. Too much to fix!

Steamhammer-Microwave razor close game

SSCAIT’s mini-tournament is not quite finished as I write.

The irritating news of the tournament: Steamhammer played 2 tournament games versus XIMP by Tomas Vajda, plus one game shortly before the tourney, on the same map (Benzene) with the same starting positions (protoss on the left, zerg on the right). Just how random is it? The 3 games were nearly identical, down to individual army movements, and Steamhammer lost, as it should have, because it doesn’t understand map blocks and couldn’t finish its opening build. Sometimes luck hits like a truck.

The interesting news of the tournament: Tscmoo protoss is doing surprisingly well, including against opponents that it has a mixed record against. Did its opening learning, which was reset in December, finally gather enough data to make good decisions? We’ve seen before that Tscmoo brings its best against strong opponents. What’s behind that?

A razor close game between Steamhammer and Microwave on Python: Steamhammer opened with overpool into fast spire, while Microwave went overpool with zergling speed and mass lings, leading to a later spire. Steamhammer made 2 sunkens with its spire. When Microwave’s zergling numbers grew large enough, it defeated Steamhammer’s lings and pushed in; the sunkens and 2 fresh zerglings were barely enough to hold them off. When its faster second hatchery came online, Microwave attacked again; the second wave killed the sunkens and a couple of drones, but the first mutas cleaned up. The third wave left 2 Steamhammer drones alive, and by then Microwave’s spire was up too, and soon Microwave destroyed Steamhammer’s spire. Steamhammer scourged an overlord, which delayed Microwave just enough. Here Microwave is adding drones when it should be replenishing its army.

Steamhammer’s spire is destroyed

If you make too many drones in ZvZ, you die. Microwave was behind in air power and did not keep the pressure on. Steamhammer killed another overlord, outmicroed the scourge...

Steamhammer outmicroes scourge

... and brought down the excessive number of drones while defeating mutalisks that spawned one at a time. Microwave helped by transferring drones from its natural to the main where the mutas were. Microwave might have held if it had gotten up a spore colony in time, but it was too late.

Steamhammer clears drones and mutas

resilience in the face of stupidity

Steamhammer 1.1.1 has a lot of resilience improvements over version 1.0. It can rebuild from scratch in a new base after its main is destroyed, for example. I thought that disaster resilience added little to the bot’s strength. In Starcraft, surviving a near-death experience usually means that death is still near.

But lately I notice that Steamhammer 1.1.1 is more consistent than earlier versions. It is rarely upset by much weaker bots, saving many elo points. Unlike in the tournament (version 0.2), most of its upsets are at the hands of opponents which are at least average in skill—and Steamhammer retains its knack of occasionally upsetting stronger opponents.

This game Steamhammer-UPStarcraftAI (elo 2303 versus 1825, compared to the average of 2000) was extremely badly played by both sides. Don’t watch this if you have sensitive eyes, it will hurt! Terran UPStarcraftAI blocked some of its own forces behind its mineral line and was unable to concentrate its strength, while Steamhammer made awful attacks and frittered its mutalisks away, then was unable to defend its natural and lost it. UPStarcraftAI did not know how to proceed and left its victorious army standing idle, and Steamhammer tried to help by suiciding drones and moving zerglings back and forth through the marine formation without fighting (it couldn’t decide which base to retreat to).

Steamhammer didn’t recover neatly, but it did recover. It cleared the idle terrans, built too many drones and took the map while getting upgrades, and finally realized that maybe an army would be useful after all and went ultra-ling, after which (despite some more bad play) the outcome was clear.

Another awful recent game is Steamhammer-DAIDOES (elo 1778), where Steamhammer lost its main but managed to power through its own stupidity—which included stopping at zergling tech level because of a stuck drone—and barely win after mining out.

Resilience against near-fatal disasters is good. Skill in one dimension can rescue blunders in another. The games saved are the ones that would have cost the most elo points—because against a stronger opponent, the game is not saved.

Flash versus Soulkey

If you watch only one pro game this month, I recommend Flash versus Soulkey (the last game in the cast, starting at about 2:07:20 into the video), played today. It is a TvZ with continuous excellent play on both sides, continuing into the late game with all bases taken.

The game is the deciding ace game of the grand final match of the Afreeca Team Battle tournament, a team tournament. The player who wins the game brings tournament victory to his team, so they gave it their all.

Flash is the world #1 TvZ player, and Soulkey has become a top ZvT expert; the game was on a higher level than an ordinary pro game. It is interesting partly because it is standard: Both players followed mainline strategy, Flash going 5 barracks +1 into late game mech switch and Soulkey going 3 hatchery mutalisk into lurkers, then defilers and finally ultralisks. The mainline strategy represents the best known play, and both players kicked it up a notch with sharp attacks and precise defenses.

It was a great game that fans will remember, and there’s a lot to learn from it. From the point of view of a bot author, it is depressing how much game knowledge and skill are visible.

Update: It amused me to collect some quotes from the Teamliquid thread. The first 4 quotes are from before the game finished.

“Really impressive to see Soulkey hold his own against Flash in a macro game.” — ZiggyPG
“This is a GREAT game.” — [[Starlight]]
“hes matching Flash move for move and looking ...good” — Probemicro
“That was some sick moves” — psd
“GG that was an amazing game” — CakeSauc3
“WORTH THE SORE THROAT” — LittLeLives
“I suggest you watch the game, it was incredible” — Piste
“Just incredible level of play in my opinion.” — Netto.
“That ace match was the most beautiful game I’ve seen in a very very long time” — jamesuh

Steamhammer’s unbelievable winning streak

OK, this is officially Too Much. Steamhammer hit a string of good luck and its elo went over 2300—it should be about as high as this version gets. After its first loss to Steamhammer, Krasi0’s opening learning is still struggling to find the answer (which is: go back to the default build and win almost all games). After many losses against Iron, Steamhammer scored back-to-back wins, which can only be called luck. The wins came with opposite opening styles. One game was 9 pool speed. Steamhammer transitioned to mutalisks, which fought well enough to stop serious drone loss from the vultures. Iron built mass turrets but was unable to cope on the open map, and ultralisks eventually put in the final word. The other was 3 hatch muta. In the second game, the mutalisks were early and numerous and cut down Iron where it stood. A bunker and a couple rings of turrets are not enough; this mainstream opening is a flat-out counter to Iron’s build. If zerg took a little more care in defense, Iron would stand no chance against the 3 hatchery mutalisks.

Steamhammer also scored two fluke wins over LetaBot versions when LetaBot crashed while far ahead. Skynet by Andrew Smith finally put an end to the incredible winning streak—with a dark templar rush! Ha ha! Skynet played it well, killing spotting overlords with a dragoon and taking full advantage of Steamhammer’s blindness to its build.

a win and a loss against Krasi0

Steamhammer got its first win against Krasi0 after many many tries. The map was Python, where starting positions are important, and the two bots got neighboring positions. Steamhammer went 9 pool speed, as it does 10% of the time versus terran, and Krasi0 was unlucky and scouted the wrong way around the map. Zerglings ran past the scouting SCV before it could reach the zerg base. The bunker in the terran natural was late and never finished (a bunker in the main could still have saved the game). Once zergling speed completed there was no hope for terran.

That apparently used up Steamhammer’s supply of luck, because it was immediately tied up in a string of losses. The loss against XIMP showed a bug I hadn’t seen, where Steamhammer repeatedly tried to take the third base that is a crucial part of its build order, but each time the drone lost interest and went home. Some weird macro bugs are lurking.

The most informative loss was another game against Krasi0, where Steamhammer first gained a winning advantage, then lined up its bugs and limitations in a row and held a parade. This time Steamhammer opened 12 hatch into 2 hatch muta. The bunker was again late, this time without excuse (is it a newly-introduced error?). The initial 6 zerglings got SCV kills that they did not fully deserve and, more importantly, slowed mining for a time as SCVs were pulled. With more smarts they could have stayed in the terran base and marauded for a time.

When the mutalisks came out, Steamhammer’s eyes lit up with crazed aggression. It flew over the bunker to kill every SCV that came near while ignoring the bunker itself and probably laughing maniacally. If it knew to fly to the mineral lines instead it could have won on the spot, but as it was the loss of workers set terran far back for the middle game. It was a decisive advantage and would have been a sure win with good followup.

Krasi0 countered the mutas with goliaths, which Steamhammer countered with hydralisks, which Krasi0 countered with tanks. That’s how you play the game. Steamhammer went up to 4 bases and brought out ultralisks while Krasi0 was still on 2 bases. Here you can see that Steamhammer has a larger army and more workers, and the production tab shows that zerg is outproducing terran even though minerals are accumulating. The terran 3rd command center is under construction in the lower left natural.

zerg is way ahead

In the later game, Steamhammer, showing the other side of its mad streak, made 3 deadly mistakes and a bunch of smaller mistakes. Avoiding any of the 3 deadly mistakes might have been enough to win.

1. Steamhammer chose the unit mix hydra-ultra and became pinched for gas and unable to spend all its minerals. I overlooked a couple of important factors in the calculation. Hydra-ultra is useful in rare situations, and especially in situations nothing like this one. With zerglings instead, the zerg army would have been larger and deadlier and there was likely nothing Krasi0 could have done to hold it off.

2. Due to a bug, zerg was unable to take a 5th base. This bug I’ve seen before; it is not the same one as against XIMP. Getting the 5th gas would have made hydra-ultra more playable.

3. Zerg never scouted the terran 3rd base. It’s a limitation; I haven’t gotten around to middle game scouting yet though it’s a basic skill. See the expansion attempt, kick it down before it starts with a few units, starve out the terran. The hydra-ultra army should have been enough to keep the terran army bottled up if a few zerglings spotted expansion attempts.

scourge turn aside

Here’s another weakness: This is the 4th pair of scourge to chase this dropship, and the scourge is veering away for no reason. The 5th pair finally caught it. Suicide missions are hard to recruit for. Steamhammer showed hesitation with scourge and in shutting down vulture harass. In this picture, Krasi0 has turned it around and is winning by a mile.

AILien > XIMP

AILien scored a fine win over XIMP. The game plan to defeat Tomas Vajda’s carrier bot:

  1. Take 7 bases and grow a huge economy.
  2. Prevent XIMP from expanding beyond its natural.
  3. Don’t bother to fight the carriers, just accept losses. With enough units on the map, the carriers chose to destroy defenseless zerg units to protect protoss bases and did not visit a zerg base until too late.
  4. When hive tech is ready, adrenal glands for the zerglings and the ultralisk upgrades, go win. Zerg can send units faster than protoss can kill them.

Ha ha, so simple! AILien made hydralisks, but I didn’t see them fire a shot against carriers or interceptors. That would have been too easy! No, XIMP is not properly put in its place unless zerg handicaps itself with buggy hydras!

I’m too busy to pull images, but watch the replay at the link. Let’s see how long the replay stays online.

Steamhammer beats Iron

Today Steamhammer 1.0 got to try, for the first time, its planned strategy versus Iron (Brood War replay file). It worked as intended, and Steamhammer won quickly. In the screenshot, Iron placed both its marines on the ramp, which made it easy. In my tests, the ramp still breaks and the bunker falls if Iron gets marines into the bunker.

Steamhammer breaks Iron’s ramp

I’m sure Igor Dimitrijevic will update Iron before long, but for the moment Iron loses to a standard 9 pool speedling opening—an opening that Steamhammer also plays 10% of the time versus other terrans, with fair success. Iron’s zergling defenses at that timing are not enough; the lings overwhelm the blocking SCVs and the bunker. Try the same against LetaBot and you will die!

By the way, getting zergling speed is critical versus terran. Zergling speed gives tactical and micro advantages against all races, but bots play poorly and don’t gain full value from the advantages versus protoss or zerg. But terrans have ranged units, and the gain from spending less time under fire before reaching the target is giant. It takes many more marines to overpower fast zerglings; marines should be unable to move out onto the map at all until academy tech. My suggestion: By the time you have 6 or more zerglings versus terran, you should at least be collecting gas to start Metabolic Boost. I think the main exceptions are unusual low-economy builds and zerglings for immediate emergency defense.

Killerbot beats Bereaver

If you’ve been following SSCAIT games between the top bots, you’ll have noticed one striking change: 2015 Killerbot lost most games to recent versions of Bereaver, but the new 2016 Killerbot has just won 4 in a row.

The 4 games followed similar paths.

• Bereaver optimistically puts on some early pressure that Killerbot is more than ready for. Here is Killerbot’s simcity at its natural—it’s nothing you can attack with a few zealots.

Killerbot’s simcity

• Bereaver sends out 1 initial corsair. Killerbot defends with hydras. Throughout the game, Bereaver usually keeps 1 or 2 corsairs in the air and gets some overlord kills but repeatedly loses corsairs to hydras.

the corsair’s success ends

• Killerbot gets aggressive with its hydralisk force, mixing in some lings. Bereaver gets reavers, defends, then chips away at the zerg army.

Bereaver defends with a reaver

• Bereaver builds up power and pushes the zerg ground army back, aiming for a heavy attack. The wolf is at the door:

reavers fire into the zerg natural

• Killerbot presumably notices the shortage of anti-air and goes mutalisks, the classic zerg counter to reavers. The wolfsbane is also at the door.

mutalisks defeat the protoss army

Bereaver can’t recover after the sudden zerg tech switch.

Both bots show risky over-aggression at times. Killerbot has improved its overlord protection and Bereaver’s corsair control—which used to be effective—is no longer alert enough to keep its corsairs alive. But that’s small beans; Bereaver’s strategic mistake is to rely on reavers without enough air defense to protect them. Corsairs are standard nowadays, but dragoon-reaver is also a classic unit mix.

As Igor Dimitrijevic said, Killerbot’s adaptation skills have become dangerous.

The Little Tailor

These 2 pictures are from a game between Bereaver and the AIIDE 2016 version of LetaBot. It was a great game—Bereaver lost its natural and narrowly held its main over and over against LetaBot’s powerful attacks, until finally LetaBot ran out of steam and lost. LetaBot didn’t scout Bereaver’s third base. But I want to pick out a funny detail:

reaver shot in motion...

I dub this reaver The Little Tailor.

... 7 at 1 blow

Seven at one blow! One marine lived and kept shooting until the next scarab got it. It’s good reaver targeting.

updates on Iron and Bereaver

Here are a couple of updates on top bots before I return to Overkill’s reinforcement learning.

Iron

For a while now, Iron has been playing a different strategy against protoss, going 2 barracks plus academy and attacking early with marines and medics rather than its traditional vultures. I’m a bit slow, but I finally realized why: It was having trouble against dragoons. Dragoons, adding observers in time to detect mines, are a strategically sound counter to Iron’s early vulture play, where tanks come late. Bereaver was handing Iron a string of losses with dragoon play. Time to switch it up!

Bereaver pokes with 2 zealots

Bereaver poked with 2 zealots but was unable to land a single hit against accurate micro.

Iron kills the protoss natural with infantry

Bereaver expanded early. I thought its force of 4 dragoons plus probes could have held off the marines, but it would have needed coordination and micro beyond the state of the art. Instead Bereaver lost its natural and was set back.

Iron is unable to get up the ramp

Iron tried to force the ramp while expanding, but didn’t have a big enough edge and was pushed back. Bereaver counterattacked and tried to get ahead with a double expansion, but tanks came out and Bereaver was never able to catch up. Bereaver strangely made a robo support bay early but did not build any reavers until much later, adding to its disadvantage—this game was played before the reupload below.

The dragoon opening is still sound against barracks play. Dragoons are versatile. But fighting the infantry calls for excellent micro with focus fire, and even Bereaver is lacking. Skynet is fairly skilled, but Iron’s new opening smashes it.

Bereaver

Bereaver was reuploaded yesterday. The new version’s first game was against Tyr by Simon Prins, and I immediately saw plays I hadn’t seen it make before. Bereaver went double robo.

Bereaver drops a reaver...

Bereaver’s shuttle-reaver micro is not fluid like ZerGreenBot’s, but sharply goal-directed. Tyr vainly struggled to save itself, not realizing that it had to cover the reaver drop zones and come up with some kind of air defense. Every time Tyr unsieged, the reaver dropped, fired, was picked up instantly, the scarab skirted around the minerals—boom. By the time the second shuttle appeared with 1 zealot inside, it was already too late for terran.

Bereaver’s reaver fires...

The tanks at the top are approaching, too late to defend. As for reaver shots, sometimes they dud out. And sometimes they do this.

mass destruction in the terran mineral line

Reaver drop is crazy complicated. In time, I expect Bereaver to learn how to drop in the teeth of sieged tanks: Drop a zealot first. Tanks fire. Zealot says “ow!” Reaver drops and has time to fire before the tanks can reload. Terran defense has to be on the ball!