archive by month
Skip to content

Steamhammer 1.2 and Randomhammer

Steamhammer 1.2 is out. Headline feature: It plays random (like UAlbertaBot). Steamhammer continues to play as zerg, and Randomhammer is the same code playing random. In its first game, thanks to the voting system, Randomhammer played Steamhammer. Randomhammer rolled protoss, opened 10-12 gate, and won easily.

Randomhammer’s elo is likely to end up lower, since zerg is way more polished. But the protoss is not bad, and it will be a good test. Terran and protoss hit bugs more often than zerg.

The change list is not long.

  • In the configuration file, you specify the target number of workers per mineral patch separately for each race, as a floating point number. I set it to 1.8 for zerg, down from 2.
  • New middle game production code, with longer tech paths than UAlbertaBot.
  • Openings.
    • 4 terran openings and 7 protoss openings, with random choice.
    • Terran and protoss openings use the OpeningGroup feature to share middle game production code.
    • Fixed a bug that prevented “2 x dark templar” from working due to the space character in “dark templar”.
    • Zerg’s 9 pool speed opening is updated to fix a mistake introduced in 1.1.1.
  • Worker defense: Attack stuck as well as non-moving enemies. (An unnoticeable tweak—for now.)
  • Emergency cloaked unit defense: Fixed a bug that caused the queue to explode.
  • Terran resumes construction after a building SCV is lost. (UAlbertaBot leaves the incomplete building there forever.)
  • Small updates to the zerg strategy boss.
    • Fixed a potential crashing bug.
    • Fixed a bug that could explode the queue when there were fewer than 3 drones.
    • Fixed a bug that could cause double ultralisk caverns.
    • Minor adjustments to the heuristics.

It was not hard to get protoss to play a decent game, but terran is tough. In my tests, Steamhammer 1.2 terran scores much worse than zerg or protoss. In a random-on-random test with a development version versus UAlbertaBot, Steamhammer protoss scored 8-1 and terran scored 1-7 (there were no mirror matchups). Another example: Against Stone, Steamhammer protoss survived on the first try. Terran did not, because Stone gangs up on building SCVs. Resuming buildings which lose their building SCVs was a necessary skill to give Steamhammer terran any chance at all; it can survive Stone occasionally. Terrans that beat Stone reliably have 2 other skills that I did not implement, replacing the building SCV when it gets hurt and pulling SCVs to drive the attackers off.

UAlbertaBot’s building placer started to show problems in longer games. UAlbertaBot plays rushes and doesn’t see many long games. The building placer wants to build everything in the main; when the main fills up, placement slows down drastically and may overstep the time limit.

I made a forge fast expand opening for protoss, but I have reservations because of other limitations of the building placer. In Steamhammer, you can ask for buildings to be made in the natural, and it works. The building placer knows to leave the nexus spot open. But it doesn’t know the plan, and may place the pylon in a spot without room for a forge, 2 cannons, and a gateway. If there’s no room, the build freezes and the bot will lose. I worked around it for now by inefficiently building extra pylons in the main for the gateway and everything after. Even so, it fails sometimes on SSCAIT maps when it can’t place the forge. Someday I’ll drop the building placer for a building planner, but that will probably be a long time from now.

version 1.2.1

I didn’t get everything done that I wanted, so I’m changing my plans for future versions. 1.2.1 will be mainly a feature version. Here are the features I hope to add, in order of priority.

  1. loading and unloading for terran bunkers
  2. simple measures so zerg can better survive vulture attacks
  3. basic drop skills for terran and protoss
  4. reavers
  5. psionic storm
  6. stim for marines
  7. mixed strategies versus specific opponents when playing random
  8. generalize certain zerg smarts so that terran and protoss can benefit

It seems to me the best tradeoff between getting key skills and getting finished. I’m leaving out a bunch of other basic skills: Overlord hunting (needed for wraith and corsair play versus zerg), mine laying, keeping medics close to marines, carriers, picking up dropped units....

There are also critical problems I want to fix. Others are likely to come up.

  • the bot falsely believes that mining SCVs block the comsat from being added
  • aimless play when the army gets distracted by units all around

version 1.2.2

Then the following version, 1.2.2, becomes the cleanup bugfix version. There are 2 bugs that pass invalid parameters to Micro::SmartMove(), at least 3 bugs that cause expansions to fail to be made, and 2 bugs that cause workers to go idle unnecessarily. I hope to stomp at least 5 of those 7, plus of course anything that turns up from playing random on the server.

version 1.3

Version 1.3 will be my start on mutalisk skills.

Trackbacks

No Trackbacks

Comments

krasi0 on :

"The change list is not long." - I'd say that is a very long list of features and bugfixes for such a short period of time (was it just two weeks since the last update?). Which points me to the next list of extremely *serious* features planned for a still minor version upgrade (1.2.1). I can only admire your tempo and productivity! I am sure those who have built on top of SH now have a reason to party. Good job! :)

"It was not hard to get protoss to play a decent game, but terran is tough." I hope that Xilmi and others who believe than authors of Terran bots have it easy because Terran is OP, reconsider. It may look easy when you see a resulting bot like Iron or Leta play on the SSCAIT stream, but the reality is that it's a loooong a bumpy road to get to that level of play. You only realize this during the first few weeks of working on a Terran bot though ;)

Jay Scott on :

For future features I was careful to use the word “hope”. I expect that the lower priority ones will be pushed off by new needs or new ideas.

MicroDK on :

Do you plan to do Overlord drops?

Jay Scott on :

Not yet! Well, I may play around with it, so anything’s possible. There are 2 complications. The small one is that the bot doesn’t realize that a unit can be both a transport and a detector at the same time. The bigger one is that BWAPI 4.1.2 has a bug where you can’t research lair upgrades, overlord drop and speed, in a hive. So I would have to make the strategy boss either skip the fast hive, or get a second lair. That bug seriously messes up zerg strategy.

MicroDk on :

You could put transport units (Overlords) into their own squads. The BWAPI bug is serious though. You could start Overlord drop as soon you get a lair if we want to use a drop strategy. But yes that seriously hurt the zerg strategy.

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.