archive by month
Skip to content

what major feature should be next?

After map analysis in the upcoming Steamhammer 2.2, what major feature should I work on next? I haven’t decided. I need to make progress on all fronts, but the largest features should be done one at a time so that they don’t step on each others’ toes. My hope is to have a powerful major feature ready in time for AIIDE 2019 in the fall, a version that I can call Steamhammer 3. As always, I’ll also do many minor features and fixes and stuff. Before I start in, I expect at least a Steamhammer 2.2.1 or 2.3 version with more map analysis features, such as support for finding paths through nydus canals, or at least better static defense placement.

1. Strategy adaptation. This has a lot of parts, and calls for adding judgment skills that don’t exist yet. As phase 1, I would create abstract openings in a general format, and allow the current concrete opening lines (which specify an exact build order) as implementations of the abstract openings. If no concrete opening is known for a given abstract opening, or if the situation changes and the intended opening has to be adapted or abandoned, Steamhammer will have to make up a new concrete build order for the situation. As phase 2, I’ll have Steamhammer collect data on what works. For making the initial opening choice (and for later decisions), I’ll drop the current hand-coded probabilities and rely on the data, so that Steamhammer’s choices will be empirically grounded. At this point, Steamhammer will have far more flexible reactions during the opening builds. As phase 3, I’ll extend the abstract openings to choices of abstract strategy over the whole game. At this point, instead of following hand-written opening lines or hand-coded rules, Steamhammer will weigh decisions: I see the cannons. I can bust them with units, or fly around them, or take the opportunity to grow my economy. Which is better this time, hydras or mutas or drones? Steamhammer currently knows openings for these 3 possibilities, but if it is following its strategy rules, the rules always say to make drones.

2. Operations boss. I want to dump CombatComander and replace its functions with OpsBoss, which currently exists mainly as a stub. The combat commander has a largely fixed set of squads, and its main job is to assign units and give orders to each squad. The ops boss will have goals and plans to achieve the goals. It will make up squads more dynamically, and assigning units will be the tail of its work. The ops boss will be able to carry out multi-step plans like taking island bases (transport a worker, mine out the blocking mineral patch, take the base, transfer workers, add defenses, return workers when the base is mined out) or complex drops, and in general will do more varied and interesting stuff.

3. Squad structure—effectively, the tactics boss. I think the Squad class needs to be completely rewritten; it is not powerful enough to represent all the behaviors that a squad needs. See awkward points and design ideas. As part of this, I would implement formations including large-scale surrounds and some level of support for different kinds of unit coordination: Vultures screen the tanks, dragoons leave a gap for the reaver to shoot through, flying detectors and arbiters maneuver to do their jobs better, etc.

what to do?

Micro still needs tons of work, but I think I can treat micro improvements as a sequence of minor features that I can tackle one at a time. Building and unit placement is important. Another vital subsystem that needs rework is production. All aspects need to be moved under the production goal system, which will improve macro for all races and let me dump BOSS for terran and protoss—and also ties in with strategy adaptation. It’s a necessary change, but ideas 1, 2, and 3 above are also necessary and seem more likely to win tournaments this year.

To me, strategy adaptation and the ops boss are the most tempting. Both make play more fun and interesting, and potentially much stronger. Strategy adaptation would stick to my original strategy-first development plan. From a development efficiency point of view, it is logical to work on squad structure before the ops boss, or at the same time because they interact and their needs are interrelated. But if I work on them together, I might not finish them this year. It’s possible that I could decide to do selected parts of more than one idea.

What do you think? One of these, or something else entirely?

Trackbacks

No Trackbacks

Comments

Jay Scott on :

Data point: The majority of Steamhammer’s losses in SSCAIT this year have been due to poor strategy decisions early in the game. The command jam bug appears to cause few losses. Only losses against the top finishers were caused by deficiencies in other skills.

Joseph Huang on :

Threat aware pathfinding/building placement.

Antiga/Iruian on :

Some ideas: 1)AIST prep (maps etc.) 2)4.3 BWAPI upgrade (eventually). 3)Real pathing for air units based on killabots model (also done by a few other bots now). Should allow stacked mutas, wraiths, corsairs etc. 4)Getting some of the reactive / learning stuff in SH Z into T and P. 5)A pass at updating the T SH builds (they need help) 6)Consider moving the settings for strategy adaptation into the config file for easy changes / tuning

Marian on :

Ambitious goals - I like it!

Tully Elliston on :

I think SH is overdue some work on the tactical level - last year was spent working chiefly on strategy level. It's certainly paid off, but SH has probably got the worst tactical control of the top bots ATM. Compare to Locutus, a SH fork that uses armies decisively and micros to get value from zealots.

I think if you neglect that side of things for a second year you might lose standing, as poor tactics make every build - but especially rushes and timing pushes - weaker in every way. SH might tend increasingly towards more economic/macro builds because it can't seal the deal with the early advantage in units from aggressive builds

Dilyan on :

Oh yeah totally what I wanted to say

Dilyan on :

Once voting is enabled I will have better view, but in my general opinion, simple done good is better than complex one, so I would work trying to improve small parts that one by one o leads to major outcome. For example 3h hydra bust on microwave destroys locutus natural and its winning whole game but then book is finished and the bot decides to back off, drones up, sunken up make new hatch and then superior makro or locutus and micro wins.

tolmar on :

In the long run, extending the ops boss's decisions all the way to decisions about what to build seems like it has more potential than extending opening strategy selection all the way to the mid game and beyond. Taking for granted that you can say "I want swarmed lurkers here so first I need to get my lurkers and defilers nearby and feed the defilers," it doesn't seem too outlandish to then say "I need to build lurkers before I can do that." Some number of layers of that and you don't need a build order anymore. You'll probably still need the opening portion because it's pre optimised, but on the fly adaptions don't have that advantage.

Dan on :

I disagree with almost everyone here.

For a goal of "win more games in 2019" -- I think the biggest need by far is better macro decisions. There's no need for fancy new skills.

When I start preparation for tournaments, the first thing I do is grab a bunch of replays of lost games and take notes on why I lost each game.

I pulled up some replays off BASIL. My notes:

http://www.openbw.com/replay-viewer/?rep=http://basilicum.bytekeeper.org/bots/Andrew%20Smith/Andrew%20Smith%20vs%20Steamhammer%20La%20Mancha1.1%20CTR_7FD3C1CA.rep is the first replay I looked at for an example:
* Taking a second Extractor that's not needed
* Getting a Hydralisk Den + upgrades but no Hydralisks
* Getting an Evolution Chamber but no upgrades
* React to Corsair with a Spore Colony instead of Hydralisks
* Seeing a Protoss expansion without taking a third base
* Starting a Queen's Next on two bases and 21 workers
* Starting an Ultralisk Cavern and Defiler Mound, but then building Mutalisks and a Greater Spire

The execution and skills otherwise were totally fine.

http://www.openbw.com/replay-viewer/?rep=http://basilicum.bytekeeper.org/bots/PurpleWave/PurpleWave%20vs%20Steamhammer%20Circuit%20Breaker%20CTR_91E7E716.rep

* Floating 700 minerals at 3:48
* Floating 1000 minerals at 4:30
* Floating 1600 minerals at 6:01

http://www.openbw.com/replay-viewer/?rep=http://basilicum.bytekeeper.org/bots/McRave/McRave%20vs%20Steamhammer%20Empire%20of%20the%20Sun%20CTR_6CEDF38B.rep

* Gas stealing a Protoss that opened 2-Gate
* Resuming gas mining at a point when minerals are badly needed
* Failure to keep Protoss at home with Speedling pressure
* Fighting with only half your Zerglings
* Teching to Hydralisks on 9 Drones

http://www.openbw.com/replay-viewer/?rep=http://basilicum.bytekeeper.org/bots/PurpleWavelet/PurpleWavelet%20vs%20Steamhammer%20Circuit%20Breaker%20CTR_5D2DDD93.rep

* Getting only one Sunken Colony against an opponent opening 9-9 Zealot

http://www.openbw.com/replay-viewer/?rep=http://basilicum.bytekeeper.org/bots/Simon%20Prins/Simon%20Prins%20vs%20Steamhammer%20Heartbreak%20Ridge%20CTR_F9A1F808.rep

* Opening one Hatch Lurker but delaying the Hydralisk Den (it starts as the Lair finishes)
* Losing Lurkers against the Bunker
* Opening one Hatch Lurker and then building three Sunkens in the main (in the case of the third Sunken, building it there despite having creep at the natural)
* Building Overlord Speed, a wave of Drones, and a Spire as the enemy push approaches

The list is almost entirely macro decisions.

MicroDK on :

I would say Strategy Adaption and all what Dan said. ;)

Tully Elliston on :

Many bots win by executing a few builds well. Correct production decisions allow a bot to (age of empires 2 metaphor) bring spearmen to a cavalry fight; even with worse play, defensively spearmen will beat cavalry efficiently. In StarCraft terms, that means the right counterplay & production decisions.

That doesn't mean that the bot with then do a good job of leveraging the spearmen into a win. Watching SH try to fight siege tanks and losing cost for cost 10-20x what it kills is surely a sign of diminishing returns on macro.

MicroDK on :

Another suggestion: Threat aware pathfinding...

Tully Elliston on :

Just seems like the next logical step for many bots - now that opening learning is making rock-paper-scissors strategy counter-pick increasingly difficult - is to improve their tactics & skills so that their armies are more effective instead.

Mass Goon and Siege tanks (any enemy composition that requires surround and/or decisive response really) are massively effective against SH ground armies at the moment, and that is only going to worsen a year down the line.

Dan on :

The correct answer to mass Dragoon for Zerg is usually "more stuff"

Jay Scott on :

You also have to use the stuff well. Steamhammer is weak against all ranged ground units, certainly in cases where the enemy’s range is greater. It loses too much in zerglings versus marines as well as hydras versus dragoons. Only once the tactics are sound do the strategy generalizations become valid.

Dan on :

Funny thing, especially in bot land, is that having fewer units makes your existing units worse at fighting. When both sides tend to make slight systematic errors in combat decisions, the side with fewer units loses them more rapidly as each erroneous engagement hurts them more than the enemy.

This is part of what makes Iron bot tick. It's aggressive with its units and tends to lose them, but makes a LOT of them so if both sides are trading with equal systematic error, Iron comes out ahead.

Related, but not in support of my earlier point: Combat simulators -- except where modified to account for it -- also systematically underestimate armies that can kite, which by default leads opponents to systematically accept apparently 50/50 that are slightly less than fair, causing army losses that leave that player in the position of just barely reaching 50/50 fights again until they lose. A very small amount of thresholding and hysteresis can reduce the impact of this (even without considering kiting in the simulation), but you do still need enough units in the first place.

Tully Elliston on :

> Only once the tactics are sound do the strategy generalizations become valid.

That's the point I was grasping for :)

Zerg tactical strength is in melee DPS, speed, numbers.

Without surrounds, interception, and large surface area of army Zerg fails to utilize any of these.

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.