Steamhammer’s version history

Steamhammer 3.6.1

The AIIDE 2023 tournament version was 3.6. It has improvements to pathfinding with many, many potential uses—though only a few of them are implemented. It has a couple key bugfixes too, but unfortunately it adds a critical bug in the new code. The current version 3.6.1 fixes that bug among others. It cleans up the pathfinding and uses it in a couple more cases. The change list is not written yet, but there is more to it.

I made versions 3.6.2 through 3.6.6, but did not release them as source. They include many smaller improvements.

Steamhammer 3.5.10

The AIIDE 2021 tournament version, with bug fixes and infrastructure and play improvements. It played in AIIDE 2022 too; the only changes were to prepared learning data. There have been a bunch of unreleased versions since the previous release. Major additions along the way include combat sim smoothing, pathfinding over terrain, and a new and more capable static defense controller. There are also tons of bug fixes and minor improvements. Play is more solid and less buggy and flukey than any earlier version. Overall, it’s significantly stronger. See the change list for the most recent stuff.

Steamhammer 3.3.5

The SSCAIT annual tournament version, with bug fixes and modest infrastructure and play improvements. Versions 3.3.1 through 3.3.4 were test versions which were not released. See the change list.

Steamhammer 3.3

Steamhammer is updated to use BWAPI 4.4.0, an overdue change. The new BWAPI version fixes important problems compared to version 4.1.2 that Steamhammer formerly used. See the change list for details.

Steamhammer 3.2.19

A substantial update, the entry into the 2020 edition of the annual AIIDE tournament. Improvements were made to overlord control, worker safety (including the use of burrow), hydralisk micro, and defenses against various early attacks the opponent might try. See the full change list. Versions 3.2 through 3.2.18 were test versions with short lifetimes and were not released.

Steamhammer 3.1

A minor update (see the change list) with a small number of bug fixes and new features. Most importantly, zerg is less susceptible to losing drones en masse to vulture raids.

Steamhammer 3.0.2

Version 3.0 is an infrastructure version that is not released because it suffers from crashing bugs. It adds many features, notably a skill kit to make the opponent model extensible, basic proxy skills, resource tracking, and improved use of queens. Steamhammer versions 3.0.1 and 3.0.2, released in quick succession, are identical except that they fix two crashing bugs.

Steamhammer 2.4.2

Version 2.4.1 was the SSCAIT 2019 tournament version, not released as source. Its most important new feature is the burrow ability. The current release version is identical except that it adds a feature that can recognize when it is running under SCHNAIL (software to make it easy for gamers to play against bots) and automatically know that it is facing a human opponent. See Steamhammer 2.4.2 change list.

Steamhammer 2.4

Add a HumanOpponent flag, a setting to play more appropriately against humans. Preparation for the upcoming SSCAIT 2019 tournament, in two key areas: 1. Fix critical bugs that cause losses. They happen rarely but hurt, especially when the opponent is lower ranked. 2. Cope with the powerful Styx build, which is especially deadly in ZvZ. Steamhammer has 10 new zerg openings to play variants of the Styx build, counter the Styx build, and fool opponents that try to recognize the Styx build. For more, see Steamhammer 2.4 change list.

Steamhammer 2.3.5

The AIIDE 2019 competition version was Steamhammer 2.3.4; it is not released here and plays zerg only. The changes focus on bug fixes and short-term play improvements. Defiler play and scourge play are especially improved. The current version, 2.3.5, is the same code, with updates to the configuration file to play all races. Intermediate versions 2.3.1, 2.3.2, and 2.3.3 were test versions which were not released. For the full set of updates, see the long 2.3.4 change list and the short 2.3.5 change list.

This version ended up not being released as source.

Steamhammer 2.3

This version improves building placement, which helps terran and protoss play better. It also corrects problems that had crept into terran and protoss openings and play in recent versions, which were tournament versions focused on zerg. Zerg is also modestly improved with a lurker movement fix and a zergling combat fix. See the change list.

Steamhammer 2.2

AIST S2 tournament version, end of February 2019. This version did not play on SSCAIT and was not released other than through the tournament. Most importantly, it drops the dependency on the terrain analysis library BWTA (it does its own map analysis) and it fixes a severe “command jam” bug in the previous version. It also has many less important improvements. See the full change list.

Steamhammer 2.1.4

Tournament version for SSCAIT 2018. Versions 2.1.1 through 2.1.3 were test versions and not released. This version includes many changes scattered across all aspects of play, mostly bug fixes which improve specific weaknesses. As a tournament version, it was only tested as zerg. See the full change list.

Steamhammer 2.1

Followup version that restores reasonable play as terran and protoss, fixes the most important of the newly-introduced bugs and a number of other bugs, plus improves usage of zerg scourge. Zerg versus zerg play is strong again; the micro bugs are gone. See the full change list.

Steamhammer 2.0

The AIIDE 2018 version. This is a major update that deserves the higher version number. I sequestered myself to prepare for the AIIDE tournament, and implemented major features like squad unit clustering and defiler play. I also made many other improvements (change list) and fixes.

In adding new code I also added new bugs. The net result is that 2.0 plays much more strongly versus protoss, but less well versus zerg due to micro bugs. For AIIDE I tested Steamhammer only playing zerg. Terran and protoss play weakly in this version.

Steamhammer 1.4.7

Fixes the crashing bug. No other significant changes.

Steamhammer 1.4.6

Almost the same as the CIG version, but with minor updates so that terran and protoss play better. This version still has the crashing bug, so don’t use it!

Steamhammer 1.4.5

The CIG 2018 tournament version, tested with zerg only since Steamhammer was set to play zerg in the tournament. I made numerous smaller changes to improve play, with a large cumulative effect. See the change list and the download announcement.

This version also suffers from a serious crashing bug that eluded what I thought was thorough testing given my short time window. Whether the crash occurs depends on the opponent’s play and probably on details of the computational environment, and I missed it. It caused Steamhammer to perform poorly in CIG, though other tournament problems contributed.

Steamhammer 1.4.4

A bug fix release, with about 5 bug fixes and a few other minor changes. See the change list.

Steamhammer 1.4.3

Created for the AIST S1 competition. See the detailed change list. For maps other than those used in AIST, there are few visible changes in play.

On SSCAIT, I cleared Steamhammer’s saved learning data after uploading this version, so it had to learn about its opponents from scratch. That is reflected in a lower winning rate for this version and the following one, and for Randomhammer (which has to learn three times as much since it plays three races) up through version 1.4.5.

Steamhammer 1.4.2

The headline feature is that the opponent model can choose openings which have been more successful against this opponent. The opponent model from version 1.4 has the ability to predict the opponent's opening plan (based on a single game, if that is all there is) and choose a counter-strategy for the next game. This version adds an ability, more like the opening learning of other bots, to slowly recognize which counters win more often, and to choose good strategies when the opponent's plan cannot be predicted.

There are also improvements to macro for all races (but especially terran and protoss), better control of terran tanks, and many other fixes and changes. See the change list.

Steamhammer 1.4.1

A fixup release. Version 1.4.1 includes important bug fixes and improvements, but no important features. Key fixes are a rare crashing bug, a workaround for a building construction bug that causes protoss to overstep the time limit in longer games, and a zerg strategy bug that suppressed tech switches in the middle game. See the change list for details.

Steamhammer 1.4

The major new feature of 1.4 is an opponent model which learns how different opponents play so that it can adapt to defeat them. See the opponent model in Steamhammer 1.4 for a description of how it works, which is quite different from how most bots learn about their opponents (those that do it at all).

There are many, many bug fixes and improvements to strategy, tactics, and unit control since the previous release version. See the change list.

Steamhammer 1.4a3, the last test version before the 1.4 release, played in the SSCAIT 2017 tournament and finished #6 out of 78 entrants in the round robin phase. The release version 1.4 scored about 2:1 against 1.4a3 in a test match where both played with random race.

unreleased versions 1.3.1, 1.3.2, 1.3.3

Version 1.3.1 played in the AIIDE 2017 tournament, and source is available from there. It finished #10 out of 28 entrants, with a 64% win rate. Version 1.3.2 ran on SSCAIT for only 2 days. Version 1.3.3 ran from 10 September to 12 December 2017, before being replaced by 1.4 test versions.

Steamhammer 1.3

This version adds support for morphed zerg units: Lurkers, guardians, and devourers. It also includes many, many bug fixes and play improvements. For full details, you can chase through change lists for several test versions that were not released. Terran in particular plays more strongly, though terran remains Steamhammer’s weakest race.

Steamhammer 1.2.3

The main purposes of this release are to add skills for terran, more special units for protoss, and improved tactics and micro abilities for all races. See the long change list. A highlight is limited support for drop by terran and protoss.

The new skills and units improve play. However, the tactical and micro changes are not well tuned yet and may harm play; it will take time to tell. The changes remove limitations; they will be valuable in the long run but also add room to make more mistakes.

Steamhammer 1.2.2

Bug fix release. All races play more strongly because the bugs caused serious mistakes.

On 9 April 2017, Steamhammer 1.2.2 briefly reached #1 on the SSCAIT ranking. The #2 and #3 bots at the time, Krasi0 and Iron, both usually defeat Steamhammer head-to-head, but Steamhammer hit a run of wins and pulled ahead of them by defeating lower-ranked entrants more consistently.

After that, 1.2.2 fell in the rankings as other bots improved, causing its elo and winning percentage to fall. Nevertheless, this version is plainly stronger than 1.2 and earlier versions.

Playing random as Randomhammer, 1.2.2 became the strongest of the 4 random bots on SSCAIT. It pulled modestly ahead of its parent UAlbertaBot which plays only rush openings. Randomhammer plays more fun and varied games than UAlbertaBot.

Steamhammer 1.2.1

Version 1.2.1 (see the full change list) fixes many bugs and adds features, especially basic terran skills.

Update: Due to new bugs, 1.2.1 plays more weakly than version 1.2. The zerg elo fell by about 100 points, a large drop.

Steamhammer 1.2

Version 1.2 restores tested support for playing as every race, including random. On SSCAIT it plays zerg under the Steamhammer name, and random as Randomhammer. Earlier versions could also play as any race, but I did not test terran or protoss and a few bugs crept in.

Playing as random continues a theme: Steamhammer’s play continues to become more varied and interesting.

Steamhammer 1.1.1

Version 1.1.1 fixes one serious bug in 1.1 and has a few other minor tweaks. Steamhammer 1.1.1 became the #3 bot on SSCAIT by elo rating, behind Iron and Krasi0 and ahead of 55 other entries.

Steamhammer 1.1

Steamhammer 1.1. has a serious bug that can cause it to use up all its drones creating creep colonies. Go with version 1.1.1. Because of the bug and its fix, I don’t see any point in distributing version 1.1 source.

Version 1.1 includes a zerg strategy boss that chooses a current unit mix to produce and sets a tech goal to work toward: “I’m producing hydra-ling now and teching toward mutalisks.” The boss knows how to adapt to the situation, so Steamhammer’s play is much more varied and interesting.

It has greater ability to survive setbacks and keep fighting. It includes tactical and micro improvements. It knows new openings to suit its new skills. The configuration file allows repeats, like “4 x drone” to produce 4 drones, which makes build orders easier to work with. See the blog post for more details.

Steamhammer 1.0

This version plays openings chosen at random from an opening book. It chooses from among 8 ZvT openings, 6 ZvP openings, 7 ZvZ openings, and 3 ZvRandom openings. Some of the openings are similar to each other, though, so it may seem like fewer when you play against it—they vary in econ level but choose among only 3 tech paths, zerglings, hydras, or mutalisks. The random openings are more fun in play, bring about a wider variety of situations so I can understand how the bot is doing, and confuse the opening learning employed by some other bots.

It includes an initial stab at a new strategy boss which improves macro and can cope with a limited range of common emergencies and contingencies. That is what earns it a 1.0 version number.

It sends out an overlord with each attacking squad, giving it a better overview of the battlefield and the ability to fight cloaked units. There are a bunch of bug fixes and improvements in specific behaviors, in tactics, and in targeting. Overall, compared to the previous version, Steamhammer 1.0 has more varied play, much superior macro, modestly improved combat skills, and better ability to survive setbacks. It still has a long way to go, though!

Steamhammer 0.2

Here are the primary openings that Steamhammer 0.2 plays. It does vary in specific cases.

In the round robin phase of the SSCAIT 2016 tournament, Steamhammer 0.2 tied for places 16-17 out of 45 entrants. To decide which would move on to the final round of 16, it played a best-of-3 match against Zia, the other zerg bot in the tie. Steamhammer won the tiebreaker narrowly 2-1. In the round of 16, Steamhammer was eliminated when it lost against LetaBot, the #1 finisher of the round robin phase.

Steamhammer 0.1

The first version of Steamhammer scored around 50% playing at SSCAIT. Development work started on 3 December... or thereabouts, so bringing up the new bot was quite quick. I’m pleased with how well it performed on so little development time.

Jay Scott <>
last updated 16 February 2024