archive by month
Skip to content

the bot 5 Pool revisited

The bot 5 Pool is being updated often, and changing its play very noticeably. I took another look.

The author’s plan, as I see it, is to beat lower-ranked opponents with an opening that is difficult for them to cope with, and higher-ranked opponents with hand-chosen counterbuilds. And, of course, to show off by striking a pose with a disco ball, or that is, by doing it all with variants of 5 pool. It’s kind of a cheesy way to use a cheesy opening, but if it promotes progress then I don’t mind.

The method is to make minimal changes to a Steamhammer fork and code up several variants of 5 pool. Earlier versions of 5 Pool stuck with zerglings, but found themselves too easily hard-countered. Newer versions code in mutalisk openings for some opponents. The play is closely similar to Steamhammer’s, strengths and weaknesses alike, but I am able to spot a few improvements in 5 Pool over its parent.

This version of 5 Pool uses Steamhammer’s random opening choice in ZvT and ZvP, playing 3 different 5 pool variants against each. It plays only one variant versus zerg or random (the first one listed below). So terran and protoss can’t simply survive the opening and call it a win, they have to be able to cope with the variants:

  • 30% - straight zerglings with 4 drones
  • 30% - zerglings with 6 drones (a slightly weaker first hit but a much stronger followup)
  • 40% - zerglings with 6 drones and an early second hatchery (the most natural approach)

Bereaver, Iron, Krasi0, Steamhammer, and Stone get hand-chosen counterbuilds. Bereaver and Stone will suffer, since they have weaknesses and aren’t being updated. Iron faces exploitation of its predictability: Terran overcommits to defense against the fast zerglings and has lost games where zerg instead macros up and goes mutalisks. But Iron improves at an incredible rate and, I expect, will soon tighten up its defense decisions. 5 Pool is set to play the same build against Krasi0 as against Iron, and Krasi0 did lose a game to it, but Krasi0 has opening learning so it has a chance to adapt. This version of Steamhammer plays a fixed build against 5 Pool and, like Iron, can be exploited because of the predictability of the strategy boss. Steamhammer hasn’t lost a game to 5 Pool yet (as I write), but I think 5 Pool is getting close to a successful exploit and this version or the next is likely to score wins. Therefore the next Steamhammer version will play random openings against 5 Pool and become difficult to exploit.

5 Pool has set itself a hard task. Its opening is easy for strong bots to counter, so to win it must play better in the followup. Even so, it is scoring some wins against the top bots, forcing them to improve. And that is good.

Update: As I forecast, today’s version of 5 Pool can finally beat Steamhammer. 5 Pool exploits a weakness in the strategy boss, which does not adapt to the enemy’s static defense. It ought to make fewer of the units that the static defense counters and spend more on drones and tech to stay ahead. There is no sustainable plan behind 5 Pool; the author put out new versions for days before success, around 3 times as long as it will take me to improve it. I don’t even need to improve it, because I can prevent any fixed counterbuild from succeeding with random opening choices, since opening with 5 pool puts 5 Pool far behind. Anyway, 5 Pool can take its wins and brag for a while. Stand by for the next Steamhammer version around the end of April. Protoss now supports reavers and carriers, and today I need to test the carrier play some more.

Trackbacks

No Trackbacks

Comments

PurpleWaveJadien on :

With so many folks actively developing on UAB/Steamhammer, there's been some desire to publish and share improvements so authors can build on top of each other's changes instead of reinventing the wheel. Gnuborg took UAB master and applied the successive versions of Steamhammer as diffs, creating a bit of a coarse revision history for Steamhammer: https://github.com/gnuborg/Githammer/tree/Steamhammer -- I have no skin in the game (I can't even easily integrate C++ libraries since I'm writing in Scala) but if a revision history for Steamhammer exists it'd help developers collaborate and understand the codebase better (and understand your contributions better as well). -- I like to cite this commit from Tscmoo as an example of the power of revision history. Without the commit message, it's a mysterious magical random number. With the commit message, it teaches you something new about the Brood War engine: https://github.com/tscmoo/tsc-bwai/blame/master/src/unit_controls.h#L177

Jay Scott on :

I agree completely. The slowdown is that, for me, it’s pure overhead. Well, I’m already resigned to paying more collaboration overhead (or else Krasi0 would already be starting to feel the terror of those mutalisks), and it’s high on my list. I think after the next release, before I get started on the following one, I’ll set up a repo somewhere with the trimmings.

Newbie Zerg on :

Looks like you could learn a thing or two from 5 Pool ;)

http://imgur.com/a/LskKL


After your 0-4 defeat vs krasi0 in:
http://wiki.teamliquid.net/starcraft/SSCAIT_Ladder_Tournament_1

Perhaps early aggressiveness is a good thing?

Jay Scott on :

I mentioned the disco ball, yes?

Newbie Zerg on :

Also sorry, but how come you didn't post or talk about the tournament? You did pretty well and managed to get that 3rd place with very good games vs Devecka in the Bronze match ^^

Perhaps just too busy :)

MicroDK on :

Nice job by Gnuborg. Did he also add Steamhamemr 2.xx versions?
How will this work? Both AILien and bftjoe have improvements. Can people suggest improvements to the repo?

Jay Scott on :

Gnuborg’s version is up to date with the latest Steamhammer release, but retains some minor stuff from UAlbertaBot that has been moved elsewhere in or removed from Steamhammer. Gnuborg also made one bug fix, which I have ported to Steamhammer for the next version (with credit). I expect that anyone with a github account could make a pull request, which is of course not a request at all but an offer to contribute code. Steamhammer’s own repo should go up early next month, according to the current plan.

gnuborg on :

Yea my repo is a bit messy, but it's what I've been using to keep track of changes in SH.
It also contains a fix for that regex bug I mentioned before.
Thanks, for that jaj22!

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.