archive by month
Skip to content

proxy vs proxy

Basic proxy skills were one of the major new features added in the current Steamhammer, version 3.0. It was preparation for the future more than a plan to earn cheesy wins: Steamhammer will need more skills before it’s any good at deciding when to proxy, and before it can execute well. And zerg doesn’t have many proxy opportunities in the first place, since it can only build on creep. Zerg can make a proxy hatchery, or versus another zerg (or in rare cases if there is neutral creep on the map) it can try an offensive sunken or offensive spore, that’s all. I was unsurprised when I checked a couple days ago and found that Steamhammer had recorded a total of exactly one proxy opening on BASIL, an ill-advised proxy hatchery in Microwave’s natural that went down for a quick loss.

Today I noticed another proxy attempt, and it’s a funny game: Steamhammer-krasi0P on Roadrunner. For background, #7 Steamhammer’s 60-day record against #11 krasi0P is 23-22, virtually even. So Steamhammer feels a need to keep experimenting to find better openings.

hatchery and nexus

Steamhammer scouted at 5 supply, as soon as its first new drone hatched from the egg, which is necessary on a 4-player map if you want to find the enemy in time to drop a proxy hatch. The scouting drone went the wrong way while the overlord flew straight to the protoss base, but it made no difference; the drone scouted 2 empty bases and deduced the location of the enemy before the overlord came in sight of the nexus.

zerg base and cannons

Krasi0P plays 2 related but different strategies, it either cannons up the exit of the enemy natural, or it cannons the entrance to its own base (and follows up about the same in either case). The 2 strategies are nearly identical from krasi0P’s point of view, but call for contrasting reactions from the opponent, “ha ha, it’s easy for me but hard for you!” In this game, krasi0P chose the forward cannons, so both sides are building in the enemy natural. It’s the Starcraft equivalent of Spy vs Spy; which will win this time? The picture shows Steamhammer’s spawning pool just starting as the cannons warp in; there is no hope of breaking the containment early.

production beats containment

Well, it was a funny start, but the rest is disappointing. The cannons were strong, but a hatchery is a production building and it can make units that go kill you. Krasi0P didn’t have any better defensive idea than to pull probes and lose them all. Once the protoss base was destroyed, the result was foreordained, even though Steamhammer becomes accident-prone when it has units on both sides of a contain: It blunderfully tries to join them into a single army. But all it had to do was kill cannons that could never be replaced, and it eventually did.

(By the way, are the pictures a good size? I have a bigger screen now and the images are not the same size as in past posts. You can click through to get the full size pictures.)

still returning to normal

Well, so much for “back to normal.” My energy has improved somewhat but remains low. Let me try again.

progress

I’m pleased with how well Steamhammer has held up without updates. It remains #1 zerg on BASIL, in the top 10 overall and above 2700 elo except for occasional wobbles. Other zergs have improved at ZvZ so that ZvZ is no longer Steamhammer’s top matchup—I let it coast too long on an edge it has held for years. Instead, improving win rates versus terran has made ZvT the best matchup. In the last 60 days, Steamhammer is 18% versus #3 Krasi0, better than even against the tricky #4 Halo by Hao Pan (Steamhammer is tricky too), and about even versus #5 adias, all good rates facing higher-ranked opponents. ZvP skills trail far behind and need the most work.

My plan for Steamhammer remains to release a version 3.1 with minor improvements soon-ish. My rate of work has been low. So far I have restored several small side features from the rolled-back scout boss version and made one new tweak; each step was a trivial amount of effort. I want to restore a couple more side features and write one new feature from scratch, and then I’ll call it done. I could do it in a day if I worked hard, but I think it will take longer....

SSCAIT broadcast

I enjoyed Jealous as commentator last time. He contrasted well with the usual casters: Strong game knowledge, less familiarity with the bots so that their play looked fresh and surprising, and a slow and thorough style of examining the game events. Casters with varying approaches and knowledge make the casts more fun.

Commenting Broodwar games is a difficult skill! Even learning to consistently notice important events in the minimap takes practice and concentration.

how to play on hard maps

Humans build up a wealth of knowledge about each map they regularly play: The best proxy spots are here and there; this base is particularly vulnerable to muta harass; such-and-such expansion build is only safe in cross positions. Some of the knowledge is very specific: On Circuit Breaker, at a mineral only you can displace the resource depot toward the edge of the map and it’s a little safer, or protoss can place the nexus normally and provide some protection from vulture raids with a specific pylon wall. I eventually want to teach Steamhammer to collect strategy and tactics data per map and learn that kind of knowledge itself.

For now, though, bots have a simplified understanding of maps. The information that comes out of terrain analysis is a small fraction of what a human knows. So I asked myself: On a map with destructible neutral buildings, like say Hitchhiker, how should a bot decide which buildings to break down and when? Is there a rule of thumb that we can use as a first approximation of deep knowledge and tactical analysis?

One of the steps is to decide where you want to go. If you have a destination in mind, you can compare the different ways of reaching it and choose a set of paths to open (a set of neutral buildings to destroy or mineral blocks to mine out). Most bots today, I get the impression, don’t use this goal-oriented approach, but open a new path when they happen to find that it is nearby.

Two major reasons to open a closed path are to expand to a base through it, or to attack the enemy through it. Suppose you choose your next expansion by scoring the neutral bases and taking the one with the best score (or perhaps none if none passes a threshold). For a base that you have to open a path to reach, count the cost of opening the path against the score.

Opening a path for attack does not seem as simple. On Hitchhiker, you start with an open path down the center, but it is a narrow ravine that is easy for either player to defend. You can also destroy buildings to open side paths. A path you can attack through is also a path the enemy can attack you through, and if you open a side path and send your army there, what stops the enemy from countering down another path? How do you weigh risk and gain?

Maybe you can suggest a better idea, but here is my thought: If you are unable to attack down any existing path (the combat simulator keeps saying you’ll lose), and the reason is not that your army is puny because you are behind, then maybe you should open another path and attack there instead. That seems simple enough to implement and likely to be of some value.

Another reason to open a closed path is to create a shorter path to a place you can already reach. That’s the reason on SSCAIT maps; it applies on Heartbreak Ridge and Destination to the backdoor mineral blocks, and on Benzene to the backdoor neutral buildings. You want to open the path when it benefits you more than the enemy, which generally means that you can actually or potentially control the new path with your army. I think that strong current bots are not bad at doing this defensively for paths near their base, but I haven’t seen a bot open a path offensively.

the CoG maps

The CoG tournament expects participating bots to support all maps in a pool of 19, and randomly selects 5 maps from the pool to play in the tournament. The registration deadline was yesterday, so I guess everybody has already decided whether to participate. But there was mention of the CoG maps in the Undermind podcast #44, so I thought it was worth a post.

I described the maps in a 2018 post about the then-CIG maps. This year’s CoG map pool is the same, except that they removed the extremely difficult map Plasma, “because this map may too tricky to play by agents,” an understatement. Plasma has egg blocks that must be destroyed before ground units can walk to the enemy base, and also small mains where terran and protoss cannot fit all the buildings they need, and narrow ramps from the mains that only allow small units to pass. The combination of special features is more than current bots can be expected to support. The last time Steamhammer participated, I tested that it could play games on Plasma without crashing and made no other preparations. If the map had been selected, games on it would have looked ridiculously bad and distorted the tournament results.

With Plasma removed, I expect only a few of the other maps to pose any difficulty to bots. In order of difficulty, on Alchemist the 2 entrances to each base may cause misplays, but I think games should look normal except for misplaced buildings and overlooked opportunities. On Blue Storm, the narrow entrance to the center near each side’s natural will cause some bots to pile up units, trying to send them through where they do not fit. The most difficult will be Hitchhiker, where many bots will try to route through the destructible buildings and leave units trapped. From what I’ve seen, even bots which know how to destroy the buildings will be unable to plan a route to the enemy base, and are likely to blunder in confusion through the game. With 5 maps chosen out of 19, odds are good that at least one of the 3 more difficult maps will be included.

That is what I expect based on past experience, but I could be wrong. Compared to 2018, bots today rely on more and different libraries. Does BWEM have trouble with any of the maps? Does BWEB misplace walls on some of them? I don’t know.

returning to normal!

After more than a year of coping with unhappy realities, at times slowly and at times intensively, I’m finally returning to normal. After passing through final blasts of stress and (as it seemed to me) sky-spanning arches of paperwork, only niggling details are left. I’m gradually recovering my energy.

I have only just restored a usable development environment—not that it was hard, I am still energy-limited. Before, I was working on an ambitious update to scouting and overlord safety, which involved refactoring, and in many cases entirely rewriting, all code related to scouting, detectors, and overlord movement. I guess that I left it about 25% complete. It’s an important improvement, but also somewhat monolithic, and for now I don’t have the brain cycles to work on it. I rolled it back, I’ll return to it later.

Instead, Steamhammer 3.1 will come out soon-ish and have a small number of improvements that are easy to write and easy to test. I will fix the expansion order, for example (that will improve games on Heartbreak Ridge especially).

Today is the last day to register for the annual CoG tournament (known as CIG until last year). Steamhammer will not be participating.