Diablo® III

Strafe & Rapid Fire tick frequency mechanics

UPDATE (August 10th, 2013): When dual-wiedling hand crossbows, both Strafe and Rapid Fire snapshot the frequency of the weapon you´re about to shoot with.
http://us.battle.net/d3/en/forum/topic/9628392870?page=1#15

Seems like this type of research hasn´t been posted in the DH forums yet. It is based on Whirlwind/Sprint Run like the Wind mechanics and breakpoints posted here
http://us.battle.net/d3/en/forum/topic/6037344497

While testing those Barb skills, I figured out formulas that are applicable on all skills that work similar to WW/RTLW. More exactly, it´s either channeling skills that scale with aps like Whirlwind or skills that have a fixed duration but also scale with aps like Sprint RLTW (produce more hits within their duration).

Both Strafe and Rapid fire are channeling skills like Whirlwind that scale with aps. The only difference is the base number of ticks per second, which is 3 ticks for WW and Rapid Fire Bombardment, 4 ticks for Strafe and 6 ticks for the remaining Rapid Fire runes.

Here´s a short list of terms I use:
1. "tick" - general term for hit/shot/throw that means a moment (time) when the game applies damage values, resource reduction/gain and on hit/crit effects; note that damage and resource ticks happen separately for certain skills, but in case of Strafe an Rapid Fire, they happen simultaneously
2. "frame" - 1/60 of a second; the game runs at 60 frames per second (clicking ctrl+r while playing displays your framerate)
3. "frame length" - the number of frames between two ticks
4. "tick frequency" - average number of throws/shots per second while channeling
5. "aps" - exact, non-rounded total attacks per second value of each weapon (separately); note that the value in your inventory details is a rounded value, so whenever you´re close to a breakpoint, I recommend calculating the exact value to be safe
6. "IAS" - increased attack speed, you may have IAS on a weapon itself or IAS (ASI) on gear

Formula for calculating total weapon aps = ((base weapon aps * weapon IAS) + (attacks per second from legendaries and enchantress)) * (gear IAS + skill IAS + dual wield IAS)

Example: Calamity (1.60 base weapon aps), 11% weapon IAS, alive Enchantress (+0.03 aps), Dead Man´s Legacy (20%), Natalya´s Reflection (9%)
total aps = ((1.60 * 1.11) + 0.03) * (1 + 0.2 + 0.09) = 2.32794 aps

___________________________________
STRAFE
____________________________________
-> Emberstrafe, Drifting Shadow, Stinging Steel and Rocket Storm deal 1/4 of tooltip weapon damage per tick with their base attack (39% in 1.0.7) - in case the tooltip value is increased in a future patch and I don´t update this topic, use 1/4 of tooltip damage
-> the initial tick occurs on frame 6 after activating the skill and subsequent ticks are calculated as follows

tick frame length = floor (15 / aps)
ticks per second = (60 / frame length)
resource cost = 1/4 of displayed hatred cost per tick


Emberstrafe, Drifting Shadow, Stinging Steel and Rocket Storm
attacks per second - frame length - tick frequency
1.07143-1.15385 aps - 13 frames - 4.62 ticks per second
1.15386-1.25000 aps - 12 frames - 5.00 ticks per second
1.25001-1.36364 aps - 11 frames - 5.45 ticks per second
1.36365-1.50000 aps - 10 frames - 6.00 ticks per second
1.50001-1.66666 aps - 9 frames - 6.67 ticks per second
1.66667-1.87500 aps - 8 frames - 7.50 ticks per second
1.87501-2.14286 aps - 7 frames - 8.57 ticks per second
2.14287-2.50000 aps - 6 frames - 10.0 ticks per second
2.50001-3.00000 aps - 5 frames - 12.0 ticks per second
3.00001-3.75000 aps - 4 frames - 15.0 ticks per second

Rocket Storm Rockets
-> each rocket deals 30% weapon damage per tick
-> rocket frame length = floor (30 / aps)

Demolition
-> demolition deals 1.20 times 1/2 of tooltip damage so 156%/2 * 1.20 = 93.6% weapon damage per tick.
-> the initial tick occurs on frame 6 after activating the skill and subsequent ticks are calculated as follows

tick frame length = floor (30 / aps)
ticks per second = (60 / frame length)
cost = 1/2 of displayed hatred cost per tick

Demolition
attacks per second - frame length - tick frequency
1.07143-1.11111 aps - 27 frames - 2.22 ticks per second
1.11112-1.15384 aps - 26 frames - 2.31 ticks per second
1.15385-1.20000 aps - 25 frames - 2.40 ticks per second
1.20001-1.25000 aps - 24 frames - 2.50 ticks per second
1.25001-1.30434 aps - 23 frames - 2.61 ticks per second
1.30435-1.36363 aps - 22 frames - 2.73 ticks per second
1.36364-1.42857 aps - 21 frames - 2.86 ticks per second
1.42858-1.50000 aps - 20 frames - 3.00 ticks per second
1.50001-1.57894 aps - 19 frames - 3.16 ticks per second
1.57895-1.66666 aps - 18 frames - 3.33 ticks per second
1.66667-1.76470 aps - 17 frames - 3.53 ticks per second
1.76471-1.87500 aps - 16 frames - 3.75 ticks per second
1.87501-2.00000 aps - 15 frames - 4.00 ticks per second
2.00001-2.14285 aps - 14 frames - 4.29 ticks per second
2.14286-2.30769 aps - 13 frames - 4.62 ticks per second
2.30770-2.50000 aps - 12 frames - 5.00 ticks per second
2.50001-2.72727 aps - 11 frames - 5.45 ticks per second
2.72728-3.00000 aps - 10 frames - 6.00 ticks per second
3.00001-3.33333 aps - 9 frames - 6.67 ticks per second
3.33334-3.75000 aps - 8 frames - 7.50 ticks per second
3.75001-4.28571 aps - 7 frames - 8.57 ticks per second

____________________________________
RAPID FIRE
____________________________________
-> Rapid Firedeals 1/6 of tooltip damage per tick (73% in v1.0.8); if the tooltip damage changes, just use 1/6 of that value
-> the initial hatred cost occurs on frame 5 after activating the skills
-> the first damage tick occurs on frame 6, the subsequent damage ticks use the following formulas

tick frame length = floor (10 / aps)
ticks per second = (60 / frame length)
resource cost = 1/6 of the displayed channeling hatred cost per tick

Withering Fire, Web Shot, Fire Support and High Velocity
attacks per second - frame length - tick frequency
1.10001-1.11111 aps - 9 frames - 6.67 ticks per second
1.11112-1.25000 aps - 8 frames - 7.50 ticks per second
1.25001-1.42857 aps - 7 frames - 8.57 ticks per second
1.42858-1.66666 aps - 6 frames - 10.0 ticks per second
1.66667-2.00000 aps - 5 frames - 12.0 ticks per second
2.00001-2.50000 aps - 4 frames - 15.0 ticks per second
2.50001-3.33333 aps - 3 frames - 20.0 ticks per second
3.33334-5.00000 aps - 2 frames - 30.0 ticks per second

Bombardment
-> deals 1/3 of tooltip weapon damage per tick (138% in v1.0.8)

tick frame length = floor (20 / aps)
ticks per second = (60 / frame length)
resource cost = 1/3 of the displayed channeling hatred cost per tick

Bombardment
attacks per second - frame length - tick frequency
1.05264-1.11111 aps - 18 frames - 3.33 ticks per second
1.11112-1.17647 aps - 17 frames - 3.53 ticks per second
1.17648-1.25000 aps - 16 frames - 3.75 ticks per second
1.25001-1.33333 aps - 15 frames - 4.00 ticks per second
1.33334-1.42857 aps - 14 frames - 4.29 ticks per second
1.42858-1.53846 aps - 13 frames - 4.62 ticks per second
1.53847-1.66666 aps - 12 frames - 5.00 ticks per second
1.66667-1.81818 aps - 11 frames - 5.45 ticks per second
1.81819-2.00000 aps - 10 frames - 6.00 ticks per second
2.00001-2.22222 aps - 9 frames - 6.67 ticks per second
2.22223-2.50000 aps - 8 frames - 7.50 ticks per second
2.50001-2.85714 aps - 7 frames - 8.57 ticks per second
2.85715-3.33333 aps - 6 frames - 10.0 ticks per second
3.33334-4.00000 aps - 5 frames - 12.0 ticks per second
Edited by Nubtro#2147 on 8/10/2013 4:58 AM PDT
Reply Quote
I was under the impression that since we're in full 3D rendering in real time, these frame cuts were meaningless. Someone cite me info to prove that wrong? Diablo II had to deal with these frame cuts because of the issues with how the game was displayed and how it was calculated per frame. This game is not calculated the same way, therefore I think this post might just be moot. Please someone agree or disagree
Reply Quote
Lol thanks for the input. I record the channeling and then view it frame by frame and this is the result. You can see for yourself.

Try 2.49 aps and 2.51 aps Rapid Fire, how fast you get to 0 hatred with both. Even the tick frequency difference should be visible...
Edited by Nubtro#2147 on 4/13/2013 9:13 AM PDT
Reply Quote
Posts: 2,752
View profile
It's seems like both skills would be much more build defining if we had a more reliable way of replenishing hatred that scaled well with attack speed. But we don't.
Reply Quote
i remember during early beta the tooltip of rapid fire and strafe used to say something like "attack at 400%(strafe)/600%(rapid fire) of normal attack speed for 35%/38% weapon dmg per hit". no idea why they decided to dumb down the tooltip, guess its too hard to alt tab to windows and use the calculator >_>

and if the RF changes stay, at least manticore users should be able to sustain the channel with mfd: mortal enemy, add in bat if needed.
Reply Quote
04/13/2013 08:58 AMPosted by Oscar
I was under the impression that since we're in full 3D rendering in real time, these frame cuts were meaningless. Someone cite me info to prove that wrong? Diablo II had to deal with these frame cuts because of the issues with how the game was displayed and how it was calculated per frame. This game is not calculated the same way, therefore I think this post might just be moot. Please someone agree or disagree

This was also a presumption; I checked some footage a while back and noted there may be visual breaks, but my FRAPS wasn't operating anywhere near 60fps to trust it - more like 15 fps...
http://us.battle.net/d3/en/forum/topic/8196653000

I (and others) must have wanted for them to be gone and ignored the blatant logic that in fact they have to exist. a game MUST operate on a defined routine speed. Defining the routine into 60 FPS means a shot has to land somewhere on that timeline of 60 frames e.g. break points

You start to divide them into x6 APS speed like RF the difference between
2.00 aps = 12 shots per second (60 frames/12) = 5 frames per shot
The next break for 4* frames is (60/4)/6 = 2.5 aps

note D3 Ceilings your returns; i.e you gain the benefit at the first 1%, not the last 1%
. a bit irrelevant though as you are still placed into a bracket where ias will yield nothing until you reach the next return

even though presumably a routine COULD use complete or incomplete rollback alternating (like in D2)
4/5/5/5/5/5 = 2.068 APS
4/5/5/ = 2.142 APS
4/5 = 2.222 APS
4/5/4 = 2.307 APS
4/4/4/4/4/5 = 2.4 APS
etc...to account for some more decimals [that would have been more work for uninterruptable attack sequences.]
STILL breakpoints would have to exist

Lol thanks for the input. I record the channeling and then view it frame by frame and this is the result. You can see for yourself.
can't test for speed over 3.6 aps; but we get the idea


-> Demolition deals 39% * 1.2 = 46.8% weapon damage per tick

interesting; it does seem to do 93.6% per bomb not 93.5%

04/13/2013 12:52 PMPosted by nights
tooltip of rapid fire and strafe used to say something like

rapid fire absolutely said "fire at 6 times normal speed..."

in the case of RF (non bombardment) this is much more pronounced; RF tic rates are going to matter post 08 with such a damage buff
Edited by zoid#1554 on 4/14/2013 2:16 PM PDT
Reply Quote

-> Demolition deals 39% * 1.2 = 46.8% weapon damage per tick

interesting; it does seem to do 93.6% per bomb not 93.5%


Thanks zoid for this. I retested everything and similar to Rapid Fire Bombardment, the last rune of Strafe (Demolition) has a different aps scaling than the rest of the runes, it only ticks half as fast.

Demolition deals 1.20 times 1/2 of tooltip damage so 156%/2 * 1.20 = 93.6% weapon damage per tick.

tick frame length = floor (30 / aps)
ticks per second = (60 / frame length)
cost = 1/2 of displayed hatred cost per tick

1.07143-1.11111 aps - 27 frames - 2.22 ticks per second
1.11112-1.15384 aps - 26 frames - 2.31 ticks per second
1.15385-1.20000 aps - 25 frames - 2.40 ticks per second
1.20001-1.25000 aps - 24 frames - 2.50 ticks per second
1.25001-1.30434 aps - 23 frames - 2.61 ticks per second
1.30435-1.36363 aps - 22 frames - 2.73 ticks per second
1.36364-1.42857 aps - 21 frames - 2.86 ticks per second
1.42858-1.50000 aps - 20 frames - 3.00 ticks per second
1.50001-1.57894 aps - 19 frames - 3.16 ticks per second
1.57895-1.66666 aps - 18 frames - 3.33 ticks per second
1.66667-1.76470 aps - 17 frames - 3.53 ticks per second
1.76471-1.87500 aps - 16 frames - 3.75 ticks per second
1.87501-2.00000 aps - 15 frames - 4.00 ticks per second
2.00001-2.14285 aps - 14 frames - 4.29 ticks per second
2.14286-2.30769 aps - 13 frames - 4.62 ticks per second
2.30770-2.50000 aps - 12 frames - 5.00 ticks per second
2.50001-2.72727 aps - 11 frames - 5.45 ticks per second
2.72728-3.00000 aps - 10 frames - 6.00 ticks per second
3.00001-3.33333 aps - 9 frames - 6.67 ticks per second
3.33334-3.75000 aps - 8 frames - 7.50 ticks per second
3.75001-4.28571 aps - 7 frames - 8.57 ticks per second

Updating the first post with this data. Note that from now on I don´t list breakpoints that are lower than 1.10 aps because both Strafe and Rapid fire only work with Crossbows, Bows and Hand Crossbows and 1.10 aps is the lowest you can get.

Also tested Strafe Rocket Storm Rockets. Each rocket deals 30% weapon damage and their frequency seems to scale with aps too (floor (30 / aps)). Due to the indirect nature of the rockets (flying around), I did not get a steady frame length, for example:

1.573 aps rocket = 23-17-20-21-19-19-17-21-18-21-20-17 = 19.4 avg
1.19 aps rockets = 29-19-36-16-25-31-19-22-32-22-29-24-20-31-20-25 = 25 avg
Edited by Nubtro#2147 on 4/14/2013 4:08 AM PDT
Reply Quote
04/14/2013 04:07 AMPosted by Nubtro
Bows and Hand Crossbows and 1.10 aps is the lowest you can get.


Damaged light crossbow with .92 aps I use for tests says hai2u


Also tested Strafe Rocket Storm Rockets. Each rocket deals 30% weapon damage and their frequency seems to scale with aps too (floor (30 / aps)). Due to the indirect nature of the rockets (flying around), I did not get a steady frame length, for example:

1.573 aps rocket = 23-17-20-21-19-19-17-21-18-21-20-17 = 19.4 avg
1.19 aps rockets = 29-19-36-16-25-31-19-22-32-22-29-24-20-31-20-25 = 25 avg

I notice stutter and figured it for lag

I notice no change in rocket production for "fire support" as it states launch 2 homing rockets per second be 0.92 aps or 2.2 aps they no lie.
That makes use with Ballistics sad since it's proportional e.g. less significant dps with increased APS
Edited by zoid#1554 on 4/14/2013 2:17 PM PDT
Reply Quote
04/13/2013 09:10 AMPosted by Nubtro
Lol thanks for the input. I record the channeling and then view it frame by frame and this is the result. You can see for yourself.

How did you check for ticks exactly? Personally I'd say that the term "tick" does not need to apply to Whirlwind etc. If you are measuring attacks per time you will always get some sort of "tick" (4 APS would be a "tick" of 0.25 seconds then). It just might seem to be a tick with RLTW as you got a fixed duration. Basically any IAS might give you faster attack speed but you would not directly see it:
3 APS and 3.1 APS on a 3 second duration skill would still be 3 attacks, even if the skill would be faster with 3.1 APS.

If you did a frame by frame comparison did you look if the attacks were always within the same frames? So 1.07143-1.11111 aps would have always the same attack frames, while 1.11112-1.15384 aps would tick in faster frames.

I ask because a theory I mine would be that Blizzard might simulate small IAS increases by switching attack speed (e.g. 50 FPA with 1.2 APS and 1 attack with 50 FPA and the following with 49 FPA at 1.21 APS).

If it works with frames (rounding up or down) it just simply would work similar to Diablo 2, just with 60 frames per second instead of 25. Strafe is at 15 FPA at 1 APS while Rapid Fire is at 10 FPA.

If you now just start to divide initial FPA by APS and round down you get pretty much the same results as your test results. This might mean that D3 pretty much uses a mechanic very similar to D2s attack speed mechanic. Main difference would be 60 instead 25 FPA.

The mechanic should be the same for every attack though. So if you have an 60 FPA base attack at around 1.09 to 1.11 APS you should notice a "tick" of 54 FPA. 1.1111... to 1.321 should result in 53 FPA.
Reply Quote
eh semantics: "FPA" has less meaning because the game can run at 1-200 FPS, your graphics card and other things at factor with that. tic is differentiation; graphically irrelevant

we assume graphically we are playing at exactly 60 fps (certainly understood) for non contiguous attacks (rf/strafe) tic really just corresponds to a 'projectile' and the period between them is identical to frames assuming 60fps

as for swirling around with swords that certainly doesn't have a hit vs a swing to differentiate. fpa vs tic either or...

it is more important to express a tic .i.e updates, when talking about things that are smooth like jagged spike damage, bleeds, DoTs and even sCloud - sCloud damage is produced every 40 tic no matter what (1.5 aps) but earns damage from ias identically to dex and +damage. These attacks don't have a visual representation other than the SCT numbers:

tic clarification is simply more precise, so why not..

04/14/2013 01:02 PMPosted by Poekel
(e.g. 50 FPA with 1.2 APS and 1 attack with 50 FPA and the following with 49 FPA at 1.21 APS)
It made sense in D2 ; A complete rollback attack (Zeal, dragon talon etc..) would have a defined Uninterrupted sequence
vs the incomplete rollback attacks (jab)

D3 routine doesn't know how many attacks you are going to produce of RF; If you had oscillating tics 4/5 to get 4.5 "FPA" simulating RF @2.22 APS the routine has to track if it left off on a 4 or a 5

would get much more complicated if we are talking 4.6 "FPA" (2.174 APS) where the routine would have to track tics as 5/4/5/5/4/ ... 5/4/5/5/4 ... 5/4/5/5/4
and unless we expanded the sequence much further it still experiences some level of breaks
Edited by zoid#1554 on 4/14/2013 2:24 PM PDT
Reply Quote
Thanks for all the analysis done! Bookmarked in case that Rapid Fire / Strafe becomes very viable in 1.0.8
Reply Quote
eh semantics: "FPA" has less meaning because the game can run at 1-200 FPS, your graphics card and other things at factor with that. tic is differentiation; graphically irrelevant

we assume graphically we are playing at exactly 60 fps (certainly understood) for non contiguous attacks (rf/strafe) tic really just means 'frames' which corresponds to a 'projectile'

Well, FPA did not make much sense in D2 either. A better term would be Ticks per Attack. D2 ran with 25 ticks per second and D3 seems to run with 60 ticks per second. My argument here is, that there possibly is no difference between Strafe, RF, Whirlwind etc. and all the standard attacks. If it does not alter attack speed inbetween the fastest attack speed for any attack should be 1 tick per attack or 1/60 APS. Then attack speed increases would only be noticable if the increase is at least high enough to get more than that extra 1/60 APS. The difference between normal attacks and the others would just be that it is more noticable with skills that do have a higher base attack rate.

D3 routine doesn't know how many attacks you are going to produce of RF; If you had oscillating tics 4/5 to get 4.5 "FPA" simulating RF @2.22 APS the routine has to track if it left off on a 4 or a 5

would get much more complicated if we are talking 4.6 "FPA" (2.17 APS) where the routine would have to track tics as 5/4/5/5/4/ ... 5/4/5/5/4 ... 5/4/5/5/4
and unless we expanded the sequence much further it still experiences some level of breaks

Could be calculated though. If Blizzard wanted to have increases of 1% attack speed always doing something, it might be the best solution (at least better than having the game compute all the stuff every 1/200 second or every 1/500 second). I got the idea when testing some stuff with Nightstalker. Bascially the animation (not the skill itself) does seem to have an internal cooldown. At specific increments (around 1.9 APS) the animation was displayed a bit weird though. Sometimes I would get 1 shots between animations, other times I was getting 2 shots between animations. At a slightly higher attack rate it would always be 2 shots while it was always 1 shot at a lower attack rate. To me this seemed to hint to something like altering attack speed in order to simulate smaller increases that could not be done with a D2 like attack speed system.
Reply Quote
04/14/2013 02:32 PMPosted by Poekel
My argument here is, that there possibly is no difference between Strafe, RF, Whirlwind etc. and all the standard attacks.
that's true

they all have a base tic system; but it simply = APS
i.e. 1 tic per attack and the attack happens every 1/APS

this is why increasing APS starts to see increasing eIAS break steps (asymptotic)
the difference between 4 aps (15 tic cycle) and 4.28 aps (14 tic cycle) requires an eIAS change of 7%

@5.00 and the next break is at 5.454 aps to reach the next attack rate ... thats a TON of gear IAS to yield a 9.09% eIAS change

04/14/2013 02:32 PMPosted by Poekel
Ticks per Attack.

perhaps are you suggesting (regardless of what is listed as a tic speed), a DH could vault through a ray of frost but take a portion of the damage divided as if it was divided out on all 60 tics?

I think for jaggeds that is true, (the thing seems to update 60/sec)
Edited by zoid#1554 on 4/14/2013 3:28 PM PDT
Reply Quote
04/14/2013 11:29 AMPosted by zoid
Bows and Hand Crossbows and 1.10 aps is the lowest you can get.

Damaged light crossbow with .92 aps I use for tests says hai2u

I notice stutter and figured it for lag

I notice no change in rocket production for "fire support" as it states launch 2 homing rockets per second be 0.92 aps or 2.2 aps they no lie.
That makes use with Ballistics sad since it's proportional e.g. less significant dps with increased APS


Hehe you got me there with the damaged crossbow but noone would use that in normal gameplay ;)

So you tested the Rapid Fire rocket rune and it doesn´t scale? I remember doing that test a while ago and came to the same conclusion. It´s a bit weird because Rocket Storm clearly scales. I did another test with 2.58 aps now and got much more frequent rockets than before. Note that it´s almost impossible to keep track of rockets when the normal damage ticks occur each 5 frames...there´s so many damage numbers that even frame-by-frame view is messy.

The rocket sequence after the first rocket was 14-10-15-7-14-17-10-3-10-6-18-17-8-3-14-11-15-15-9-8-8-11-17 = 245/23 = 10.65 (30 / aps should give us 11 frames), so it´s pretty accurate.

How did you check for ticks exactly?


I record at 60fps and then view the video frame by frame and count the number of frames between ticks. Ticks = either resource globe responses or damage values above monster heads. Some skills have different counters for both, some don´t.

And yeah I´ve done extensive testing. I figured out the scaling formula much later than I figured out the breakpoints. At first I went aps by aps, combinations I could find, decimals etc to find them and after I eventually figured out the formula, my previous test results fit perfectly.

As for 60/aps in general, scaling depends on the developers decision and the animation of the skill. Let me tell you that there is no Barbarian skill that scales like this (60 / aps). For example Weapon Throw is 49/aps, Hammer of the Ancients is 56.5/aps, Seismic Slam is 78/aps etc. and these are all direct damaging skills.

There´s many different skill mechanics. True DoTs don´t scale with aps and always deal x% each 30 frames through its duration. Then there´s channeling skills like Ray of Frost and Disintegrate that are different from Strafe/WW/Rapid Fire because their damage is only displayed each 30 frames but their damage scales with aps (they deal half of tooltip damage * aps each 30 frames) etc. but i think the craziest I´ve come across so far is Plague Bats, which is a channeling stacking DoT whose duration (not total damage) scales with aps (shorter DoT duration with more aps).
Reply Quote
04/14/2013 03:21 PMPosted by Nubtro
As for 60/aps in general, scaling depends on the developers decision and the animation of the skill. Let me tell you that there is no Barbarian skill that scales like this (60 / aps). For example Weapon Throw is 49/aps, Hammer of the Ancients is 56.5/aps, Seismic Slam is 78/aps etc. and these are all direct damaging skills.

Hmm, I always assumed that standard attacks would be 1 attack per second at 1 aps. That would mean that different attacks would have a different base attack speed. Basically the formula (for most attacks; channeled skills might be a bit different as there might be a channeling animation) should be:

Skill base Ticks per Attack / APS. Then round down.

perhaps are you suggesting (regardless of what is listed as a tic speed), a DH could vault through a ray of frost but take a portion of the damage divided as if it was divided out on all 60 tics?

I think for jaggeds that is true, (the thing seems to update 60/sec)

I've often noticed that Vault seemed to have some kind of "invulnerability frames". Could just be that I got just a tiny bit of damage while vaulting out.

Here's something Wyatt Cheng wrote about it (yesterday I think):
http://www.reddit.com/r/Diablo/comments/1c89zn/class_changes_to_108_ptr/c9e117w
"Spells such as Disintegrate, Ray of Frost, and Firebats DO crit. You don't get big yellow numbers, but they absolutely crit.

The reason is a technical one. Internally many of these powers are classified as "continuous damage over time" spells. The idea being that between really wanting a visceral sense of "applying" a DOT, some of our DOTs apply damage extremely frequently (I think it's 60 times a second under the hood, but don't quote me on that). The upside of this approach is that as you hold your mouse over the target, you get to really feel like you are melting your opponent.

The downside of this approach is that the floating damage numbers became impossible to read at 60 damage amounts per second. Not to mention it was a stream of extremely small numbers. When you first get Firebats you might be doing 11 damage with your Poison dart, and then you'd get a stream of floating 1s for Firebats when the damage was being applied in these very small increments 60 times a second. So to solve that issue we "batch up" all the damage your continuous DOT did over the last 0.25 seconds and present that to you as a floating damage number.

Under the hood, each individual tick can crit (with the ticks being done at this 60 times a second rate), but because the numbers are batched up, there's no clear definition of when to make the number "yellow". In a 0.25 second period you might get 2 crits, 8 crits, or 15 crits."
Reply Quote
04/14/2013 03:21 PMPosted by Nubtro
Hammer of the Ancients is 56.5/aps,

wait what does this mean? the routine is actually 120/sec to account for decimals?

or is it more like this

1) a 32 frame animation is baked

2) brought into a 60/sec routine to make 64+1 frames = 65
(+1 is the in-between from frame 32 with frame 33 == frame 1)

3) animation ends at 65th tic

4) the action flag for "hammer smash" is set to tic 20

5) scale of 40% IAS is applied x1.4

6) animation is not re-baked or it could jump/skip, but rather tracked as a timeline based on 65/1.4 (46.42857)

7) the action flag for "hammer smash" is set to Floor (20/1.4) = 14

8) animation reaches 46th tic but when it goes back to 1 recycles .42857 of the timeline between frame 65 and 1 (46 to 47)

9) the next time the timeline reaches tic 14 the animation timeline was at 14.42857 causing a 1/2 second shift as it triggers 1 later then expect, i.e. tic 15

10) animation reaches 46.42857 exactly and starts back at 1.00

falsification of (6)
The recorded positions between 1 hammer smash to the next are identical; the playback routine throws out the remaining .42857 along the timeline
Edited by zoid#1554 on 4/14/2013 4:33 PM PDT
Reply Quote
Posts: 9,119
View profile
Our channeling skills are a waste of Hatred as they don't penetrate by default so the arrows and bullets will hit the same target until it disappears, even if it dies on the first shot.

from the data it's clear that dual-wield, or 1hand+quiver will burn out all of your Hatred in less than a second unless your aps is near 2.0.
Reply Quote
zoid I don´t know how the game calculates certain skills but when I extensively tested HotA, only floor (56.5/aps) gave me the correct frames that I actually got in the game...and at 1.00 aps the frames jumped around between 56 and 57 lol...

Anyway, I´ve been testing a few other DH skills and Sentry is making me go nuts. It definitely seems to scale with aps but there is some kind of minimum frame length (24) that you can´t break...unless "something" happens and I get 18 frames per shot. I have no clue what´s going on. I got 18 even with 3.53424 aps, which should´ve been 16 frames if 60/aps applied :/, zoid mind checking out Sentry?

Spifire Turret shoots an additional rocket that deals 30% damage at the same frequency as it shoots arrows.
Shuriken Cloud deals 17% weapon damage * aps each 30 frames.
Jagged Spikes deal 22.5% each 30 frames. You can have 5 Caltrops up at the same time. Also this doesn´t stop Strafe while channeling

Fan of Knives doesn´t stop Strafe as well. Speaking of this skill, it needs to have a cooldown reduction similar to Barb´s Overpower (crits have a chance to lower its cooldown by 1 second). It deals twice as much damage so it would have to be balanced a bit.

If the developers take a look at DH skills, maybe they could adjust the hatred cost of Strafe and Rapid Fire similar to WW, which now uses a mechanics I´ve yet to understand as it costs less fury per tick the more aps you have. Before the change it worked just like Strafe and Rapid Fire, linear cost scaling - it had a fixed fury cost per tick. Now it goes down to 1.5 fury per tick at very high aps values (base is 3.33 fury at 1.00 aps).
Reply Quote
I can take a look

I noticed things can get weird in terms of expected costs per arrow (in beta RF costs per arrow did not stay as expected with IAS increases when dual wielding)


Jagged Spikes deal 22.5% each 30 frames.

i double checked jaggeds quikcly because this isn't what I have been experiencing
note that the SCT is packaged up on 1/2 second intervals however the damage to a monster is every 1/60 second, completely smooth like a real DoT

I am getting reductions in the displayed monster life like this for its death (updates are every frame @60fps)
531/11,111
493
473
453
433
414
394
356
336
316
287
268
illegible
illegible
illegible
illegible
illegible
139
120
82
62
42
22
2
1
death motion starts - (6th frame later "686 appears)

"444" appears with 531 life remaining (the previous value was 975) checks out, (975-531 = 444)
however the final death tic number '686' when the monster only had 531 must be an expected value
note 30 frames between 531 and frames after death vs '686'

686/30 = 22.86 damage per frame which is pretty close to what happens

it started with 2225 as well but the SCT states 2260 life was removed (444+686+444+686)
we really can't trust the SCT imo (either the SCT or the life of the monster)

remaining issues will take me longer
Edited by zoid#1554 on 4/16/2013 4:00 AM PDT
Reply Quote
O.o for all this work you guys are doing, I sure hope this skill gets REAL good! Haha
Reply Quote

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)

Reported!

[Close]