archive by month
Skip to content

mutalisk bounce

Mutalisk bounce attacks are complicated.

In lore, the mutalisk attacks with a glaive wurm. A glaive is a sword. BWAPI spells it “glave”, which is a less common alternate spelling. Anyway, the attack does 9 normal damage directly. If an enemy unit is close enough, it bounces and hits the enemy, doing 1/3 as much damage, 3. If a second enemy is close enough, it bounces a second time and does 1/3 as much damage again, 1.

upgrades

If you upgrade mutalisk attack +1, the bounces are upgraded too. The first attack is 9+1=10; the second attack is 10/3 = 3.33 (rounding to 2 digits); the second attack is 10/9 = 1.11. The total gain is 1.44; for +2 upgrade, 2.88; for +3 upgrade, 4.33.

Brood War does track fractional damage behind the scenes, though you can’t see it in the user interface. There is also a hard floor; every attack, even one that is smaller than the target’s armor, does at least 0.5 hp of damage. At least that’s my understanding of how it works.

If you’re under attack by mutalisks, +1 armor applies to all 3 bounces, so it prevents up to 3 points of damage per shot.

For ZvZ air battles, zerg players disagree on whether it is better to get +1 armor or +1 attack for mutalisks. +1 armor is more popular; it costs more (150/150 instead of 100/100) but prevents more damage (3) than +1 attack causes (1.44), and it also protects scourge and overlords. Nevertheless, some strong players prefer to get +1 attack. The best choice can depend on the game situation—for one thing, upgrades don’t use up a larva; for another, scourge have 25 hit points and are vulnerable to bounces.

you don’t have to attack an enemy

It doesn’t matter what the mutalisk attacks, the glaive wurm will bounce to an enemy if one is close enough. You can attack a harmless enemy building, or a neutral building or neutral critter, or your own unit or building. Mutalisks have a short range of only 3 tiles. By bouncing from a safe object, they can do some damage to enemies while keeping at longer range. In the best case, the bounces can hit marines while the mutalisks are out of range of marine fire.

Human players do this when a good opportunity presents itself. I’ve never seen a bot do it.

which way does it bounce?

This TeamLiquid translation from Korean gives 2 rules for how glaive wurms bounce. You can have some foreknowledge of which enemy each bounce will hit.

Rule 1: It bounces to the left if possible; otherwise, it bounces down if possible. If it can’t bounce left or down, it will go another direction. This rule applies no matter what direction the mutalisk attacks from. It means that separated mutalisks which attack the same target at the same time will get the same bounce pattern, which is good for the attacker because it focuses fire. It also means that the defender can arrange units to try to minimize the bounce harm, for example by putting healthier units or units with higher armor on the left of the formation.

Rule 2: If you attack from directly to the left, it bounces the minimum possible distance, hitting the closest enemy. If you attack from directly to the right, it bounces as far as it can. It can make a difference when fighting marines, if the mutalisks are numerous enough that the bounce can kill a marine. In that case, other things being equal, it’s better to attack from the left and kill a close marine that is in range to shoot back, rather than from the right and kill a distant marine that may be idle. You’ll escape taking that much less fire.

These rules aren’t enough to tell exactly which unit the bounces will hit. It’s coded into OpenBW, so there should be people who know....

Trackbacks

No Trackbacks

Comments

Antiga / Iruian on :

At pro level in zvz, almost no one takes weapon over armor. It's almost a 1/3 damage reduction to have one point of armor once the bounces are included.

Sometimes you'll see +1 W vs bio T, and rarely super lategame double upgrade air muta hydra ling vs mech compositions.

I don't really see many air upgrades in zvp until extreme lategame. (post devours / guardians). Sometimes you'll see +1 armor during lair tech if extreme levels of corsair pressure occur (sair reaver etc) is spotted to make the OL / scourge a bit tougher.

Ankmairdor on :

Besides the fact that the game codes mutalisk attacks as bouncing type attacks, which is only safe cause there are no other bouncing attacks. The glave doesn't seem to have much dedicated code. The game simply uses the generic find_unit_noexpand function to select a viable enemy inside a box 193 x 193 pixels centered on the glave sprite when it reaches its target. The function simply does a for loop on a list of units in the area and returns the first unit that matches the given conditions. No expand means it searches only the given area. Thus the directional preference comes from the way the list of units is formed. The game has two search lists containing all units: unit_finder_x and unit_finder_y. Each list stores both sides of the unit for that dimension in ascending order. find_unit_noexpand uses unit_finder_x for its list with the starting point being the left side of the search area and the ending point being the right side. Thus units closer to the left side of the glave bounce area definitely are prefered by the search, but nothing in the search gives a y-axis preference. My assumption is that the Korean tester experienced this due to the order in which the units were updated by the game. While tracking all possible routes for updating these lists for moving units would take a long time, buildings don't move so are only added when initialized. The tester built a grid of pylons from top to bottom AFAIK from the screenshots thus the y-axis bias in his results. Predicting the unit that will be hit is still slightly difficult due to movement prediction, but the unit furthest to the left and still inside the search box, even by a pixel, is the best bet(ties target the last updated, usually the newest unit).

Ankmairdor on :

I'd like to clarify the prediction criteria because as stated it wasn't completely accurate. In this case, the values in the list are the left and right sides of a unit, which are entered separately. The side in the list which is the furthest left inside the search box is checked first. Thus it is possible for a unit to be checked first despite being to the right of another unit, when a unit whose left side is outside the search box has a right side to the right of another unit's left side. A minor issue, but Starcraft has a bit of a bad information problem, which effects bot makers more than players.

Jay Scott on :

Detailed information! Also that’s a very specific special case, with a larger unit overlapping the left edge and a smaller unit, as it were, in its shadow. It comes down to small implementation details.

Ankmairdor on :

The implementation cares only about the sides, other details like the size of the units are irrelevant. A building could be in the shadow of a zerling. Depending on the situation that could be a cheap substitute.

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.