archive by month
Skip to content

Steamhammer status

Steamhammer is doing relatively poorly. The new version 1.4 is at about the same level as the tournament version 1.4a3, maybe a little worse. (It’s hard to tell, because the opponents have improved.) It is at the low end of my expectations. A slow start was only natural, since it had to learn for itself about many opponents that it previously was hand-configured to defeat, but it seems to be genuinely not improved. In reality, it is stronger in many ways, but it also has a few new weaknesses. The new weaknesses are from the opponent model’s mistakes and limitations.

The next opponent model feature, I’ve decided, should be fine-tuning the choice of openings against each opponent according to results. The opening recognition will provide instant counters when it successfully recognizes the opponent’s opening, and fine-tuning will sharpen the selection over time. Details still to be decided, though. After enough games to accumulate data, that should solve Steamhammer’s newly-added weaknesses.

More opponent model features will follow, as mentioned at the end of the original post on the opponent model’s workings and the post on a tree of openings.

Today’s overlong game against PurpleSwarm shows bugs on both sides. Steamhammer correctly predicted PurpleSwarm’s opening and played 5 pool, which put Steamhammer ahead and should have won. Instead of keeping the pressure on, Steamhammer droned up, went to 3 bases, and started to switch into mutalisks—it does that occasionally, it’s a choice. PurpleSwarm took advantage of the delay and recovered, overrunning Steamhammer’s bases with zerglings. Just after its natural fell, Steamhammer made an extractor there, which seemed wasteful but turned out to be key. Then, just before its main fell, Steamhammer hatched its first and only 2 mutalisks. There was not much play left for Steamhammer.

PurpleSwarm destroyed everything it found, but never found the extractor that was barely out of sight. Zerglings roamed the map checking bases, but didn’t look everywhere. PurpleSwarm also never mounted a defense against the 2 mutalisks. That makes 2 basic errors by PurpleSwarm. Steamhammer’s mutalisks slowly wore down drones and buildings, like water dripping on stone (watch the whole game if you have geological patience). The mutalisks sometimes went idle, which should never happen for more than 8 frames. And the mutalisks did not search for other bases, but only destroyed those already seen. That’s 2 bugs for Steamhammer. Steamhammer’s bugs proved less severe: Steamhammer won on points when the game timed out, since its mutalisks destroyed so much stuff over the long long endgame.

Steamhammer’s bugs appear to be in the tactical goal selection. These are features which usually work but failed this game (and I have seen other failures too). The code does not look that complicated, but I have fixed bugs in it before. I guess it is trickier than it appears. I did make one change to exploration: Air squads are now allowed to explore places which are not reachable by ground. That would not have helped this game, but it could help against an opponent whose last base is an island base, or which is hiding floating buildings in an inaccessible spot.

Trackbacks

No Trackbacks

Comments

Antiga / Iruian on :

I think while the opponent modeling is useful. You may get more immediate results with a simple opponent learning model. If build 1 doesn't work, try build 2 until something sticks, then keep exploiting that build etc. Several of the SH / other bots have open source examples that could provide great examples of how to do it. Purplewave's learning system might be a really good starting point. SH has probably the largest opening variety of any bot and should be able to exploit basic learning successfully imo. I've been able to (with a bunch of hardcoding vs specific enemy bots), get alot out of Antiga ELO wise.

Also I'd recommend using Krasi0's ladder to gauge strength / ELO not SSCAIT (voting messes it all up) : http://scbw.holdorf.dk/sscait-krasi0/ratings.php

Really imo SH is about 5th strongest. And is in a good place even though SSCAIT doesn't reflect that.

Jay Scott on :

You mean like this, the blog’s second post ever: http://satirist.org/ai/starcraft/blog/archives/37-strategy-selection-in-Overkill.html

Jay Scott on :

Voting does mess up the ranking severely, I agree. Voting has made it much more difficult to judge true strength.

Jay Scott on :

I did not know about that rating list, thanks. Where is the data from?

Antiga / Iruian on :

It's from Krasi0 and Nitekat's new ladder (it's been in testing for weeks, but was just released to the public today) : http://bwapibotsladder.krasi0.com/

krasi0 on :

Also, we should keep in mind that NOT enough games have yet been played on the new ladder and ELO hasn't yet stabilized. Learning bots are likely to change ranks a lot still with time.

Dan on :

That build explicitly reacts to Mutalisks and I'd argue the reaction remains correct in almost every situation: Go all-in and try to base race. With 9 Drones and no Lair, that's usually the only way to win against Mutalisks.

Jay Scott on :

This is about the PurpleSwarm-Steamhammer game. PurpleSwarm’s reaction was correct this game too, but the implementation had a flaw. Also I’d say that hints in the build become unhelpful when the situation deviates too far from what was expected. That seems hard to cope with in general.

Dan on :

Certainly. PurpleSwarm's builds are mostly workarounds for a total lack of Zerg macro intuition (and some other skills deficits). That is, if you're aggressive as possible, the solution to most problems is more aggression.

krasi0 on :

It always amazes me how many (robust) bots still get tripped by late game scouting. I mean, it should be one of the more trivial tasks on the road to building a good Starcraft bot

Dan on :

Developer priorities. Games lost by pretty-good-but-not-perfect scouting are rare. In almost every case where you'd fail to find a stray building you'd win on score anyhow. This game just happened to have a particularly weird combination of circumstances.

krasi0 on :

Letabot's author may want to have a word with you :P

Jay Scott on :

One of the items on my list is to switch to air to find the last buildings, in case they are inaccessible by ground (floating or on an island or cliff). Steamhammer has never lost a game for lack of that skill, so I am not in a hurry....

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.