HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Attack Speed Balancing Issues

09-23-2011, 08:42 AM#1
Av3n
Yes balancing issues...
My question is about what effect does the Animation Backswing and Animation Damage Point fields affect the actual Attack Speed set.

This is because I want to achieve the same Attack Speed for 2 different units who have different values for Animation Backswing and Animation Damage Point.

Thanks in advance.

-Av3n
09-23-2011, 09:39 AM#2
Bribe
Damage Point is when the projectile is launched, Backswing is how long the animation will play.
09-23-2011, 08:41 PM#3
Av3n
So only Backswing has any effect on the attack speed itself then? Assuming that Damage Point is when damage is dealt.

-Av3n
09-23-2011, 10:52 PM#4
BBQ
A unit's attacks per second do not depend on its damage point nor back swing. The only thing that's important, aside from the increased attack speed (IAS), is the unit's attack cooldown (commonly referred to as "base attack time" - BAT).

All values scale with the unit's IAS:
  • Attack cooldown = BAT / (1 + IAS)
  • Damage point = (Damage point) / (1 + IAS)
  • Back swing = (Back swing) / (1 + IAS)
  • Attack frequency = (1 + IAS) / BAT
Now, assume a stationary unit auto-attacking a stationary target, the timeline would be as follows:
t = 0: The unit begins its first attack.
t = DP / (1 + IAS): The first attack occurs. The unit begins playing its back swing animation. The attack cooldown starts.
t = BS / (1 + IAS): The unit finishes its back swing animation.
t = BAT / (1 + IAS): The attack cooldown finishes. The unit begins its second attack. Go back to t = 0 and repeat.
So, the first attack is done at DP / (1 + IAS), the second attack is done at (DP + BAT) / (1 + IAS), and the n-th attack at [DP + (n - 1) * BAT] / (1 + IAS).
So, we can conclude that:
  1. The back swing does absolutely nothing as far as practical purposes are considered. In regular situations, you should pretty much always cancel your back swing (this method is known as animation cancelling) to allow the unit to move or do something else instead of playing its fancy animations.
  2. The only thing that's dependent on the damage point is the time of the first attack in a chain of attacks. Note that a shorter damage point is always welcome, 'cos if it's too long, the target might run out of your attack range + motion buffer range, causing the attacker to miss (if melee) or not release a projectile (if ranged).
  3. Everything else depends on the unit's attack cooldown (a.k.a. BAT).
If the unit's damage point is higher than its BAT (this shouldn't really happen...), then use the damage point instead of BAT in all above formulae.

A small thing to note is the fact that IAS is normally given in percentage, so you should divide it by 100 before applying it to the formulae.

So, the only thing you should do is "balance" the bonuses according to the units' attack cooldowns.

EDIT: Keep in mind that the IAS has a hardcoded cap - the maximum you can get is 400% and the minimum is -80%.
09-24-2011, 03:04 AM#5
Av3n
I'm so glad I understand this easily.
Thanks BBQ and Bribe!

-Av3n