archive by month
Skip to content

Steamhammer and Sparkle

I’m still preparing for AIST, so expect Steamhammer to participate. The bot is going to struggle, though. There is not enough time to prepare it fully for the maps. Steamhammer will do well only if the other competitors are equally unprepared.

Sparkle is a genuinely difficult map. It requires specialized builds that are not right for any other map, which means that in the proper course of events I ought to delay work on it until Steamhammer can develop its own openings, which won’t be for a time yet. And the map has unique features that require special code. No matter how general I make the code, in practice it will apply to this map alone.

The high ground expansion on the island has zerg buildings that create creep. The creep is an issue for map analysis if you’re not zerg, because BWAPI doesn’t provide a way to find static creep on the map; you have to see it to know where it is, or figure out for yourself how it spreads. The high ground base also has a large crystal on top of the geyser. Any race can built a refinery of its type on the geyser, but the crystal blocks mining from anything other than a zerg extractor (well, you can mine if you glitch each worker through; a bot might be able to do it regularly, but it’s definitely not intended by the map design). Steamhammer is confused by the confusing features and isn’t able to take the base, even as zerg. The low ground expansion has a psi disruptor building on top of the geyser. To my surprise, on the AIST map version it’s also possible to build a refinery underneath the psi disruptor (I tested it by hand with the 3 races). I haven’t seen that in pro games, and assumed the building had to be torn down first. Steamhammer can build an extractor there. But no race can mine from the geyser until the psi disruptor is destroyed.

Yesterday I started on the skill of clearing the neutral buildings that clog up the second and third bases on each starting island. As matters stand, Steamhammer can mine only 1 of the 3 geysers that it should have access to, which leaves it ridiculously weak. The map analysis creates for each base a list of “blockers” that ought to be destroyed, which it outlines on the map in red if map info is turned on. Almost all maps have none. Fortunately the coding and testing only took a couple hours.

Only then did I think through the rest of the steps to implement the skill. There is updating the list of blockers as they are destroyed, of course. Before that is sending a squad to do the work... but hmm, the usual tactical getAttackLocation() only returns a location, not a unit to attack. In fact, Steamhammer doesn’t have any way to order a squad to destroy a unit! I have to create a new kind of squad order, implement it in the squad, and add the tactical analysis to decide when to use the order. It’s likely a day’s work to write and test and finish, more if I hit a snag.

Well, that’s too much effort to support a single map. On the other hand, most of the code is reusable for destroying buildings that block paths, a more common skill though low on my list. I’m still thinking about it. In the meantime, I’ll work on other skills. There’s not exactly a shortage.

Trackbacks

No Trackbacks

Comments

Antiga / Iruian on :

You may be able to reuse some of the remove neutral building code on some of the maps in the SSCAIT pool. Heartbreak Ridge and Benzene come to mind. It's also a stepping stone for some of the later skills of being able to clear things blocking expansion locations (minerals / buildings).

Antiga / Iruian on :

Jay- Locutus added bunker runby code and it is doing super well. Take a look : http://www.openbw.com/replay-viewer/?rep=https%3A%2F%2Fsscaitournament.com%2FReplays%2FLOCUTUS%2F266504-Locu_kras-PvT.rep His bot is also likely going to cross into #1 on sscait within a few hours.

Jay Scott on :

Yes, I’ve been watching the progress. Locutus is systematically adding to its strengths.

Jay Scott on :

Sure enough, Locutus is now #1 by a nose. I think Krasi0 has fallen back partly because of its new version, though. Perhaps Krasi0 needs to relearn some stuff.

Tully on :

The downside to your total macro focus - other bot authors can consistently pick up your code, add a few skills and eclipse Steamhammer’s Elo. I suppose it’s not a problem really

Dan on :

Basically every bot is a few changes away from a much higher Elo. But those changes are often local minima; they come as situational changes that don't improve fundamental skills. (Trick 1 + Trick 2 + Trick 3) is eventually weaker than (Skill 1 * Skill 2 * Skill 3). For example, most Zergs on the ladder could improve their winrate by simply 4pooling, but that does nothing to increase the ceiling of their ability.

I don't say that as commentary or judgment about any authors or their bots; there's no wrong way to write a bot and I love seeing Locutus' progression. It's to say a lot of the improvements in Steamhammer don't show up directly on the Elo chart, but instead exist as the untapped capability to rapidly climb the Elo chart later. People were a bit surprised by how my bot performed in CIG and AIIDE. The focus on fundamental skills is part of the reason why the result was surprising. I spent the first half of 2017 working on experimental/foundational stuff, bouncing up and down the bottom half of the ladder, then turned on the gas when it came to tournament time.

Jay Scott on :

As Purple Dan suggests, it is a deliberate strategy. The same thing happened last year at AIIDE: Steamhammer finished below its forks cpac, Microwave, and Arrakhammer. Microwave and Arrakhammer are serious efforts, but cpac finished highest at #4 and seems to have been a minimum-effort-f0r-maximum-results kind of project. It’s all good, as far as I’m concerned.

Antiga / Iruian on :

I predict a wave of protoss bots implementing runby code for terran bunkers.

Jay Scott on :

Iron didn’t inspire bot authors, but Locutus will? Maybe so. Locutus is more approachable, in a way.

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.