archive by month
Skip to content

vague plans for Steamhammer in AIIDE

Whew, crashes are fixed. Stand by for the source release. For CIG, the question is whether Steamhammer will do poorly, or be disqualified outright.

I plan the next release well in the future, after the AIIDE deadline on 1 October. That is enough time to make major improvements. I haven’t decided what improvements to make, but I have a shortlist. There are the usual suspects, overlord skills, worker skills, decent micro, mineral locking and other mining tricks. I’ve thought of several zerg skills to bring despair to the hearts of Steamhammer’s enemies—bots have big gaps in their knowledge, and maybe I will bring a tractor to drive through the gaps. I may write a capable tactics analyzer. Also I’ve selected the machine learning method I want to use for offline learning of strategy, operations, and tactics, so I may work on that. The shortlist is ironically too long to finish much of, but every item is important so any selection should make a big difference.

For CIG, I made many small changes in a short time. For AIIDE, with more time to prepare, I plan a smaller number of larger changes. I hope to replace major parts, and make enough progress to call it Steamhammer 2.0. We’ll see how it goes!

Trackbacks

No Trackbacks

Comments

Bruce on :

You mentioned mineral locking. Most of what is required is already in Steamhammer (e.g. tracking patch assignments), so it should be a quick one.

This was the entirety of what I did to implement it in Locutus: https://github.com/bmnielsen/Locutus/commit/5d0fd9123a8bea572227d8e83f13a73afe4faebf

jtolmar on :

I'm curious what you have planned in terms of micro, and which bots you think do it particularly well.

Jay Scott on :

I think McRave is particularly strong at micro. For Steamhammer, the first step is to be frame-accurate and account correctly for latency! Then efficient movement, perhaps with a flocking algorithm, so that units don’t get hung up on each other or on obstacles and move smoothly through chokes. Then good targeting so that units shoot more and move around less. Also move zerglings in contact to surround more quickly, kite only when it a win, retreat bunched ground units in slices so they don’t run into each other, predict muta bounces and lurker splash so we do more damage, burrow and unburrow lurkers at sensible times, and a ton of other stuff. Things like forming a concave or moving a hurt unit to the back I classify as tactics.

McRave on :

Frame-accurate is one of the biggest benefits you can have for your mutas and hydras, however I think the biggest benefit overall that you could look into is storm, mine and scarab dodging. Making a storm kill 1 hydra versus 10 hydras is a huge swing, regardless of the HP they survive on.

Jay Scott on :

It’s a good point. For mines specifically, it seems hard to make the choice of reactions: Kill the mine, run through the mine field to clear as many mines as possible, drag the mine into the enemy, run from the mine to reduce damage.

jtolmar on :

Part of that loops back around to a frame-accurate prediction case - you should never try to kill a mine if it'll take you longer to kill than the mine will take to explode.

For the other decisions, ideally only one of your units ever tries to drag the mine. Is there a good way to figure out the mine's target? (Is it something like the top-leftmost unit that entered its radius?)

Jay Scott on :

For zerg, it often makes sense to drag the same mine with a few zerglings. They zerglings might die to other fire before they get anywhere.

Dan on :

The mine's getOrderTarget() reveals where it's headed.

McRave on :

There is a very easy implementation of mine dragging, but I don't want T to know how I do it just yet :P

When I release to open source I'll revisit this section and show in my code how I handle it. Watching 1 zealot drag 6 mines on top of tanks is amusing.

Ankmairdor on :

Mines appear to one of the few units that use (pure) distance to calculate the best target; so the closest viable target at the time of checking for targets will be chosen. Mines check for targets every 9 frames(except after global timer randomization every 150 frames), though BWAPI doesn't show the timer so it's a gamble how long before it notices. Also, it appears that mines only update their move target every 9 frames(easier to monitor until the randomization) and use a linear prediction of the target's movement.

MicroDK on :

I just added storm and nuke dodge to Microwave inspired by Arrak. ;)

MicroDK on :

and scarab dodge as well...

Tully Elliston on :

I think you might get good results from focusing on the skills used to execute the perfect 5 pool - Zergling micro, Zergling tactics, target selection.

When I watch SH apply early pressure, its depressing how often it fails to reap the proper rewards and wastes its Zerglings rapidly switching between attacking and retreating, and failing to focus down targets etc. Early gains have cascading benefits into the late game.

Antiga / Iruian on :

I tend to agree that there is alot to be gained by improving the 4/5 pool to zzk / purpleswarm levels of perfection.

Tully Elliston on :

Not so much the 4/5 pool as just the skills related to fast rushes. Early game is where effective unit usage can cause the biggest swing, as once the numbers increase unit micro and tactics are arguably less important than macro and 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.