Banner credit: sagi
I'm back with another one of these, TL!
What are the exact reasons that cause units in SC2 to behave in an inconsistent manner? That's the question I set out to answer as I began learning how to use the SC2 Galaxy editor about a month ago.
After fiddling around for a while, I eventually came across and identified two major engine bugs that impose restrictions on unit movement in SC2. My video covers those bugs as well as the various editor variables I think would benefit from changes.
I want to thank Decemberscalm from the Starbow Mod team for teaching me how to use the editor and answering my many questions about it.
1) Separation radius (bug)
(Separation) radius is a variable in the editor that controls the amount of space a unit occupies, be it on the ground or in the air. Whenever two units' seperation radii overlap, they will be pushed apart by the SC2 engine's mechanic for separating units.
The way this separation mechanic was coded is the main reason we don't have moving shot in starcraft II. The SC2 engine prioritizes spreading units apart before allowing them to glide (and glide is essential to fluid air unit micro). The current implementation of the separation mechanic forces units' whose seperation radii overlap to dead stop when ordered to attack. The code that tells them to glide for a distance is interrupted by the code that tells them to spread out -- this happens whenever an attack command is issued.
2) Damage Point
Damage point is sometimes also known as a "frontswing". It functions as a delay between when an attack initiates and when the attack is actually executed and the damage is dealt. Damage point essentially allows for a pre-firing-animation to take place (the "frontswing" part). This variable makes sense to use for most ground based units.
In SC2, all air units except the mutalisk have been "blessed" with a blanket damage point value of 0.167 (about 120 ms delay). In Brood War air units generally did not have any damage point delay (the devourer being the only exception I think).
There does not seem to be any particular logic behind why SC2 employs a blanket damage point value on all air units (with the exception of the mutalisk). The simplest and most likely explanation is that 0.167 is the default value and that nobody at Blizzard bothered to question whether this value was appropriate. I quite frankly see no reason as to why basic air fighters with standard projectile attacks should be equipped with anything other than a 0.000 damage point.
3) General Weapons Bug + The Oracle
In Starcraft II, units with instantaneous attacks (tanks, oracles, void rays, reapers etc) are programmed in a way where they are not allowed to overkill targets. The units are placed in some sort of a firing queue and will all fire with micro-delays while waiting for their turn. This is done to avoid "overkilling" a target.
The overkill prevention mechanic was unfortunately not implemented ideally. It interferes with and disrupts flying units' movement when firing. When for example 2 oracles shoot at a low hp SCV that only needs 1 shot to die, only 1 of the oracles will be allowed to fire and keep moving. The other oracle will have its movement interrupted by the queueing code and will just dead stop.
***Blizz dev advisory***: Please observe that these bugs affect all air units. It's not just the oracle! This would probably affect all ground units too if they had the potential to move and shoot.
4) Turret attacks/weapons
A turret is a weapon strapped on top of a unit's body. This weapon can rotate freely and independently of whatever direction the unit's body is facing.
In Brood War turrets were designed in a way where they continually tracked targets even when the controlled unit was ordered to move (imagine the phoenix, but without the ezmode autoattack).
In SC2. Every single unit with a turret attack will have the turret reset when moving (the turret points in the direction of movement, not in the direction of the target). To me, the entire point of strapping a turret that can rotate 360 degrees on top of a unit in the first place is to have this tracking feature! I think the immortal and the tank should have tracking turrets.
(There are exceptions where tracking turrets are required by design. Certain units must be designed with 360 degree turrets. One example is the colossus. Its body and legs face all orientations at the same time, it is an omni-directional unit. So the colossus needs a 360 degree turret by design to have an orientation. Certain units may also need to have ineffective turrets due to balance.)
5) Turn Rate
Turn rate and damage point are the two most critical values for getting a shot off before your air unit runs out of "glide" distance and stops. Because air units in SC2 rotate around their axis to aim, Blizzard should take a second look at turn rates. The basic air fighters of each race should, in my opinion, have higher turn rates.
6) Lateral Acceleration
Lateral Acceleration controls how sharply units turn. When a unit has low lateral acceleration, it turns with a very wide turn radius (imagine the oracle). Lateral acceleration makes a difference in how responsive and fresh air units feel to control. This is not a critical value, but I nonetheless think the most basic agile fighters of each race should have a higher lateral acceleration.
7) Hovering Units
In Brood War there were a class of "hovering" units. Vultures were a hover-bike. Archons levitated. Probes and drones also didn't touch the ground. These units shared the same type of behavior as air units (they glided for a distance after an attack command was issued). But they still retained the pathfinding of ground units. This dynamic allowed for very interesting forms of unit micro and unit designs.
In SC2, all ground units always come to a full stop when attacking. There is a flag in the editor that reads "Slowing". This means that after a unit attacks, it should keep moving, but in a state of deceleration. This flag does not work on ground units. It only works on air units (whenever they're not disrupted by the bugs explained in the previous points).
The only way in which you can currently get a moving shot for ground units is to set the flag "Moving". Which is Blizzard's hot fix for moving shot. "Moving" basically makes the unit automatically fire while in range and under a move command (no attack command has to be issued). "Moving" is currently used on the phoenix.
Are you willing/capable to provide subtitles for my video?
I would especially appreciate someone to translate this from english into korean.
Subtitles can be done in 1 of 2 ways:
1. Send me a PM with your googleaccount (email name) and the language you want to translate the video into. I will then share access with you to my video's subtitling feature on youtube. There is already a working transcript in english with time stamps. You basically only have to do a sentence-by-sentence translation.
2. You download one of the following raw subtitle files: .srt-format or .vtt-format. You then edit them yourself in a subtitle editor program and reupload them for me to download.
My test map can be tried by searching on b.net arcade: "Depth of Micro (Air)".
If you want to try tanks with a tracking turret, search for: "Starbow Unit Tester"
Reddit thread Link: http://www.reddit.com/r/starcraft/comments/1pkq5y/depth_of_micro_a_detailed_critique_on_the/