about Steamhammer 1.1
stand by for bug fix version 1.1.1
Steamhammer 1.1 is losing game after game to the infinite creep colony bug. Apparently I ran the wrong test games to see it. There will be a 1.1.1 release to fix the bug.
version 1.1
Steamhammer 1.1 had a shorter development period (compared to the previous version) than 1.0 did, but it includes at least as many changes.
The primary goal of 1.1 is not to play better, it is to raise the ceiling on potential performance by playing more flexibly. Every time you add flexibility you run the risk of playing worse: The bot could misuse its flexibility. Flexibility makes more mistakes possible.
1.1 includes enough strength improvements that I think it probably does play better overall, or at least fixed version 1.1.1 should. Its rating went down at first, partly due to losses to Neo Edmund Zerg (which seems to be by the same author as Newbie Zerg, 5 Rax Newbie, and 5 Pool—what is it with all this coming and going? [it is partly explained in a comment]). Over time, I expect its rating to wobble over a range offset slightly upward from 1.0 (whose final elo of 2163 was above its average).
strategy boss
The headline feature of Steamhammer 1.1 is new macro code in the zerg strategy boss. It looks at the game situation and decides on a unit mix to produce now and a tech goal to work toward. It’s not very extensive; the possible tech goals are hydras, mutas, and ultralisks. Units allowed in unit mixes include those three plus zerglings. A unit mix is specific: It always includes one mineral-heavy unit and optionally includes one gas-heavy unit, and that’s all. The units are combined as resources allow. Some of the unit mixes, like hydra-ultra, are designed for rare circumstances, and I’ll be watching to see whether they ever appear in real games.
The strategy boss has a lot of tiny smartness improvements, mostly to avoid mistakes. Overlord timing is better. It copes more successfully with a wider range of emergencies (oops, lost the main? I’ll call this base my new main). When the enemy army looks big, it may build sunkens. There are no more random unused buildings (buildings may still go unused, but they are always made for a purpose). It no longer goes overboard on scourge (that was a bug). Few situations cause production freezes, though there are still some. It can upgrade in 2 evo chambers at once. It has fine control over the economic growth rate, though it doesn’t make much use of the ability.
All these improvements have surprisingly little effect on skill. They are weaknesses that need to be fixed, but not bottleneck weaknesses that lose many games.
tactical improvements
One big improvement is the worker harass defense as suggested by AIL. Steamhammer beats Stone. This defense skill helped 1.1 to a win over Bereaver in its first SSCAIT game, losing 0 drones where 1.0 often lost 2 or more.
Another big improvement is that Steamhammer is more cautious about the range of enemy units. It understands the range advantage given by a bunker, and assumes that enemy units have their range upgrades. Units less often suicide by dawdling under enemy fire. Steamhammer was able to play longer against Krasi0 before losing due to other weaknesses.
There are a bunch of other improvements, but they’re minor by comparison. Targeting is further improved. Zerglings and scourge are slightly less stupid. Stuff like that.
One improvement behind the scenes is used only by the strategy boss for a minor purpose, but should be valuable in the future: InformationManager tracks when its data about each enemy unit was last updated. You can tell if the data is fresh or stale.
the configuration file
You can specify repeated units in a build order: “4 x drone” gets you 4 drones. Or at the end of a rush build, “50 x zergling”. The openings become shorter and easier to read and edit. 1.1’s configuration file is less than 3/4 the size of 1.0’s, even though the bot plays more openings.
openings
The new strategy boss bring changes to openings. Since the bot can now adapt to the situation, a bunch of openings have been shortened to get out of the opening sooner and start adapting. A few openings have been lengthened because the boss was likely to do the wrong thing.
The opening selection changed. In earlier versions I rejected overpool openings for ZvP (even though they’re the top ZvP openings in human play) because they require adaptation to play well. Also the ZvZ overpool openings I tried were unconvincing. 1.1 plays 2 different ZvP overpool openings, and 3 ZvZ overpool openings plus an overgas opening.
Openings are still chosen randomly with weights. The number of openings per matchup:
| matchup | 1.0 | 1.1 |
| ZvT | 8 | 9 |
| ZvP | 6 | 6 |
| ZvZ | 7 | 11 |
| ZvRandom | 3 | 4 |
I dropped the ZvP 3HatchHydra opening altogether. I wasn’t satisfied with the version in 0.2 and reworked it for 1.0, but I did a thoughtless job and the 1.0 version is worse. The bad opening is responsible for more than its share of losses. Now all ZvP openings stop at zerglings and let the strategy boss decide whether to go for hydras or mutas next. In my tests it makes mostly good choices.
I also fixed tuning mistakes in the ZvT 2HatchMuta opening; it hits harder. A number of the other openings are not quite optimized and could use tuning up.
Comments
AIL on :
I tried fixing this odd UAB-issue earlier but postponed it after I didn't see why it wouldn't work.
Jay Scott on :
MicroDK on :
Jay Scott on :
MicroDK on :
Jay Scott on :
krasi0 on :
Also I've found the below comment hilarious: "Zerglings and scourge are slightly less stupid." LMAO
Newbie Zerg on :
The 5 pool was only submitted due to request of krasi0.
Please edit your post to make this clear and not confuse people, I do not have any bot submitted. (5 pool was 39-11 I believe aswell and both bots were top 5 in terms of mmr before takedown.)
Thank you. Glhf.
Jay Scott on :
Newbie Zerg on :
If you opened it and checked you could easily have seen that aswell...
His bot is more than likely made with Steamhammers Vanilla Version. My own 5 Pool had better micro implemented (Some other cute changes aswell) and that's why it performed better than Neo Edmund does.
However, nice catch. Idk why he'd want to copy my stuff which is pretty bad anyways lol.
Cheers, GLHF
Jay Scott on :
Newbie Zerg on :
As for the dll I could be wrong but It doesn't seem to be the exact same version. The differences are pretty minimal tho but I think there should be some micro differences.
Besides, blatantly copying others stuff and re uploading, is that even okay? Seems abit unethical. (Since at least configuration is a 100% match.)
I also had someone on twitch pming me about using an old version of my bot, perhaps that is what is uploaded? Without the fixes I added later on, could be very possible.
Like ur blog btw and as always, have fun and enjoy ^^ :)
MicroDK on :