HomeHelpSearchLoginRegister
Welcome, Guest. Please login or register.
Did you miss your activation email?
February 09, 2010, 03:41:55 AM

Pages: [1]
Instant Cast: Benefit or Penalty?  (Read 856 times)
Exalted
******

Posts: 837


The following thread made me revisit the timing of chaining an instant cast to a cast time spell.

http://forums.wow-europe.com/thread.html?topicId=9520946208&sid=1

In another thread on this forum, I mentioned having looked at a Patchwerk log and noticing that frostbolt+fireball (instant) was taking less time than theory would suggest. It was a small data set and I did the analysis manually, so something may have gone wrong there.

I didn't feel 100% confident about that data, so now that I have a week off work, I spent an hour getting a bit more data and running it through an analysis program (only slightly modified from the one that I used to check replenishment ticks). Here are the results I posted on the EU Mage forum:

Quote
This time I tried straight frostbolt spam and frostbolt+IL cycling on a target dummy and recorded the combat logs and then ran them through an analyzer. I had 22.75% passive haste (quite a lot) that remained unchanged for the whole test.

Straight frostbolt spam averaged a bit over 2.04 seconds between frostbolts. The theoretical maximum would be 2.0367 seconds, so I got quite close.

FB+IL cycling gave me 3.43 seconds for the cycle, which should ideally be (2.5+1.5) / (1.2275) ~= 3.26 seconds. That's an extra 0.17s per ice lance in fact - the opposite of what I saw in the Patchwerk log.

To test things with higher latency, I connected through a 3G Bluetooth phone and got about 600-1000 ms in-game latency. For straight frostbolt spam, the cycle time goes up to 2.31 seconds, which is a 0.28 second increase.

FB+IL with latency was 3.62 seconds. It seems that instant casts saved time when the latency was high enough. You still get punished for having high latency, of course.

If there's interest, I can make the Lua program publicly available.


   
Honored
****

Posts: 93


I'd be interested in seeing the addon and looking at your data.  I've been down this road before, when they introduced precasting and in the double-shatter-combo research with Affix.  The idea is that the GCD starts before the cast ends and completes before its theoretical end point should be.  so instead of:

T+0.0 - Frostbolt start
T+2.5 - Frostbolt end, IL cast, GCD starts
T+4.0 - IL GCD clears

we have

T+0.0 - Frostbolt start
T+2.2 - IL cast request sent, GCD starts
T+2.5 - Frostbolt end
T+3.7 - IL GCD clears

Netting you a savings of 0.3 seconds on that particular cycle.

The problem is that you can't request the next frostbolt until T+3.7, and by your earlier estimate you'll need around 300 msec for it to get to the server anyway.  So your next round of frostbolts probably wont start until 4.0 anyway, so you haven't netted much of a benefit mathematically.


   
Exalted
******

Posts: 837


It's not an addon...it's a Lua script that you run from the command line and it reads a combat log file. It's almost identical to the program that I use to check replenishmet tick timing. You'll need a command line Lua on your machine, but it's very easy to install from lua.org.

Here's the source:

http://wow.poista.net/theorycraft/bolttime.lua

It measures the time between hits, but the intervals should be consistent with cast timings.

If you tweak the time limits (minimum and maximum), you can distinguish between combos and straight frostbolt spam, so you could take a target dummy combat log and just "play normally" and get results on that. Real raid logs will include movement and huge variations in haste (IV/heroism), so it's not that useful on real data.


   
Exalted
******

Posts: 837


I did the "play normally" thing and analysed that log for both BF and frostbolt spam timings. The penalty per instant cast was about 200 milliseconds.

Putting that number into my "shattersim" program, I checked how it affects the DPS value of the brain freeze talent:

With 200 ms penalty, BF is a 1.5% DPS gain
With 0 ms penalty, BF is a 2.7% DPS gain
With 100 ms benefit, BF is a 3.4% DPS gain

Shattersim is just a simulator that tries to play like the ideal mage using typical spell hit numbers from our 25 man raids, so YMMV. You can find an older version of Shattersim in the same directory as bolttime.lua. I originally used it to test glyphed ice lance PvE damage and a few other things.

This isn't just a frost issue, of course. The same timing anomalies affect hot streak pyroblasts as well.


   
Honored
****

Posts: 93


Mmm, parsing the combat log is tricky, its timestamps for entries are dependent on travel time for spells and subject to some whacky bouts of latency related stuff.  What distance are you using from your target for the measurement?  remembering that Frostbolt and Ice lance don't travel at exactly the same rate.

I'll see if I can find the code I wrote to watch Affix's stuff, and or polish up my anal logging program to be able to observe what you're looking at.


   
Exalted
******

Posts: 837


I ignore the ice lances. The extra GCD is enough to tell the combo from the single spell.

After all, what we are interested in is the time between two frostbolts when there's nothing in between and when there's an ice lance in between. If I don't move, travel time is a constant, so the time on damage taken from frostbolt to frostbolt corresponds to the casts. Since I was shooting at a target dummy, there wasn't even any server lag that I could notice. I think the near-ideal cast time of my frostbolts on pure frostbolt spam shows that it's a valid method of measuring cast time.

The numbers may look quite different in a 25 man raid on a lagged server.


   
Honored
****

Posts: 93


Aah, I see what you're saying.  The best measurement for this would be the timestamps of the cast bars themselves related to the GCD for the Ice Lance.  Meaning, what would eliminate whacky lag or travel time being involved as much as possible would be recording the start/stop of the cast bars and the GCD if at all possible.


Using this macro:

Code:
/cast Frostbolt
/script spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo("player")
/script  debug("Start time of "..startTime.." end of "..endTime,1)

You can identify exactly when the cast bar is starting and ending, which theoretically tells you your period between spells.  Spamming frostbolt for three casts I got these:

Start time of 468754828 end of 468757601
Start time of 468757819 end of 468760592
Start time of 468760726 end of 468763499

Or more usefully:

Start time at T+0.000, end of T+2.773
Start time at T+2.991, end of T+6.124
Start time at T+5.898, end of T+8.671

I've got 8.17% haste, and am not specced for frostbolt, so we expect 3/1.0817 = 2.773412 second cast, so that works out.  In a perfect world we'd see a cycle of 3 * 2.773 = 8.319 seconds.  We're seeing a bit of a gap between the first and second spells, and actually starting the third spell 200 msec early.  Doing the same with cast 2 being an ice lance:

Start time at T+0.000, end of T+2.773
Start time at T+4.127, end of T+6.900

In a perfect world, we'd expect 2*2.773 + (1.5 / 1.0817) = 7.01923 seconds.  I'll spend some time tomorrow getting together something that will watch the GCD happen too and do it much more cleanly than just spamming this macro.


   
Exalted
******

Posts: 837


If you are fire specced, I think the timing for fireball+(HS)pyroblast would be just as interesting and possibly of interest to a lot more raiding mages. It's the exact same mechanic and affects the value of the HS talent just like it does BF for frost. I guess arcane is the only one unaffected by this. Other caster classes should be interested too (shadowbolt+instant cast dot application, for instance).


   

Friendly
***

Posts: 58


If you are fire specced, I think the timing for fireball+(HS)pyroblast would be just as interesting and possibly of interest to a lot more raiding mages. It's the exact same mechanic and affects the value of the HS talent just like it does BF for frost. I guess arcane is the only one unaffected by this. Other caster classes should be interested too (shadowbolt+instant cast dot application, for instance).
Emphasis mine.

I would surmise that Arcane would find this of great interest. Chaining ABs (cast time) into ABrs (instant) and back, is a common practice.

On a tangential note, I have noticed that sometimes when you finish casting an instant spell (say an ABr) and start spamming your next cast time spell, you will sometimes incur an extra few milliseconds of penalty (presumably where you sent the 'start AB cast' request to the server but were still inside the GCD for the instant spell) with the error "Spell not ready yet". This error penalty time seems to be on top of the normal GCD time. I.E. You would have the normal 1.5 secs of GCD + some few extra milliseconds (maybe 0.1sec?) of this error time before you can cast again.

An even stranger experience is that it is sometimes possible to start a cast while still visibly (i.e from you UI) in a GCD from an instant. I find that this is possible if timed just right. I am not certain if it is an actual 'weird lag glitch' or just a failure of the game UI updating the state of the GCD quick enough.

Needless to say, I haven't been able to reproduce these cases in a way that is easily describable. I can identify them though, and prevent the former and abuse the latter due to the 'feel and rythm' of casting ABs into ABrs and so forth. I find not 'spamming' my next cast to be of immense help in preventing the former.




-------------------------
a.k.a Kel S'jet
   
Friendly
***

Posts: 40


With 4T8, chaining instant casts and any penalty associated with that is of interest as well. Before you already had occasional Living Bomb + Hot Streak Pyroblast chaining, but now I get up to 5 instants in a row. I've always found timing casts after an instant annoying (quartz GCD timer didn't really help me), so I've resorted to spamming keys during GCDs. With bad server lag like on wednesday evenings, it sometimes causes pyroblasts to start casting though Sad.

Chaining scorches doesn't really work well for me either. I thought the fact that the cast time was the same as the GCD was to blame for that. But when I tried spamming (talented) wrath on my druid (without much haste gear), I had similar issues (spell not ready). It might be that I'm just used to being able to cast frostfire bolts long before the quartz lag bar, or there is just something in the spell queuing mechanism that works differently for shorter casts. But that does affect throughput as well.


   
Exalted
******

Posts: 837


I have updated bolttime.lua:

http://wow.poista.net/theorycraft/bolttime.lua

The same directory also contains two relatively short combat logs. One from the PTR (300 ms latency) and one from a live realm (80 ms latency). The new version actually looks for fireballs in between frostbolts and classifies the spells that way. The old one relied on time constraints and it had some other problems as well (the original program was after all just for trackign replenishment ticks).

On the PTR, I got the following results:

Chained frostbolts were taking 48 milliseconds longer than theorycrafted. Combos were taking 107 milliseconds longer than theorycrafted, which indicates that the instants were about 59 milliseconds longer than predicted.

On live:

Chained frostbolts were taking 30 milliseconds longer than theorycrafted. Combos were taking 78 milliseconds less than theorycrafted, which indicates that the instant casts were about 108 milliseconds faster than predicted.

These were just short tests and it's conceivable that the analysis could still have bugs (it would get confused if a fireball landed before the frostbolt that was cast before it). I'll run another test and report if the results change.

Numbers from my current spreadsheet:

Code:
300 MS PTR            
                                                
                Theoretical     Actual          Difference
Haste           22.90%          
Cast time       81.37%          
Frostbolt       1.8714          1.9193          0.048
GCD             1.2205          1.2800          0.059
Combo           3.0919          3.1993          0.107

80 MS LIVE            
                                                
Haste           22.75%          
Cast time       81.47%          
Frostbolt       2.0367          2.0665          0.030
GCD             1.2220          1.1144          -0.108
Combo           3.2587          3.1809          -0.078

All live data averaged:
Haste           22.75%         
Cast time       81.47%         
Frostbolt       2.0367          2.0594          0.023
GCD             1.2220          1.1522          -0.070
Combo           3.2587          3.2116          -0.047


Edit: Added average of all live data collected so far. It's in line with my first results, but slightly more moderate.


« Last Edit: July 16, 2009, 02:01:06 PM by Tiga »
   
Pages: [1]


Jump to:  

Theme © PopularFX | Based on PFX Ideas! | Scripts from iScript4u February 09, 2010, 03:41:55 AM
Powered by MySQL Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Powered by PHP