archive by month
Skip to content

Iron’s runby skill

Back in March, one of my early blog posts was about a game between Iron and Killerbot in which Iron successfully ran by Killerbot’s static defenses with vultures and SCVs and cleaned out the main. At the time Iron didn’t have the skills to seal the win, but it was a promising start.

Soon after, author Igor Dimitrijevic turned off the runby feature. I suppose his development strategy was to get the basics down before adding such a risky skill. But more recently the runby feature is back. I saw Iron do runbys in September already.

Here’s a game played today where Iron rolled Krasi0. Iron opened with two factories making vultures followed by a starport. Krasi0 made a barracks and then immediately expanded behind a bunker. With repair, the bunker can stop most early game harassment. It’s a good opening.

The moment that Iron gathered 3 vultures outside Krasio’s natural, it ran by the bunker and into the main, like so.

Iron runs by Krasio’s bunker

1 vulture was lost in the attempt. The other 2 stopped all mining in the main. Notice the kill count—that vulture got 8 SCVs and 1 newly-made Krasi0 vulture.

Iron’s vultures stop all mining in the main

Meanwhile, wraiths from the starport flew over as they were made and also stopped mining in Krasio’s natural. Krasi0 specializes in defense, but could make only feeble attempts to ward off the attack.

Runbys still rule, especially if you have aggressive micro skills like Iron. Lessons for the defender!

  1. If you see a runby coming at you, you may be able to pull workers to physically block the runby. Then your static defense will drive it off. It’s an advanced skill, though.
  2. You can place buildings to restrict the path for the runby. Krasi0 could have landed its barracks and/or built a depot near the bunker. Stopping runbys is one of the ideas behind IceBot’s building placement. Killerbot also has anti-runby building placement, though it’s not enough in itself to stop a runby.
  3. Krasi0 could have defended better after the runby. The SCVs were too fearful. Krasi0 needed to gather resources and produce defenders to defeat the few attacking units; it’s no use to retreat SCVs at the cost of resources needed to win. In recent years I notice that pros increasingly often leave workers at work when a base is under attack, instead of running them, and I assume that’s their reasoning.

Bereaver status

Bereaver continues to score wins against its top rivals, but I’m not sure whether it has reached #1 on SSCAIT. Krasi0 and Iron dominate the weaker bots, winning nearly all games, while Bereaver still drops some games to them. It takes time and effort to make a bot solid against all the different strategies!

Bereaver loses some games to protoss bots with strong macro, such as Skynet, when Bereaver takes its natural too late. It can also lose to unusual strategies like XIMP’s carriers. Here Bereaver storms the carriers and takes their shields off—it wasn’t enough, they still had all their hit points. After a long fight, XIMP recorded the win.

Bereaver storms XIMP’s carriers

Bereaver’s zergling rush defense seems to work well against ZZZKBot, but shows weaknesses against variations. Here Zia opened 5 pool and, unlike ZZZKBot which suffered some pathing errors, immediately broke Bereaver’s ramp. The cannon-probe defense was firm and Bereaver held easily. So far so sound.

Zia breaks Bereaver’s ramp

But while ZZZKBot does the fastest possible 4 pool and can only follow up by sending more lings, Zia switched to drone production and teched to mutalisks off of 1 hatchery. There is no strong followup to a failed 5 pool and Bereaver could have shrugged off the weak air attack... if it hadn’t restricted its production to zealots. Even so, the zealots could have won the game if they had attacked instead of holding their ground.

Bereaver’s zealots stand around under air attack

Bereaver still put up a fight, but Zia added to its mutalisk numbers and finally won.

Against Overkill’s 9 pool, Bereaver still canceled its gateway at the first sight of the spawning pool, before the scouting probe had traveled far enough to see the drones. It was not a sound reaction to 9 pool. After losing the blocking probes, protoss was already behind in economy. Overkill aggressively went after more probes, and despite poor play later was ahead the whole game and won as it should.

Overkill goes after Bereaver’s probes

Notice Bereaver’s supply. With only 6 probes, it was impossible to catch up.

Bereaver may be the new #1

Bereaver is mounting a strong challenge for #1 on SSCAIT, and may have already reached it. It has been scoring wins against most of its rivals, including Krasi0, Iron, LetaBot and Tscmoo versions, and ZZZKBot. I haven’t seen a win against KillerBot, though.

Bereaver’s favored game plan is to outmacro its opponent and win with repeated direct frontal attacks, “damn the torpedoes” style. Against strong defenders like Krasi0 and IceBot that can lead to long games, but they aren’t strategically interesting.

Here Bereaver has defeated Krasio’s slightly sloppy early push in the center and broken into the terran natural. The zealots ignored the defending vultures and killed all the SCVs, bringing a quick win.

Bereaver damns the torpedoes, or at least the vultures

Bereaver has adequate skills with storm and reavers. Both could stand to be improved (but what couldn’t?). It knows how to cannon a ramp for defense (the early error where the cannons blocked the path is fixed). I think its most impressive special skill is entrance blocking, as here. It forms the zealot block with smooth ease, and dissolves it just as easily when it wants to let units through. It’s nothing compared to ZerGreenBot’s special skills of reaver drop, zealot bombing, and overlord hunting, but Bereaver is much stronger overall.

Bereaver blocks its ramp with zealots

Bereaver plays a different strategy against ZZZKBot’s 4 pool. As soon as it scouts the rush, it blocks its entrance with probes. Here it blocked the entrance much too early, while the zerglings were still in their eggs, and lost mining time needlessly.

Bereaver blocks its entrance with probes

Then it cancels its gateway, starts a forge instead, and cannons its main. The plan seems successful. It’s slow, but who cares about that when you win? The probe block is tight. The lings tend to suffer pathfinding failure and wander, but may soon kill a probe to break through, as here. The probes fought back, as you can see by the blood.

ZZZKBot kills a probe to open the entrance

Then Bereaver pulls probes to defend its cannons and easily holds. With its probe skills, it is not in any danger whatever. After this it can build up and win at its leisure.

Bereaver defends its cannons with probes

double cannon contain

Here’s a funny game. Jakub Trancik’s “let there be cannons” bot and Tscmoo protoss each cannoned up the other’s entrance. Then they both got stuck on “uh oh, my probe died, I need to send another probe out now!”

Jakub Trancik contains Tscmoo

The green disk below marks the probe being sent out, about to come into cannon visibility and die. Notice the low supply count.

Tscmoo contains Jakub Trancik

Jakub Trancik’s bot eventually did its zealot switch and won. If you can’t recognize that you’re contained, at least you could figure that it’s about time to try something new.

both sides take the same base

Funny picture: Until just before this screenshot of a game between Igor Lacik's bot and Overkill, both sides were mining from this base. As you can see, terran ended up winning it... with a displaced command center.

funny image of zerg and terran taking the same base

blocking one path of two

Here’s a perfect example of why path analysis and tactical analysis should go together.

This map has two paths through the center. Johan Kayser’s bot has thoroughly blocked one path. WuliBot knew better than to confront the bunker farm head on, but never seemed to conceive the idea of bypassing it by taking the other path through the center. WuliBot could have walked unopposed into the terran base.

Instead, terran eventually won.

tanked and spanked

Here Tscmoo has discovered that Tyr built near the edge of its low-ground main base and is vulnerable to attack from outside. Blasting down buildings with no losses helped Tscmoo in its easy win.

Tscmoo’s tank fires into Tyr’s base from outside

Did Tscmoo’s tank just happen to wander into a good position, or did Tscmoo analyze the situation to find the opportunity?

Noticing when you can shoot across a barrier is a great skill. I’ve seen other bots miss chances for free kills with tanks and even with dragoons. And it’s not hard—all you have to do is figure out what’s in range from where, and recognize simple cases where it gives you an advantage. Human players are always on the lookout for chances like that.

hitting the wall

In a game last month, Tyr by Simon Prins was winning until this happened.

screenshot of game in which Tyr blocked itself into its own base

Pro tip:Don’t do that. The Great Wall doesn’t keep barbarians out, it keeps you in. The protoss bot by Roman Danielis dropped a dark templar inside the base from a shuttle and cleaned house. (You thought that a dark templar carried a warp blade? This one had a mop.)

I shouldn’t pick on Tyr—I think Tyr is above average in placing its depots in tight clumps along the edge of its base. It hit a bug this time, and I think the bug has been fixed. Building placement is hard, and it’s especially hard if you are terran, because terran bases need a lot of room for production buildings and supply depots. Some bots space all buildings apart from each other so that there’s a gap between any two and blocking is impossible. Terran bots that do that end up running out of room and having to build depots and factories outside the base in vulnerable open areas. Here ICEbot spaced out the buildings in its main and its construction had to spill into the map.

screenshot of terran buildings spilling out of the base

The fancy solution is do a path analysis in deciding on building placement. Does it block units off from anywhere they need to get to? Can fresh units get to the front without threading a maze? The analysis will be trivial sometimes, but not when the base starts filling up. PerfectBot will analyze both its own and its opponent’s building placement, for both attack and defense. “Oh, the opponent built an obstacle course. The enemy army is here so I’ll drop there.

Knowing when the opponent has built a wall is a valuable skill—notice how well LetaBot’s ramp wall-in works against many opponents. If you don’t want to do real pathfinding around buildings, you could try to recognize a wall when your units fail to make progress toward their goal. I’m not sure it’s easier and I’m pretty sure it works less well, but monitoring progress toward goals is a good idea regardless. Units that find themselves behind a wall may want to destroy a building in the wall, without caring whether the building is enemy or friendly. Tyr could have won if it had opened its own wall.

Most bots probably rely on heuristics to place buildings so that they rarely cause problems. Nothing wrong with that; it should work well enough and it will be easy, and there’s a lot to do so ease counts. But I hope a few authors will go for more ambitious solutions.

Iron meteor

Today Iron learned how to keep expanding. I watched it starve out ICEbot, which is exactly how a contain is supposed to work. It’s moving fast, and may yet go over 90% win rate.

Update: I also watched a tense close game against XIMP. For half the game XIMP had no probes and 30 minerals but 8 carriers, while Iron had many bases that it could not defend. Would the carriers have to stay home to resist the pressure, or could they relieve it enough to go marauding? XIMP won, but I was unsure until near the end.

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?