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.
Comments
Antiga / Iruian on :
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 :