archive by month
Skip to content

new configuration features coming in Steamhammer

For the upcoming Steamhammer version, I’ve added a set of configuration features that make the strategy mixes more expressive. A strategy mix is a set of openings with numeric weights, which Steamhammer chooses among randomly according to the weights.

1. In a strategy mix, you can specify different weights depending on the map size—actually the number of starting positions, from 2 to 8. A weight given as “Weight” is a default weight that applies to all map sizes. A weight given with a number, like “Weight2”, is specific to that map size and overrides the default weight. This line says that the 9PoolSpeed opening should be played more often on 2-player maps:

    { "Weight" : 5, "Strategy" : "9PoolSpeed", "Weight2" : 15 },

MicroDK wanted this feature, and now it is done.

2. You can use strategy mixes in the EnemySpecificStrategy section. In the current version, you can only specify fixed openings against specific opponents. The syntax is slightly different, to make it possible to play random: Instead of one list headed “StrategyMix”, you can write up to three lists headed “Terran”, “Protoss”, and “Zerg” for the race you end up as.

3. I added a new subsection StrategyCombos which defines strategy mixes that you can refer to by name. For example, Steamhammer knows the names of a bunch of zerg rushbots, and will follow the same strategy mix against all of them. So in the EnemySpecificStrategy section, it lists each one and tells it to follow the AntiRush strategy mix, which gives 6 alternate zerg openings, plus a protoss and a terran opening to defeat 4 pool and 5 pool.

A strategy combo can be given anywhere that you can give a strategy name, including recursively in another strategy mix. (Suggestion: Do not make an infinite loop.) That way you can build strategy mixes piece by piece. Steamhammer does this for its 4 and 5 pool openings. It knows 3 variants, and it is tedious to write them all into each matchup’s strategy mix, so they are pulled out into a separate FastPool strategy mix in the StrategyCombos section:

    "FastPool" : {
        "Zerg" : [
            { "Weight" :  0, "Strategy" : "4PoolHard", "Weight2" :  5 },
            { "Weight" :  0, "Strategy" : "4PoolSoft", "Weight2" : 15 },
            { "Weight" : 80, "Strategy" : "5Pool" }
        ]
    },

Nested strategy mixes are resolved one at a time. If the outer strategy mix says to play FastPool 5% of the time, then that’s what happens (it may vary depending on the map size). Then FastPool says “oh, this is a 2-player map, I’ll play 5Pool 80% of the time and the others less often,” or it says “this is a 4-player map, I’ll always play 5Pool.”

an example

I made a strategy mix to try against Krasi0 which happens to use all the features. Maybe it will provide an edge over the default. Here’s how it stands today:

    "krasi0" : {
        "Zerg" : [
           { "Weight" :  3, "Strategy" : "FastPool" },
           { "Weight" : 17, "Strategy" : "9PoolSpeed" },
           { "Weight" : 15, "Strategy" : "ZvT_12Pool" },
           { "Weight" : 20, "Strategy" : "ZvT_2HatchMuta" },
           { "Weight" : 25, "Strategy" : "ZvT_3HatchMuta", "Weight2" : 0 },
           { "Weight" : 20, "Strategy" : "3HatchPoolMuta", "Weight2" : 0 }
        ],
        "Protoss" : [
           { "Weight" : 10, "Strategy" : "1ZealotCore" },
           { "Weight" :  5, "Strategy" : "DTRush" },
           { "Weight" : 25, "Strategy" : "DTDrop" },
           { "Weight" : 10, "Strategy" : "12Nexus" },
           { "Weight" : 50, "Strategy" : "13Nexus" }
        ]
    },

There are zerg and protoss entries. If Randomhammer rolls terran against Krasi0, it will fall back on its default strategy mix.

Krasi0’s favorite thing is to sit back and macro up, so I selected a mix of some fast openings (that stand a chance of busting early, or that may cause trouble if terran should lose and try another build), and some macro openings to try to keep up (including a greedy three hatchery before spawning pool build that Steamhammer doesn’t normally dare to play). I de-emphasized the middle range that seems to me less successful against Krasi0.

Also, the 3 hatchery openings do not happen on 2 player maps. That is because Steamhammer is likely to get a drone stuck behind map blocks, which is a sure loss against a strong opponent. A future version will understand the map blocks, and then I’ll change the weights.

Trackbacks

No Trackbacks

Comments

MicroDK on :

Thank you, thank you, thank you! Now I can avoid something stupid like doing a 3Hatch before pool on a 2 player map. :D

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.