archive by month
Skip to content

Steamhammer 3.2.20 is out

Steamhammer 3.2.20 is uploaded to SSCAIT, source code to follow shortly. It has minor bug fixes and tweaks, nothing earthshaking. I turned on the DrawWorkerInfo debug flag to add fun. Here’s what’s new.

squad targeting

• A squad that is empty or otherwise cannot attack is given a default target. This “amazing” optimization may save a few hundred microseconds of computation per game, though I think it’s less. I made this change after investigating what I suspected was a serious bug that gave squads bad targets. The cause turned out to be a race between squad updating and squad targeting that went wrong a few times per game and affected a squad for only one frame, and only when the squad wasn’t able to take action anyway—the bug actually had no bad effects. This change papers over the bug without addressing the unimportant race condition.

infrastructure

go post worker now works on frame 0. The feature worked when I originally released it, but a change I made to fix a problem for AIIDE (reordering manager calls to prevent double commanding) caused go post worker to fail when issued at the very beginning of the build order. I fixed it by removing the worker job type Default; a worker that has not yet been given a job is now Idle, as it logically should be. I like it when I can fix a bug by cutting out unnecessary parts. The effect of the bug was to break one protoss build, Proxy2Gate, that sends out a worker first thing.

MapGrid::getLeastExplored() no longer accepts a zone argument. It’s not needed since getLeastExploredNear() was added.

construction

The building manager correctly counts the number of workers sent to construct a building. If the first worker dies and it has to send another, the count goes to 2, and so on. It used to often miscount. This is the most important fix here, and solves the zerg macro hatch conversion bug. It should also solve misbehaviors by terran and protoss.

terran

• It was rare but possible for a terran building to be abandoned while incomplete, lost from the building queue so that it was never canceled, permanently wasting resources. Fixed.

• When going bio, get gas and academy slightly earlier.

zerg

• Assign an overlord to look over the next base that Steamhammer intends to take. That will let it spot any spider mines or other obstacles to taking the base. The overlord usually arrives well before any drone is sent. The overlord stays home if the enemy has flying overlord hunters out on the map, though.

• Adjust desired drone counts so that Steamhammer is willing to make more queens. For some reason, Steamhammer was rarely making more than 1 queen. With this change, it often makes 2 when the enemy units and queen research justify it (many tanks means more queens for broodling). It’s configured to make up to 6 queens, so 2 is still low, but the issue is not worth a close look right now.

openings

Over10PoolHydra hydra bust added. This was inspired by a CUBOT build that I saw drive BananaBrain to its knees (CUBOT broke the protoss natural, continued its attack into the main and killed nearly all probes, then lost despite a winning advantage when already queued dragoons popped out of the gates). Steamhammer’s version is entirely different in detail and I think stronger.

Next should be Steamhammer 3.3, finally ported to BWAPI 4.4.0. Tomorrow I’ll start looking at what different bots learned from their experience in AIIDE. Meanwhile, the AIIDE unknown maps competition must be running now, and the results may be out this weekend or thereabouts. I’m eager to see what maps came up this time.

Trackbacks

No Trackbacks

Comments

Antiga / Iruian on :

Just thought you might want to see this :

http://www.openbw.com/replay-viewer/?rep=https://basilicum.bytekeeper.org/bots/MadMixP/MadMixP%20vs%20Steamhammer%20Medusa%202.2_iCCup%20CTR_94FD82CE.rep

Bug on medusa?

Jay Scott on :

No pathfinding! The army wanted to attack the mineral only, the only base it had seen.

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.