Latest in Gaming

Image credit:

Mashing buttons can cause cooldown problems

David Bowers

Ever since patch 2.3, a number of players have been having a lot of trouble with their instant abilities, especially in PvP. They're finding they get constant "spell is not ready yet" and "target is out of range" errors whenever they mash their buttons. The main source of this problem has to do with a change to the way your computer communicates to the server what your character is doing. It's not very easy to explain, but I'll do my best here. First, I'll explain how the change affects longer spell casts, and then afterward look at how it affects instants.

Here's how things worked in patch 2.2:
  1. I press a button to cast a spell or activate an ability.
  2. My computer says, "Hey! Realm server! David wants to cast Frostbolt!"
  3. The realm server says "Okay!" 300 milliseconds or so later (this round-trip communication time is your "latency").
  4. My computer then starts a 1.5 second global cooldown, and shows me the Frostbolt casting bar.
  5. I cannot use any other abilities from the time I press the button to the time my Frostbalt casting finishes, unless I manually cancel the spell (as with a /stopcasting macro), or unless the server tells my computer, "Okay the spell is finished already!" or "Whoops! That spell got interrupted!"
  6. Either way, without a manual interruption on my part, I'm waiting on the server to tell me the outcome of the first spell before I can tell it to start casting the second.
Here's how things work in patch 2.3:
  1. I press a button to cast a spell or activate an ability.
  2. My computer says, "Hey! Realm server! David wants to cast Frostbolt!"
  3. My computer goes ahead and starts the global cooldown for me, assuming the Frostbolt will succeed.
  4. The realm says "Okay!" 300ms later, and the casting bar shows up.
  5. Alternately, if there's a problem, then the realm says "No way, silly! David isn't finished casting Fireball yet! Wait a moment to try again, and cancel that global cooldown while you're at it!"
  6. Either way, I can send my commands to the server whenever I want, as long as my global cooldown isn't currently active -- and if it gets activated too early, I just have to wait for the server to tell my computer to cancel it before casting another ability.
Sounds fine, right? Before, we had to wait for latency between our computers and the realms in order for any spell to go through, but now we just have to wait if we press a button too early.

All this is great unless you're "mashing" your buttons, pressing them repeatedly over and over in the hopes that one of your button presses will go through. Before, this kind of mashing didn't make much difference, and it could even speed you up if you happened to be pressing the button right at the moment that your computer is told that previous spell finished or failed. But now, button-mashing will make your computer constantly commence the global cooldown, and you'll have to wait for it to be cancelled through a spell-failed message from the server for your next button press to go through.

Spells with a casting time longer than 1.5 seconds don't encourage this sort of mashing, except towards the end of an earlier cast, but rogues and other classes with mostly instant abilities have been in the mashing habit for a long time. This is especially true in situations like PvP, where even though your client thinks you're in range and behind your opponent, by the time your "Backstab" attack gets to the server, that opponent might have turned around or moved already and your attack may fail. Previously, rogues (and others like them) could just mash buttons and hope that their attack would go through without getting a lot of error messages; but now they keep getting the global cooldown thrown up in their face, and it seems as though none of their abilities are working.

Now here is where things get really unclear. As far as I can figure out from my research on this subject, the actual success and failure rate should be the same if everything is working correctly. Before, you had to wait for latency with any spell-cast of any sort, but now you only have to wait on the ones that are cast too early. If you constantly button-mash, of course, most of your spell-casts will be cast too early, so you'll have to wait more often than one who can time his or her spells more perfectly. But overall the system should be better in many cases, or at worst, the same as it was before.

People really are getting failures though, so clearly there is some sort of bug involved. Some have claimed that all you need to do is "stop mashing buttons" and "time your attacks right," but Nethaera has said that the devs are aware of some real problems here and are working on ways to solve them. Blizzard has also applied a hotfix in order to help prevent excessive error messages, and it seems to have helped some players, though other players say it hasn't helped them at all. In addition, as Tigerclaw says, there are "both server side changes (some of which have already shipped) as well as client side changes targeted for 2.3.2."

For my part, I'm finding this new system to be very good for my hunter main. With the global cooldown now entirely on my computer's side, I can send one instant attack, then another one a few moments later, even if I get an ugly latency spike of some kind. In situations with bad latency like this, I've seen several instant abilities seem to go off at once because my computer sent them all and only belatedly got the message back to me that they all worked okay. Of course, the enemy in PvE is usually standing still, and playing as a ranged class means I don't have to worry about my enemy being up close to me all the time.

How do you feel about this change? Do you like how this encourages you to time your attacks rather than mash your buttons? Is it fair to expect melee classes to time their attacks better when they already have to worry about range and positioning?

From around the web

ear iconeye icontext filevr