I know the discussion on how to cast spells (really, how to properly press buttons) has determined that spamming your key is in fact the best option.
My question is, is there a single, cumulative post that I could link to some friends/guildies that explains why spamming is the best method and shows some empirical data? Unfortunately there is nothing on this topic in the Theorycrafting Think Tank area (would be a nice addition). Thank you.
The answer is pretty well known as well as most of the mechanics of casting. Spamming keys is optimal because of said mechanics. There has been a number of changes on how it works, hence why sometimes people are confused on how it does actually works. I'll give a quick rundown.
The (small) history of casting mechanics
pre-TBC era
Wow started with basically no mechanism handling casts. If the client-side was casting, you were unable to begin a new cast. Simple as that. That means that if you were spamming keys back then, each one of your cast would have (lag_time + ~keypress_time) added to them. The solution that emerged from players to counter this was to move forward to stopcast, then cast a spell, this way allowing you to begin a cast earlier. Later on, stopcasting became more mainstream (to those who took the time to study TC, which was a lot more rare back then). Many may remember the mod fastcast, that came in later on. I think that somewhere in this period blizzard added "/stopcasting" because it didnt used to exist, but I could be wrong on that.
TBC-ish era
As fastcast rise in popularity, more and more players start to demand a server-side spell queue. As a result, blizzard implements a temporary* solution to fix this. Players are now allowed to request a beginning of spell cast even if on the client-side you're still casting. In other words, the server-side decides if you can begin a new cast, not the client-side. However this came with restrictions since they did not want everyone to be massively spamming the servers with cast requests.
Restriction #1: To curb down 'useless' requests, the casting mechanic did not allow a player to send a request for a new spellcast to the server if the client-side was within one GCD of the last GCD-generated cast. In other words, if you press your fireball key, for 1.5s (gcd) you are unable to send another request to the server to cast something else.
Restriction #2: If you send a request to the server, whether valid or not, you are unable to send a new request until a reply has been returned to the client. This is the major server-load countermeasure built-in, since it means anyone spamming keys faster than their lag (read: every single players with high latency) will not yield any good results, and will not spam blizzard servers either.
At that point in time, keyspamming wasnt truly optimal. This is because of restriction #2. For example, if you were pressing your keys every 20ms, and that you had 100ms lag, and that your cast was 2050ms long, then keyspamming would have cost you 50ms of dead time. The reason is that your keypress at 2000ms would have prevented you from pressing any other key in between 2000-2099ms.
TBC-WOTLK era
One key change was implemented later on. I will loosely refer to it as a server-side spell queue, although it really isnt that. The change they made was to fix the scenario I described above. Or rather, they wanted players with very high latencies to be able to play competitively, so the change was put in. The restriction #2 very heavily goes against players with high latencies, so blizzard figured if you had a time window on which any cast done during that window would be immediately queued after your ending cast, that basically this would be equal to players with high latency (opiniated hint here: not true). After some testing it became clear that there was a ~200ms window. I never bothered to check precisely what that number was, simply because my connection isn't fast enough to give an acceptable error margin. However, one important detail not to be left out here, is that the server-side queue has 100% nothing to do with casting mechanics, concerning everything I mentioned above. What I mean by that is that you still have the very same restriction of being unable to cast for one GCD after spending one, you still can't send a new request until one is given. I'll give an example to make this more obvious of what it does.
Same scenario as before. Keyspamming every 20ms, 100ms lag on a 2050ms cast. Under that scenario, if my last keypress was at 1900ms, and that I would not press any buttons afterwards, then my 2nd spell would still be cast even though on the server it isnt done casting. If I were to press a new key (ice lance) during that window, then obviously that would overwrite whatever was previously queued.
With the above information, although not quite obvious without some thinking, the optimal play is actually spam casting for as long as your lag doesnt exceed the cast-window. Note here: I never tested if the time window is dynamic according to the player average lag; it is possible. But needless to say blizzard goal is obviously to have a lenient time window that should allow 100% of users to make use of it. The reason why keyspamming is optimal is because of instant casts. As long as were talking about casting long spells, theres no real reason to do key spamming. However, due to restriction #1 and #2 I listed before, players are unable to queue a spell following an instant cast. So the whole time window thing is totally irrelevant in that context. And this is why keyspamming is optimal. If you dont, then every time you want to queue a spell following an instant cast you will lose keypress_time ms. Typically while spamming your keypress_time is dramatically lower; hence why it gives better results.
Something else to note. It was widely speculated for a long time that the time window only allowed queueing spells that were the same as the one being cast. I want to be clear and point out that I have never witnesses any evidence pointing towards that direction. For one, the people that claimed that could have done their test doing simply (icelance/fireball) following a fireball (around 2800ms in the cast) and see which of the 2 spells ends up being queued. But regardless, months later, I learned that apparently some non-mage spells have odd queueing behaviors. Things like some instant spells being unable to be queued at all after a long cast (?) or some instant casts being allowed to be queued after an instant cast (??). While it is possible that it is true, I do find it hard to believe from a programmers perspective. In any case, it doesn't seem any mage spells are affected. If anything, it could explains why nobody could agree on the spell queue existing or not back when it came out -- some classes getting different results depending on what spells are used to do the tests.
Needless to say, the proper fix to all of this would be to either remove the restriction #1 (cant send server requests for one gcd after spending one) or to change it into 'cant send server requests for (one gcd - lag) after spending a gcd'. I wouldn't hold my breath but I'm just making the passing comment here.
There is also another overarching restriction built into wow, but has got nothing to do with casting itself, but basically anything below sending requests to the server faster than 20ms (or 15ms was it ?) will disconnect you.
* pardon my typical sarcastic writing style, I couldn't let the opportunity slip by.
Last edited by manly : 07/04/09 at 10:34 PM.
<Eej> YOU"RE GONNA PULL
<Eej> IF YOU SQUEEZE OFF ANOTHER ARCANE BLAST
<Spectear> You've obviously never played with Manly.
<Spectear> That's hardly a reason to stop DPS. Very Manly Staff
Something else to note. It was widely speculated for a long time that the time window only allowed queueing spells that were the same as the one being cast. I want to be clear and point out that I have never witnesses any evidence pointing towards that direction.
Well, you can definitely "queue" spells other than the one you're currently casting. When I was arcane, for example, I queued up arcane missiles during the third arcane blast all the time.
Originally Posted by manly
The reason why keyspamming is optimal is because of instant casts. As long as were talking about casting long spells, theres no real reason to do key spamming. However, due to restriction #1 and #2 I listed before, players are unable to queue a spell following an instant cast.
So if I'm reading you right, key spamming is in fact not necessary or useful at this point due to the queue system, except after an instant cast (GCD) spell. Is that correct? Something like this:
Long cast spell after long cast spell: queue
Instant cast spell after long cast spell: quartz red zone
Spell after GCD: key spam
Well, you can definitely "queue" spells other than the one you're currently casting. When I was arcane, for example, I queued up arcane missiles during the third arcane blast all the time.
If you're disagreeing with me, reread what you quoted.
Originally Posted by Korey
So if I'm reading you right, key spamming is in fact not necessary or useful at this point due to the queue system, except after an instant cast (GCD) spell. Is that correct?
Pretty much. Although please note that I am comparing casual key spamming to nerve-racking keyspamming (or scrollwheel spam). Both give the same result for everything except spells following instant casts.
Originally Posted by Korey
Something like this:
Long cast spell after long cast spell: queue
Instant cast spell after long cast spell: quartz red zone
Spell after GCD: key spam
Quartz red-zone can mislead you into believing something that isn't true. It indicates the lag between when you pressed the key, and when you got the response from the server telling you your cast was successfull and that it has begun casting. This has no direct relationship with the lag/time it will take for your subsequent spell casts. It may have taken 50ms for casting fireball, but that doesnt means the following ice lance will also have 50ms lag. It means that ultimately relying on the red bar (in the way that you describe) is both 1- inaccurate use for what it does shows you 2- bound to be suboptimal because casting in the way you describe specifically avoids using the 'spell queue'.
The only cast I would use the red bar is for casts following channeled spells, because having even possibly inaccurate data is still better than having none at all.
"Long cast spell after long cast spell: queue"
I'm not sure I understand what you mean, but in any case the idea is that provided your spell enters the spell queue it shouldn't matter whether or not you spamcast. Typically that means casual mashing of keys vs scroll/bind keyspam. Both will result in all your cast entering the spell queue and costing you 0 dps loss as everything will be immediately queued.
"Instant cast spell after long cast spell: quartz red zone"
I have no idea how you concluded that anything following a long cast should be treated as an exception case, or even, where the red bar fits into all of this.
"Spell after GCD: key spam"
You're confusing what I said. If you cast anything incurring a GCD (fireball, ice lance, you name it), for one GCD after you begun successfully casting the spell you will not be able to send any request to the server. So if you cast pyroblast, for the 1.5s after it begun casting you will not be allowed to send anything to the server (unless of course you do /stopcasting, although at this point were splitting hairs). However, after you're 1.5s in the pyroblast cast, you can begin requesting casts to the server.
To be more precise here, I did not say 'spell after gcd = keyspam'. I'm trying to convey the way things work internally. However, if you do an instant cast, it does fall under that category. Precisely under that scenario the spell queue will never be available to you, which is another way of saying that you will always pay a dps penalty for it.
And no, before anyone gets any idea, you cant /stopcasting after an instant cast to try and chain another cast without having to wait the full gcd. I tried a long time ago.
Last edited by manly : 07/04/09 at 10:43 PM.
<Eej> YOU"RE GONNA PULL
<Eej> IF YOU SQUEEZE OFF ANOTHER ARCANE BLAST
<Spectear> You've obviously never played with Manly.
<Spectear> That's hardly a reason to stop DPS. Very Manly Staff
Pretty much. Although please note that I am comparing casual key spamming to nerve-racking keyspamming (or scrollwheel spam). Both give the same result for everything except spells following instant casts.
Ok good, that's what I thought you meant. If you can get your next spell queued, there's no need to spam the key, though there's no harm doing so either.
Originally Posted by manly
Quartz red-zone can mislead you into believing something that isn't true. It indicates the lag between when you pressed the key, and when you got the response from the server telling you your cast was successfull and that it has begun casting. This has no direct relationship with the lag/time it will take for your subsequent spell casts. It may have taken 50ms for casting fireball, but that doesnt means the following ice lance will also have 50ms lag. It means that ultimately relying on the red bar (in the way that you describe) is both 1- inaccurate use for what it does shows you 2- bound to be suboptimal because casting in the way you describe specifically avoids using the 'spell queue'.
I'm using the quartz red zone to judge when I should queue the next spell, what you refer to as "casual key spamming" except I just hit it once right before it hits the red zone. Am I doing it wrong? Or do I have the right idea, but am overestimating quartz's accuracy and therefore am being suboptimal? My thoughts were that - if quartz were 100% accurate - that the next spell can't begin until it's in the red zone and therefore making a habit of hitting the next spell right before the red zone would queue it successfully.
About a month ago, looked into the costs of instant casts in a rotation. I didn't come to any solid conclusions, but it seemed like in a low latency environment, instant casts ended up costing more time and in a high latency, they were actually taking less time. I used a combat log analysis program to look at target dummy data. Zaldinar also posted some information in that thread. You can find the discussion on the Subcreation forum:
The question asked was, if you have a spell with a cast time of X seconds and an instant cast, is the combination of these going ot cost (Xs+1.5s)/haste or is it more or is it less? I found that for cast time spells, I can pretty easily reach n*Xs/haste, but for instant casts, things seemed more complicated.
For fire specs, the relevance is the effective time cost and DPS value of instant cast pyroblasts and living bomb. For frost specs, it's the DPS value of brain freeze. For arcane, I suppose arcane barrage is no longer a regular part of the rotation, but the information could still be of interest.
Hey guys I'm new here, although I've been reading the forum for a year. I'll try and keep things short.
Mage wasn't my main until a few months ago. Before then I was melee dps. With a lot help from this site, I now find myself in a position where I'm the best geared mage in my Ulduar 25 raiding guild. We're fairly casual, but have 10 bosses down so far.
Our old class leader had taken a break from WoW untill recently and hes came back saying hes quitting for good. As a result, I'm now class leader, so for the first time, I've been paying a lot more attention to the spec, gems, echants, glyphs of the over mages in the guild.
My question is basically this: All of the mages in our guild are deep fire, arcane spec. What exactly should the raid setup be in regards to scorching? Is this something that Warlocks take care of now? Should I have one of my mages glyph for imp scorch and have them add scorch to their rotation?
FB/TTW: do you run with blessing of wisdom or kings?
On a given fight:
- If you won't need to evocate, will require more health to survive, or are fighting General Vezax: favor kings
- Otherwise: favor wisdom
This may not be 100% accurate in some borderline cases, but it should be close enough for government work.
My question is basically this: All of the mages in our guild are deep fire, arcane spec. What exactly should the raid setup be in regards to scorching? Is this something that Warlocks take care of now? Should I have one of my mages glyph for imp scorch and have them add scorch to their rotation?
Warlocks normally won't provide the debuff. It's an affliction build, and it's sub-optimal for them. There may be a couple of fights where they go affliction for survivability, but usually your mages will need to provide this debuff.
The improved scorch glyph and its value is a subject of much debate. Some swear by it, others don't bother. It has its value, and that value increases in fights where you have a lot of target switching. It unquestionably makes keeping the debuff up easier, and that can mean more raid-wide DPS. Ultimately it's not "required" for any Ulduar boss fight and it's situationally good on some fights and less so on others. If one or more of your mages does use it, RAWR will identify which of the main DPS glyphs should be replaced.
As to rotation, in theory, you only need one mage refreshing the debuff during a fight. In practice, it has an annoying tendancy to drop off even if refreshed "in time", and there are a number of fights where the boss can do something random which prevents your refresher from getting the job done - for example, slag pot on Ignis. So, it may be more practical to have all of your mages keeping it refreshed.
I'm using the quartz red zone to judge when I should queue the next spell, what you refer to as "casual key spamming" except I just hit it once right before it hits the red zone. Am I doing it wrong? Or do I have the right idea, but am overestimating quartz's accuracy and therefore am being suboptimal?
Quartz can never be 100% accurate because of what I said in my previous post. The idea is good, but ultimately because the internet doesnt gives you a consistent lag (as you can see when casting 2 spells in a row and quartz showing you 2 different red bars), if you fall in a case where you first spell request went in fast (50ms), then you see a small red bar. Then you press your button based on that, but if the 2nd cast happens to take a long time to reach the destination, then you lost the difference inlag of dps_time. Not to mention human reaction times arent as good as you want them to be.
Unless you have very poor lag, I would advocate against your current practice. If you do have poor lag, then do this test to accurately determine the time_window and see what would be optimal for your case. Assuming you have a G15 (or autohotkey), remove all gear and buffs and keep spamming fireballs. Then set it up so that it casts at regular intervals of 2800ms. Then if it succeeds, you know the time window for you is at least 200 ms. But then. try lowering the 2800ms until you reach the spot where the casts do not get chained. If that value it gives you is higher than your average lag, then I strongly recommend you exclusively do keyspamming and do not resort to your current cast style.
<Eej> YOU"RE GONNA PULL
<Eej> IF YOU SQUEEZE OFF ANOTHER ARCANE BLAST
<Spectear> You've obviously never played with Manly.
<Spectear> That's hardly a reason to stop DPS. Very Manly Staff
Ok thanks mate. The more I think about it, the more I think it'll just be a hindrance to overall dps. I can already hear any mage I ask to glyph for it QQing about his loss of DPS, and if the co-ordination wasn't right with the other mages helping to keep it refreshed then its realistically going to be a loss of DPS overall. Best keeping things simple with casual raiding.
Question: does Glyph of Icy Veins "Your Icy Veins ability also removes all movement slowing and cast time slowing effects." apply to the range-based debuff on Heigan the Unclean?
Question: does Glyph of Icy Veins "Your Icy Veins ability also removes all movement slowing and cast time slowing effects." apply to the range-based debuff on Heigan the Unclean?
I'm not sure, but it shouldn't even be up for question. If you're getting the cast time debuff, then Heigan is being tanked too close, or you don't have enough range on him (some classes, like shadow priests, have it worse than others... Flame Throwing helps here). Regardless though, using that Major glyph for that single fight is a bit unwise, as if you never get the debuff, well, then you're shooting yourself in the foot without that other glyph.
I think that somewhere in this period blizzard added "/stopcasting" because it didnt used to exist, but I could be wrong on that.
Originally Posted by Morthoul
I can help date this. SpellStopCasting() has probably always existed. Patch 1.10 nerfed it to require hardware input; prior to that CTRA could passively invoke it to cancel heals at the last moment, if they looked like they'd overheal. So it's at least several months older than Patch 1.10, and I expect it's always been around, since trinket PoM Pyro macros used to have to stick "/script SpellStopCasting()" between casts in order to convince the UI that the trinket hadn't caused a GCD.
The fastcast mod did three things: 1) adjusted your cast bar the way Quartz can (though less intelligently), 2) implicitly put SpellStopCasting() in all your casts as if you'd macroed them all, and 3) could optionally decline to perform the stop-cast operation if you pressed the button way too early. Patch 2.0 restricted SpellStopCasting(), giving us /stopcasting as a front-end to it. (Source) This broke the fastcast mod. #1 was replaced by Quartz, #2 by putting /stopcasting in macros manually. #3 has no replacement since breaking this kind of "smart" functionality is the whole point of restricting the function.
While both of these things are mostly true, there are a few discrepencies.
/script SpellStopCasting(); was around since day one, but didn't gain popularity until on use items became common place. And on the side effect of that, CTRA was able to manipulate their coding to do a health check, and based off the parameters set by the user, percent health that is, either invoked SpellStopCasting(); at the end of the spell, user controlled on the check here too, or let the heal go through.
Around this same time, FastCast came about, but it didn't do anything to your cast bar or anything except that it took a player controlled truncation point, generally around 50ms delay. It then had a list of spells and cast times, and then started a timer that after (cast time - time truncated) was reached, it would initiate the SpellStopCasting(), and thus give the illusion of faster casting.
That did the same thing as fast cast, but user controlled, and sometimes, even with FastCast, interrupted your current cast if you got a lag spike.
To combat this, the other things manly mentioned were done, and as such, with all the other changes in the UI, Quartz was born. Though Quartz isn't required to do good dps, it does at the same time show a lot more than we used to be able to raid with.
Bitterness is like cancer. It eats upon the host. But anger is like fire. It burns it all clean.
My question is basically this: All of the mages in our guild are deep fire, arcane spec. What exactly should the raid setup be in regards to scorching? Is this something that Warlocks take care of now? Should I have one of my mages glyph for imp scorch and have them add scorch to their rotation?
In my guild I have 2 mages with the Improved scorch glyph (we rotate the mages in raids) and I dropped my scorch glyph and went for :
Glyph of Molten Armor
Glyph of Fireball
Glyph of Living Bomb (other mages have Glyph of Improved Scorch here)
So it all depends on the mages you bring to a raid.
One of the 2 improved scorch mages does the initial debuff and I keep it up.
Glyph of Living Bomb (other mages have Glyph of Improved Scorch here)
You might want them to check that in Rawr. For my gear the lowest dps glyph to drop for Scorch is Fireball, for example.
If memory serves, regardless of gear it seemed to be a choice of dropping Fireball or Molten Armour for the Scorch glyph, never LB.
The Mage theme song.
<+icesurfer> this is the fucking security industry; if you want ethics, join the Red Cross
In my guild I have 2 mages with the Improved scorch glyph (we rotate the mages in raids) and I dropped my scorch glyph and went for :
Glyph of Molten Armor
Glyph of Fireball
Glyph of Living Bomb (other mages have Glyph of Improved Scorch here)
So it all depends on the mages you bring to a raid.
One of the 2 improved scorch mages does the initial debuff and I keep it up.
What Seonid said is true. You should never replace LB glyph since that is your highest DPS glyph. The order of glyphs with typical Ulduar gear goes like this, LB > Molten > Fireball.
So if you are dropping a glyph for scorch, always make it Fireball or FFB if you are FFB specced.
Glyphs are pretty cheap, but as a practical concern I recommend you keep the Molten Armor glyph. You can respec between Fire and FFB specs without needing to fumble with glyphs every time. That way you can reserve your other spec for something else: PvP, Arcane, Frost, or a Fire spec without the Scorch glyph, for example.
Assuming FBttw spec with ulduar gear, when should you not waste a GCD on LB to maximize dps?
I assume you should never use LB when there is any chance target will die before it goes off.
Copied from different thread post of mine:
Average damage per spell (approx. BiS gear)
Fireball: 13,094.334
Pyroblast: 13,237.137
Living Bomb: 12,117.443
This means that there is no point that casting HS-Pyro stops making sense.
The point at which Living Bomb stops being worth casting is when your Fireball cast time falls below 1.08 seconds (13094/12117).
For comparison, in my current gear this occurs at 1.06 seconds. In general the lower your stats the lower this threshold will be, simply because each cast of LB benefits more from your +spellpower than each cast of Fireball.
the +crit modifier shouldn't really change anything since LB has the same crit multiplier as Fireball (assuming you are glyphed)
As for Vezax, the DPM math matches you completely correct, although ttw/fb is generally not optimal on that fight.
Simple question: Should I be casting slow on my targets in a raid (10 or 25), or assume that the boss will always have a debuff on that will give me the TTW bonus? I am Arcane spec.
simple answer: if you have a warrior in your raid, they ThunderClap and keep up ttw 100% of the time if they're decent.
Download MageFever addon and you can see if TTW is up on your target with a small pop up. One of the best mage addons ever.
QUESTION:
I've seen some of the top raiding/progression-guild mages go back to Frostfire Bolt spec and away from Fireball/Ttw --- is there any reason to think Frostfire Bolt is making a comeback?