Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » Public Discussion » Class Mechanics

 
 
LinkBack Thread Tools
Old 11/14/07, 5:40 PM   #1
Kasi
Soda Popinski
 
Retired
Tauren Death Knight
 
No WoW Account
2.3 Casting Mechanics

There is a lot of stuff out there flying around right now about how exactly it works and if/how you should treat it differently compared to 2.2. Now previous to 2.3 I wasn't using stopcasting. I did use it for one night of testing, but since I was learning a lot of new fights I didn't want to get locked into looking at bars.

From my limited experiences yesterday it seemed that spamming worked, but that it was like the old stopcasting that you could get a new spell off by spamming it at the end of your current cast. Basically still like the old one where you started casting once you got to quartz red part and then hit the cast. Now normally I have just been a spammer, I prefer to watch the fight and raid health and not my cast bars. So if there is no detriment to doing that way this is how I would prefer to do it.

But according to Altitis: Global Cooldown 2.3 Revisited, mashing is bad.

There is also this dialogue taking from the Mage thread:

Here's my comprehension of the way the current casting system works. More advanced tests to be done this week to clarify some details.

0.00 - you cast fireball
0.00 - the 'cast fireball' is sent to the server whether or not you're currently casting (as opposed to 2.2 where it wouldn't let you)
0.00 - a client-side GCD is triggered (this is where the details are a bit hazy)
0.20 - the server receives the message 'cast fireball'
0.20 - the server responds to the client saying 'spell is not ready' because you were already casting a fireball previous to this
0.40 - the client receives the answer from the server
0.40 - the client side GCD is removed as a result of receiving the message

In other words, to avoid players spamming the server with casts, as long as you don't get an answer from the server you can't cast other spells (lets call it a temporary GCD).

Also, it seems that consecutive casts of the same spell can be chain-casted server-side. Here's my best understanding of it:

- If the server receives a cast message 250 ms prior to the end of the ongoing cast, and that both spells are the same (ie: consecutive casts of fireball), then once the current casts completes on the server, it will begin to cast the next one immediately.



The parts that needs extended testing is the following questions:

1- Make sure the 'temporary GCD' does exists.
2- Is it possible to cast 200 fireballs in a row and that it would take precisely 600 seconds to execute with no haste gear ? (ie: that the '1 spell deep' queue does exists) (also ie: no latency penalty)
3- If yes, does it apply only to consecutive casts ? This is easy to test, alternate between fireball/frostbolt.
4- And for good measures, try with a G15/N52 spamming fireball to see the results.


1- It does, and I guess it is affecting Rogues, Warriors, etc. too and they're pretty upset about it because you can hit a Hamstring or something on someone who turns out to be out of range and you get locked out of being able to hit it again before the temporary GCD is removed. At least that's my understanding of how it's affecting them I haven't played my Rogue or Warrior yet in 2.3.

2- The problem with pulling this off is it seems the "queue window" (the time frame in which you can hit your next spell and the server will automatically begin casting it when the current spell ends) is fairly small, and may even be adjusting with your latency (more testing required here.)

3- I rotated in Scorches and had no problem hitting them somewhat before the red area on Quartz (with obviously no /stopcasting macro), which was usually a good amount before my Fireball finished. So I don't think it has to be the same spell.

4- Gonna have to wait for someone else here I don't have one.


I just want to consolidate the discussion in one thread instead of scattered around 3-4 different ones and would like to get some dialogue on dangers/pitfalls of the new system that could be unforseen by people who don't understand it, me included.

Edit: From the undocumented changes thread it seems the biggest issue is with chaining instants that use the GCD. Which means this affects healers and melee dps a lot more than it would affect any casters, although locks/spriests might want to beware.

Last edited by Kasi : 11/14/07 at 5:59 PM.

Offline
Old 11/14/07, 11:06 PM   #2
Muphrid
Don Flamenco
 
Gnome Mage
 
Stormrage
I must emphasize one thing.

1. The "temporary GCD" already existed in 2.2. It was actually quite an easy latency check I used to do when I was on dial-up well before 2.0, even. I would conjure a mana gem and then try to conjure another of the same kind: the GCD would momentarily trigger then cancel when the client received a cancel message from the server (because you can't have 2 mana gems of the same kind).

It is for this reason that I firmly believe there is another culprit for the problems melee are having now with casting. 1 thing I have verified myself is that spamming an ability while moving into range can reset the GCD for no apparent reason while you are spamming, when all that should happen is that casts after the first one fail because the GCD is up.

Offline
Old 11/14/07, 11:47 PM   #3
ebbv
King Hippo
 
ebbv's Avatar
 
Troll Mage
 
Destromath
Muphrid what we had before is different from what we have now. What you describe did indeed happen in 2.2, that is to say, when your client believed you would begin a cast, it would start a GCD which could end early if it received the fail message from the server.

Now, however, your client will ALWAYS start a GCD when sending a request to the server, not just when it knows it can begin a cast. For example the client could believe you are 1.6 seconds into a Fireball cast and you hit Fireball again. The client will start a GCD to stop you from sending another request until it hears back about this one. This was added to stop the type of spamming available to people who have G15 keyboards or similar devices, or by simply mashing keys non-stop.

This is what is different and what is affecting Rogues and Warriors because it is starting a GCD whenever you send a request to the server.

edit:

To clarify this was not necessary in 2.2 because your client would not send requests to the server during a cast. Most people probably realize this but just wanted to be sure it was spelled out.

Last edited by ebbv : 11/14/07 at 11:53 PM.

Offline
Old 11/15/07, 12:17 AM   #4
Muphrid
Don Flamenco
 
Gnome Mage
 
Stormrage
Originally Posted by ebbv View Post
Muphrid what we had before is different from what we have now. What you describe did indeed happen in 2.2, that is to say, when your client believed you would begin a cast, it would start a GCD which could end early if it received the fail message from the server.

Now, however, your client will ALWAYS start a GCD when sending a request to the server, not just when it knows it can begin a cast. For example the client could believe you are 1.6 seconds into a Fireball cast and you hit Fireball again. The client will start a GCD to stop you from sending another request until it hears back about this one. This was added to stop the type of spamming available to people who have G15 keyboards or similar devices, or by simply mashing keys non-stop.

This is what is different and what is affecting Rogues and Warriors because it is starting a GCD whenever you send a request to the server.

edit:

To clarify this was not necessary in 2.2 because your client would not send requests to the server during a cast. Most people probably realize this but just wanted to be sure it was spelled out.
Are you suggesting the client is starting new GCDs while old ones are in effect? Because otherwise, there would be no way for the client to adversely affect rogues and warriors in the manner you describe.

Offline
Old 11/15/07, 12:50 AM   #5
ebbv
King Hippo
 
ebbv's Avatar
 
Troll Mage
 
Destromath
No. I purposely chose 1.6 seconds into a Fireball in my example because the GCD of that Fireball would be over with. If you have a GCD you can't initiate a new request and thus start a new GCD. I thought this was pretty obvious.

Offline
Old 11/15/07, 12:51 AM   #6
Muphrid
Don Flamenco
 
Gnome Mage
 
Stormrage
Originally Posted by ebbv View Post
No. I purposely chose 1.6 seconds into a Fireball in my example because the GCD of that Fireball would be over with. If you have a GCD you can't initiate a new request and thus start a new GCD. I thought this was pretty obvious.
How would that affect melee, then?

Offline
Old 11/15/07, 1:26 AM   #7
Prinsesa
Bald Bull
 
Blood Elf Paladin
 
Echo Isles
I believe the situation being described by as undesirable by melee is as thus (and correct me if I'm wrong on this):

Assume a player has 200 MS latency
T-0 : Joe McWarrior clicks his Hamstring button
T-0 : Joe's client sends the "I want to cast Hamstring" message to the server and starts a GCD on Joe's client
T+0.2 : The server receives Joe's message, but finds that Joe is out of range. It sends a "clear the GCD from Joe" message back to the client
T+0.4 : The client receives the server's message and removes the GCD

In this case, Joe can only try to cast Hamstring once every 0.4 seconds, as opposed to 2.2 where Joe could keep spamming his Hamstring and not get a GCD from attempted casts that the client thinks should be disallowed.

While I play a Paladin, I have never attempted to melee in an environment as fluid as PvP - I only either tank or play PvE Ret, so I have no real basis for knowing which of the above behaviors would be better; let you cast whenever you want but only every (latency * 2) seconds, or let you keypress whenever you want but lose potential successful casts blocked by an inaccurate client assumption.

"We do want Sanctuary to be the tanking seal"

- Ghostcrawler

Offline
Old 11/15/07, 6:04 AM   #8
Dustwhisper
Don Flamenco
 
Undead Mage
 
Doomhammer (EU)
I noticed something like a hookline lag when swapping from spamming a spell to throwing in another (eg fireball spam then fireblast or scorch). This would go hand in hand with client interpolation used together with server-prediction for spamming spells.

Offline
Old 11/15/07, 9:11 AM   #9
Veryberry
Glass Joe
 
Draenei Shaman
 
Ahn'Qiraj (EU)
WoW Forums -> New GCD, post disagreements here.

On the warlock; say you are casting a Shadow Bolt, prepatch, one could be spamming say a Searing Pain as the shadow bolt was being cast, though you couldn't cast said Searing Pain til after that Shadow Bolt was thrown, obviously, you could get that Searing Pain off as quick as you the player hit the key and Searing Pain became available for cast. Post patch, spamming say Searing Pain in the midst of a cast starts the GCD, it's almost like a spell knockback feeling, totally messes up timing and just feels messy not to mention. So lets say you hit Searing Pain a fraction of second before that Shadow Bolt is thrown, now the GCD has to tick down before you can use anything...
This is 100% not true. I can spam any button while a spell is being cast and it doesn't affect my GCD. I can get off a Frost Bolt followed by Ice Lance and then Fireblast basically at the same time. Remove all addons, go back to all defaults. Your buttons have a "clock" on them which is the GCD, you watch it go around and around no matter how often you click or what you're doing. It never "resets" or "sets back". I recorded me spamming all kind of buttons and watched the GCD clock go round and round, when it was at 12 it cast a spell. You can easily make it "blink" (when you try to cast a spell but can't) 4-5-6 times/GCD but it never moves back.

The thread is full of reports like that one which are simply not true (just go test it out), maybe those players are on a bad connection (post patch lag, everybody spamming their buttons like hell), are still using /stopcasting macros (what does that do now anyway? ...) or action bar addons which are causing problems.

There are plenty people who can play just fine, with very low latency and also high latency.

It will also prevent laggy people from backstabbing me from miles away, because units on their screen are in a different place than on mine. The position on the server is correct, meaning with my good connection I will get a near perfect representation of the current state of the game. Actually now thinking about it, I haven't noticed any of those weird gouges for quite a while (where the rogue ends up behind you). Nice change Blizzard!

Maybe it would help if somebody experiencing this "problem" resets their UI (kill WTF/WTB) and then try to reproduce the issue and record it. Because I *can't* make the GCD go backwards. Also quite interesting nobody has actually made a movie yet. It's like "Onyxia Deep Breath buffed".

Last edited by Veryberry : 11/15/07 at 9:24 AM.

Offline
Old 11/15/07, 10:56 AM   #10
ebbv
King Hippo
 
ebbv's Avatar
 
Troll Mage
 
Destromath
Prinsesa's description is correct. When you attempt to hit Hamstring or whatever now it will start a GCD until your client receives the Failed message.

Veryberry, maybe it's harder to see this problem with Shadowbolt due to its lower cast time. One thing I did not mention in my example above, again because I thought it was obvious and this is EJ, so the level of discussion should be higher, is that if you hit your next Fireball close to when you would have hit your /stopcasting macro in the past, the server will "queue" your request and begin the next Fireball right when the current one ends.

This may be where your confusion is coming from in saying that hitting Shadowbolt or Searing Pain during a cast does not cause a GCD. If you hit it too early, it will in fact cause a GCD which will end once the client receives the "Failed" message. So it may be very brief or very long depending on your latency. But if you hit it at the "right" time it will queue up that spell and start it when the current one ends.

Offline
Old 11/15/07, 12:01 PM   #11
Veryberry
Glass Joe
 
Draenei Shaman
 
Ahn'Qiraj (EU)
If you hit it too early, it will in fact cause a GCD which will end once the client receives the "Failed" message.
As I said, I was randomly pressing my hotkeys and and I never noticed a wait for a GCD to finish. Only when I successfully cast a spell the GCD "clock" started to go around the buttons and during that time it didn't matter how many hotkey I pressed.

Why does nobody make a movie?

Offline
Old 11/15/07, 12:26 PM   #12
Trazhenko
Don Flamenco
 
Troll Rogue
 
Illidan
They aren't talking about pressing during the GCD of a successful cast. Of course you can't do anything during the GCD. Your client knows that. The issue arises in situations where the client believes you can cast, but you really can't (i.e. every melee class trying to hit a moving target, ever).

Offline
Old 11/15/07, 12:32 PM   #13
Muphrid
Don Flamenco
 
Gnome Mage
 
Stormrage
Maybe it would help if somebody experiencing this "problem" resets their UI (kill WTF/WTB) and then try to reproduce the issue and record it. Because I *can't* make the GCD go backwards. Also quite interesting nobody has actually made a movie yet. It's like "Onyxia Deep Breath buffed".
It's fairly easy with a mage, if you have one. Conjure a mana gem and try to conjure it again. The GCD will go backwards or reset. This happens any time the server tells the client that the attempt to cast failed--not when the client stops an attempt because you failed a client-side check.

Both the client and the server check range. Even if you pass the client-side check, the server check can fail, which will reset the GCD and stop the cast. This is pretty easy to do by running towards something spamming a button the whole way. If you watch closely, you will see GCD cycle that will reset before another cast attempt succeeds.

Offline
Old 11/15/07, 12:42 PM   #14
Veryberry
Glass Joe
 
Draenei Shaman
 
Ahn'Qiraj (EU)
Originally Posted by Muphrid View Post
It's fairly easy with a mage, if you have one. Conjure a mana gem and try to conjure it again. The GCD will go backwards or reset. This happens any time the server tells the client that the attempt to cast failed--not when the client stops an attempt because you failed a client-side check.

Both the client and the server check range. Even if you pass the client-side check, the server check can fail, which will reset the GCD and stop the cast. This is pretty easy to do by running towards something spamming a button the whole way. If you watch closely, you will see GCD cycle that will reset before another cast attempt succeeds.
No.

I conjure my Gem, then try conjure the same one again (hotkey) while spamming my iAE hotkey. iAE always casts basically immediately (eg. I don't have to wait the 2*200ms a server confirmation roundtrip...?). Also while doing that the GCD clock maybe moves to 1 or 2 o'clock (like 10ms, until the bag check is done I guess).

Last edited by Veryberry : 11/15/07 at 12:49 PM.

Offline
Old 11/15/07, 12:51 PM   #15
Twid
Bald Bull
 
Twid's Avatar
 
Beepz
Human Warrior
 
No WoW Account
I get this when spamming instant cast buffs on my arena team during preparation. I can make a fraps of it when I get home, but suffice it to say, it does not appear to be just affecting casts that are not able to be performed (ie: Duplicate mana gems).

When casting a buff, and immediately following it up with another buff (taking care to start the second cast immediately after the GCD) results in a noticeable delay. The GCD for the second cast appears clientside, however after around 3-400 ms, the GCD will reset and give me an error "You can't cast that yet".

Originally Posted by Kalman View Post
Get you some purple drank and slow yo roll.

Offline
 

Go Back   Elitist Jerks » Public Discussion » Class Mechanics

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Vertical Casting Bar Gogusrl User Interface and AddOns 4 10/23/07 9:43 AM
Clear Casting Macro / mod ? kelben Class Mechanics 1 06/28/07 9:42 PM
missing casting bars Malan User Interface and AddOns 11 03/08/07 11:56 PM