archive by month
Skip to content

Proxy-Tyr game

I thought that Proxy versus Tyr by Simon Prins was a good game to draw lessons from. It’s strategically simple and has a clear turning point.

Tyr played a Giant Terran Death Ball Will Crush You strategy, macroing up a juggernaut of tanks and marines before moving out. That gave Proxy time to do its thing and develop a roaring economy, in the meantime frittering away a few units in light harassment. Proxy went with a lurker-ling mix. When Tyr moved out, Proxy attacked repeatedly to little avail, looking almost helpless in the face of terran might. Zerg slowed the terran force but could not harm it much, fighting inefficiently and losing units at a high rate. Then suddenly the terran ball unraveled and the game was all Proxy. What happened?

Lesson 1. When Tyr’s force reached the bridges to the enemy natural, it became disorganized trying to move through the narrow choke. That’s the main reason the game was lost. At the same time, Proxy’s forces, trying to approach from all angles, concentrated their attack more effectively. I suppose that’s partly due to the map configuration and mostly due to Proxy realizing that it could attack the disorganized terrans with advantage.

The lesson is that movement is a big deal. Moving units around the map is important and difficult in itself. Bots struggle with moving around in good formation, and in difficult terrain they have no idea how to adapt. For the first micro skill that I implement with machine learning, I am seriously considering the skill of moving squads from place to place.

Lesson 2. Don’t waste units–well, it’s empty advice, everybody knows that. But look how many units Proxy lost needlessly before the decisive engagement. It could afford the losses because of its strong economy and strong macro, and fighting when it did was not wrong, because it slowed the terran down. But if Proxy had fought efficiently, the terran ball would have been broken in the middle of the map, not perilously near the zerg natural. Steamhammer desperately needs to learn this lesson.

More a suggestion than a lesson. I think terran did not take full advantage of the situation, and I don’t mean only neglecting to get stim. Leaving aside the need for terran to take a third itself, when zerg spreads to a large number of bases, terran should be thinking “how can zerg defend all that?” In this game, Proxy went all ground with no air defense. If I were the terran, I would have made a couple dropships: Drop marines and medics off to one side, stim, run in and eradicate drones, then focus on the hatchery. When defenders appear, fight them if you like, or else pick up and drop another base. If zerg invests in defending the many bases, the cost will be far more than you spent to harass them. The terran ball will be a little weaker, or will move out later, but zerg will be substantially weaker.

Proxy is strong

Proxy has become legitimately strong. Versus terran, protoss, and random, Proxy goes 12 hatch with early sunken defense if needed, then hydras with a growing economy, keeping only 1 geyser and slowly shifting toward zerglings as the gas runs low. In ZvZ, it opens 12 pool (12 hatchery is too risky) and makes mass zerglings, again with an ever-growing economy. The ZvT strategy is not efficient, and Proxy suffers losses to weaker terrans that follow a one-big-push game plan, but still does well overall. The ZvP strategy is the most convincing. The ZvZ is not optimal, and Proxy does nothing to defend itself against mutalisks, but even so the mass lings are genuinely difficult for a bot to hold off.

For me, it’s natural to compare Proxy to Steamhammer. Steamhammer is far ahead in versatility and reliability (Proxy crashes sometimes). At everything that Proxy knows how to do, it is at least as skilled: It is at about equal in zergling micro, ahead in hydralisk micro, better at worker defense, less blunder-prone in tactics, and superior at macro. I admire its ability to switch between army and drone production in ZvP—Steamhammer desperately needs that.

According to the SSCAIT crosstable page, the head-to-head score as I write is Proxy 5-4 Steamhammer—they are about even in ZvZ, which is Steamhammer’s best matchup.

To improve further, Proxy needs more skills and more adaptivity. To do well against terran, it needs lair tech units. Proxy does less well against the top protoss bots, Locutus, PurpleWave, and BananaBrain, and even against XIMP by Tomas Vajda. To move further up the rankings, I think Proxy needs to recognize better what the opponent is doing, and adapt its play. And it needs new skills to cope with cloaked units, zerg air attack, and other basics.

Proxy has only shown itself in public for a short time. How much development did it get behind the scenes? Rather a lot, I imagine, to become as good as it is in such a short time. Still, it comes across to me as a young bot. Proxy shows that it is possible to climb high with few skills, as long as those skills are exceptionally strong. But to challenge the very top, it needs more.

Proxy updated; Locutus vs. Krasi0

updated Proxy

New bot Proxy is—I can almost add “of course”—updated already. The obvious change is a zergling build if the opponent is zerg; the hydralisk build was too slow for ZvZ. The zergling build is successful, and Proxy’s elo has climbed over 2000. It is now an average bot, maybe better than average. That is excellent for a newcomer.

Locutus and minimum tank range

When Locutus runs dragoons by Krasi0’s bunker, Krasi0 (in games I’ve seen by the current version) has 1 siege tank available as its main interior defense. Terran sieges the tank and Locutus loses its dragoons, doing less damage than it should.

dragoons keeping their distance

In a broad sense, this is why I haven’t implemented runby in Steamhammer. Running by fixed defenses is easy, but playing well after you have run by is not so easy. The runby units become desperadoes, expecting to die and seeking to deal as much destruction and distraction as possible until then. Steamhammer’s units normally retreat from too much danger; desperadoes may be able to retreat, but can’t count on it. They have to make different decisions about what to shoot at, when to run away, and where to run to.

In this case, the important thing to shoot at is the tank, which limits the dragoons’ freedom too much. The dragoons should rush inside the sieged tank’s minimum range. They’ll win the fight and live to cause more trouble. Dragoons that wander too far off or take potshots at SCVs are not contributing as much as they could.

I think it’s complicated to handle all the defenses terran might try. I guess it’s a matter of taking one step at a time.

new bot Proxy

Zerg bot Proxy (which is not a proxy bot but a dll) is a nice start on a new bot. It plays only one strategy and has no outstanding skills, but its strategy is dangerous against many opponents. Most impressively, it holds a score of 2-0 against Tscmoo terran. It is currently rated not far below 1900, a decent performance for a new bot apparently made from scratch. (It does say that it uses BWEM and FAP.)

Proxy describes its strategy as “eco cheese into mass hydra.” “Eco cheese” means make lots of drones, which says that Proxy is vulnerable to almost any early attack. A lot of bots play rushes, so Proxy will never be a top scorer with this strategy. Once the mass hydras arrive, though, with that big economy behind them they seem endless and relentless. It mixes in zerglings as needed to balance minerals and gas; that may be its greatest skill. This game against Marine Hell is boring to watch, with no variety, but it shows what I mean about relentlessness. Proxy slowly battered its way up a ramp by sheer persistence.

Like any new bot, Proxy doesn’t have many skills yet. It takes 2 bases and never expands again. It cannot replace lost buildings. It is poor at scouting. It often makes weak tactical decisions. These things need time to implement. Considering how little it knows, I think it is performing well.

Good start!