archive by month
Skip to content

Killerbot-SAIDA games

I see that Killerbot by Marian Devecka has figured out its own way to beat SAIDA with its persistent mutalisk pressure: win 1 and win 2. I’m not sure how consistent it is, but as soon as SAIDA starts taking serious economic damage, terran only goes downhill. The update is a few days old now, and the most visible change is that Killerbot makes a few unupgraded hydralisks early, presumably only when the enemy has or is expected to get vultures. The hydras counter any early vulture or wraith tricks that terran might try. The idea is well known among human players, and Steamhammer uses it too.

I was looking at Steamhammer’s 2 hatch muta loss to SAIDA today, and thinking “With good muta micro and good decisions, zerg should win this.” I’ve been promising good muta micro for 2 years and haven’t delivered....

Update: Apparently SAIDA reacted by becoming more aggressive. It seems to have found an attack timing that works against Killerbot. Is this the same mechanism that solves rushes by adjusting timings, or a different kind of reaction? If it’s the same, the mechanism is quite general.

small numbers speak small

Curious fact: Steamhammer versions 1.1 and 1.1.1 are currently 3-0 versus Bereaver and 0-3 versus Killerbot by Marian Devecka. I don’t think it deserves either of those numbers.

The wins over Bereaver are exploiting a weakness. Early in the game, Bereaver techs too hard and doesn’t defend itself adequately, and some of Steamhammer’s openings mass-produce zerglings at a timing that exploits the weakness. I don’t expect all the openings to win; Steamhammer got lucky so far.

The losses to Killerbot are due to scouting wrong (in the most recent game) or taking poor tactical engagements (in the other two). Against Killerbot, these Steamhammer versions play a more solid counter to Killerbot’s overpool +1 opening. Steamhammer now goes overpool with an early second hatchery to outproduce Killerbot in zerglings for a while, occasionally winning outright but usually buying time to transition into spire, which Killerbot can’t defend. I think Steamhammer’s strategy advantage at least equals Killerbot’s skill advantage in tactics and crisis management. Steamhammer’s long term score versus Killerbot should be 50% or more.

You can’t tell how two bots fare against each other from a few games. You especially can’t tell how Steamhammer fares, because the bot plays so many different openings. I propose new wording for the law of small numbers: Small numbers speak small.

Steamhammer versus Killerbot and XIMP

I got my SSCAIT wish and saw the first Steamhammer versus Killerbot and Steamhammer versus XIMP games today.

Steamhammer versus Killerbot by Marian Devecka: Would my counter-build work? In my tests Steamhammer wins with it about half the time. Killerbot went with its +1 speed lings and Steamhammer opened 11 pool and held with its own slow lings while teching to lair. Timing is critical—12 pool is too slow on some maps! In this game Steamhammer managed to sneak in a drone kill while Killerbot’s lings were busy chasing the scouting drone (UAlbertaBot doesn’t do that natively, I had to improve the decision making). Steamhammer added 2 sunkens for protection while getting mutalisks—it still had only 1 hatchery, while Killerbot was headed for 3 hatcheries, and it is impossible to hold without static defense. Steamhammer’s first 3 mutalisks hatched and headed for the enemy base, and as soon as the flyers were safely out of range to intervene, Killerbot’s zerglings attacked! Steamhammer pulled drones to defend and lost every single drone, but the sunkens held and the base was left barren but secure for the moment. The 3 mutalisks killed all of Killerbot’s drones in return and then tore down the enemy zerg base with excruciating slowness—Steamhammer won a close game. Steamhammer-Killerbot games often go down to the wire like this in my testing; I’ve seen one side or the other win with only 1 or 2 buildings left bleeding onto the map. But without the special-purpose counter-build, Steamhammer loses every game; Killerbot is far superior in tactics and robustness.

Steamhammer versus XIMP by Tomas Vajda: Steamhammer opened with 3 hatcheries before pool, the only bot I’ve seen play this logical response to forge-expand. (Though I saw auxanic open unsoundly with 5 hatcheries before pool!) XIMP cannoned up for carriers, as always. I hadn’t tested this matchup, so I wasn’t sure what would happen. Steamhammer went hydras with +1 attack, and soon had enough to tear down the cannon wall (slightly before +1 finished, annoyingly), wipe out XIMP’s natural, and start on the main. That’s what I intended, and I’m pleased it worked. XIMP seemed about to fall, but suddenly the first carriers started to make a difference—they finally had enough interceptors. The hydras did not have critical mass to fight carriers and were cleared from the main. At this point, Steamhammer had 6 bases though not enough drones to saturate them, and XIMP was mining minerals with 6 probes and gas with 3. Steamhammer was still winning by a mile.

As the game went on, the carriers moved to the middle of the map and Steamhammer trickled hydras toward them, losing them a few at a time for no apparent gain. There were 2 obvious problems. First, Steamhammer only attacked interceptors; as I watched, I realized “carriers don’t attack, so they’re at the bottom in the target priority list.” The code is easy to rewrite, though I’m not sure what solution is best. And second, trickling the hydras in was suicidal. I concluded while watching that SparCraft must not know about carriers. It ignores units that it does not know about, so when asked to predict the combat outcome, SparCraft always reported “zerg wins,” and Steamhammer moved its hydras confidently to their deaths. That may be harder to fix.

Steamhammer then won when XIMP overstepped a time limit, taking too long on a frame. That was disappointing. :-( I’m not sure how the game would have turned out. Steamhammer was still ahead but was playing like an idiot, and XIMP did finally re-expand to its natural and may have been able to add carriers before Steamhammer could take the rest of the map and start to make progress.

After these two uncertain wins, Steamhammer played against protoss Ian Nicholas DaCosta, a weaker bot which it had beaten in their previous game. Steamhammer got unlucky with base positions and scouting, placed its 3rd hatchery directly on the path that zealots were taking toward its main, and lost. Luck runs both ways!

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.

Killerbot versus Iron

I have a feeling that some of the new behavior of Killerbot is designed specifically to counter Iron. Well, I could be wrong. It seemed interesting so I played some games between the two locally, with the 1 December version of Iron and the 27 November version of Killerbot. It was also a chance to see how the two cope with maps outside the SSCAIT pool.

This version of Iron scouts immediately, with one of its first SCVs. That’s a hit to its economy. I guess author Igor Dimitrijevic decided it was important to start adapting to the enemy’s build as soon as possible.

On many maps Iron tried its signature 3-vulture runby. When the runby succeeded, Killerbot could eventually clear the intruding vultures with mutalisks, but was far behind and lost every time. On the map Gladiator, which has an up-ramp out of the low-ground main, Iron felt the need to bunker its ramp and tried the runby later than usual. Killerbot had placed sunkens well and Iron aborted the runby in mid-flight (a skill in itself!). But then Killerbot was ahead and could even expand to the precariously-placed mineral only, with a winning advantage.

In some games, like on Match Point, Killerbot added a sunken in its main. I’m not sure what triggered the extra defense. That blunted the runby, even when the sunken was poorly placed, because Iron was not clever enough at working around it. On Match Point, Iron still gained some advantage and ended up winning a tense game.

I notice that Iron favors citadel defense: It builds heavy static defenses that cover a small area. With repair, the static defenses (bunker or turrets) are expected to hold without reinforcement. Pros usually favor the lightest possible static defense and reinforce with mobile units when needed—that’s more demanding, obviously.

Iron builds its first factory in a distant corner of its base. That way when it gets rushed early, the factory is likely to be overlooked and can get vultures out, which is usually enough to hold off the rush. It’s a clever trick that works well against bots. But later when Iron comes under mutalisk attack, the factory is outside the citadel of turrets and becomes hard to defend.

Killerbot’s mutalisks are attracted to turrets and do not fight them efficiently. In this picture most mutas are attacking the rightmost turret. They surrounded it and are taking fire from all sides, when they should have attacked from an angle where not all turrets were in range. Meanwhile, a couple mutas do not play well with others and attack different turrets on their own.

Killerbot fights turrets badly

On Arcadia II, Killerbot surprised me with a strategy I hadn’t seen it play before. It opened with its usual 3 hatcheries and then, I can’t guess why, took drones off gas after 100 and went all-in speedlings. Iron saw it coming and bunkered its ramp, but it was not enough. The mass zerglings surged over everything. The red lines on the minimap are more zerglings on the way, far more than Iron can hope to save itself from after the bunker falls. I won’t be surprised if this strategy features more prominently in the next tournament version of Killerbot!

Killerbot surges over everything with zerglings

Killerbot depends on an easily-defensible natural expansion. On Outsider, a rather weird map, it didn’t even try to defend its wide natural and soon lost all drones. Fantasy and Jaedong played a famous game on this map in 2009. I think it is a difficult map for bots; you need to understand mineral jumping and drop play.

I even laid in a game on Jungle Story, an old-school map from before modern macro play was invented. The map was cool at the time but today is very non-standard. It has no close natural; the closest next base is an open mineral-only. The game was hilarious: Killerbot took the center gas expansion and defended it with 1 sunken. That base has 2 openings and Iron could have harassed through the opening not covered by the sunken. Or Iron could have bypassed the expansion and headed for the main. Instead Iron ran by the sunken, through the expansion, and toward the main, losing 2 vultures of the 3 for nothing! Apparently its decision-making is tuned for standard maps. Killerbot’s mutalisks erased the terran main.

Iron unnecessarily runs by a sunken

Usually when Iron worked up to wraiths, Killerbot found itself unable to defend both its overlords and its mineral lines: Pick one, give up the other. Killerbot would benefit from scourge for air defense, or maybe a spore colony in the mineral line at some bases (it already makes an evo chamber).

Overall conclusion: It was fun because both bots are super-aggressive. Iron has better micro and a deadly runby tactic, and usually wins. But when Iron blunders, Killerbot takes over. Both bots could benefit from more geometry smarts in figuring paths and placements. I was surprised that Killerbot does some basic research very late. It fights more than I expected with slow zerglings and slow hydralisks.

Last year, Killerbot was clearly the best around. If it hasn’t kept up, that is a sign of how much progress we’ve seen this year. Here’s to another year of progress!

Killerbot has been updated!

Yesterday was American Thanksgiving. I want to give thanks that Marian Devecka updated Killerbot on that day!

The new binary is about 5% larger, so I expect some improvement in its play but nothing dramatic. I’ve only seen a few games so far. In a game against Bereaver I thought Killerbot put up a tougher fight before losing, with better use of hydralisks, but the 2015 version already put up a pretty tough fight so I’m not sure. In a game against Iron there was a definite change, though: Killerbot went mutalisks and batted away Iron’s early pressure to gain an advantage. I’ve never seen Killerbot go air against terran before. Before this update, Iron had been rolling up Killerbot like a rug, but this game was another tough fight. Iron came out on top after a while, with good use of repair and steady aggression.

The new Killerbot version has not quite caught up with the current leaders, but it shows progress and there’s still time before the 18 December SSCAIT deadline.

crazy game Iron-Killerbot

Here’s a whacky shot from a game between terran Iron by Igor Dimitrijevic and zerg Killerbot by Marian Devecka. I caught this on the SSCAIT live stream yesterday (yesterday in my time zone, anyway).

screenshot of game between Iron and KillerBot

Killerbot is the strongest bot in existence, if you ask me, but here it is in trouble. Killerbot expanded, placed 3 sunkens and a maze of buildings to deter any runby, and set about teching up. All as usual. Iron also did its usual thing, rushing with speed vultures and a seemingly excessive number of SCVs.

Killerbot is so cautious about runbys that its blocking buildings sometimes block its own lurkers in its base. Caution didn’t help this time. Iron’s vultures ran through the natural and brought SCVs with them into the main. You can see a couple of the SCVs in the screenshot; the vultures are still in the main but are out of view. Iron killed the drones, killed the one defending hydralisk, and set about slowly-slowly tearing down the buildings. Killerbot has sharp strategies but it has the same fragilities as other bots—it said “hmm, the main is underpopulated” and sent drones in from the natural one at a time to die until it had none left.

If Iron expanded now, it could eventually accumulate enough vultures to kill the sunkens and eliminate Killerbot. But I believe this version does not know how to expand and is afraid of static defense (I saw it lose a game against AIUR on points because it did not attack the single well-placed cannon defending all the buildings in the main but instead gradually lost its vultures). On the other side, the queens do not have broodling. Stalemate.

At this point the tournament system had some kind of problem and aborted the game. In the regame, there was no runby and Killerbot won easily. So I never found out who would have won on points.

Lessons!

  1. Runbys rule. I think the feature was recently added to Iron, and I expect it to help a lot. I haven’t seen any other bot do a runby. Runbys are common in human games, so I think they’re vital.
  2. Expanding is a robustness measure. Iron already builds extra command centers, all in the same base. I expect a future version will know how to expand.
  3. If there are things you can’t attack, then there are games you can’t win. If you fear sunkens, or if you can’t find floating command centers in the corner, you didn’t finish the game under your own power.
  4. It’s good to have a fallback strategy to break loose a stuck game. ZZZKBot eventually makes mutalisks. LetaBot used to go wraiths. Even Jakub Trancik’s mass cannon bot finally switches to zealots.

Update later the same day: Igor Dimitrijevic sent me more information. He says my guesses about Iron are correct. About the new runby feature, he writes “Up to 3 times, if some conditions are met (some sunken / bunker / cannon prevents my vultures from reaching the enemy main base), some vultures and/or SCVs (at least one vulture) are ordered to runby, which is something they would otherwise never do.” Later he turned the runby feature off, and I’m not sure when or if it will make a return.

Iron has been updated again and it has another new feature: It makes tanks. Tanks can easily siege down the static defenses that used to hold Iron at bay. Igor is confident that, when tanks and the ability to expand are tuned properly with everything else, Iron will rise near the top of the SSCAIT table. Hmm... maybe it will. I can’t judge. How will Iron fight flying units or cloaked units or tank pushes? Is the rush so strong that it will stop the opponent from getting that far?