Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » Class Mechanics

 
 
LinkBack Thread Tools
Old 04/17/07, 6:28 PM   #1
Ward
Piston Honda
 
Ward's Avatar
 
Elliptic
Dwarf Priest
 
No WoW Account
Latency and You

Disclaimer: This is meant to be a thread about how latency affects end-game raiding in general. We have currently only done research into a limited scope, shield block while tanking a boss mob. This was the most important to us because the main tank is a single point of failure whereas healing and dps are spread over more players/connections. I believe this is worthy of a separate thread, but if the moderators feel differently, please feel free to move it into the tanking theorycraft thread.

Background:
A couple of RL friends and I all raid together. One of us is the main tank for the guild, Prayes, and we also make up the two main healers, myself and Gian, and two top dpsers, Antlers and Eppendorf. Anyhow, we use the mod Recap to tell us a lot of information about raid performance during encounters and we noticed a crushing percentage on the Prince fight of much higher than was predicted by the one roll system giving our tank's gear (he pushes crushes off the table when shield block is up). So we decided to do some testing.

Testing:
As a side note, we found testing on Anachronus to be useless. We do not believe he behaves like a boss mob. Specifically, he didn't crush the tank at all even without shield block ever up and did not resist Antlers (a destro fire lock). So we headed to Onyxia.

Onyxia yielded better data. We had the MT keep a combat log and looked at only phase one. We used one round where the tank never used SB to calibrate the percentages and then at the end of two rounds of testing with shield block we had enough data for the statistics to yield fairly meaningful results. It was surprising what we found.

Results:
During the fight we identified that the roll system in place appeared to be a one roll system to a high degree of certainty, but this is nothing new. Gian wrote a parser to pick out the times Prayes was crushed and what buffs he had on during that time. He was never crushed when shield block was up. Out of the 11 times our tank was crushed, 2 of them were due to user error (ie Prayes had used his rage on something else and failed to activate shield block). The other 9 were due to Prayes's latency. The combat log allowed us to see when he could not initiate a move due to latency (an error message is reported in the log ... several times). He would do a move on the global cooldown and then immediately spam shield block. His latency was rather high at the time (~200 ms). So instead of activating shield block it simply returned an error message for not 200ms but 400 ms! So even if the tank were to react immediately to shield block coming off cooldown there is almost a half second window where he can be crushed. This is rather significant when tank death nowadays is usually due to spike damage (or healer incompetence {not me or Gian}) and not healers going oom (at least it seems this way in our guild).

Theory:
Our theory is that Blizzard has implemented a system in which the client is forced to check if it is "ok" to allow a move when a global cooldown is in place. Specifically, when not under the global cooldown, shield block is synchronized instantaneously, but when there is a global cooldown in effect it has a 2*latency lag before even sending the command to shield block.

Solutions (lol):
Needless to say we have banned him from using iTunes, AIM, or Vent on his desktop while tanking and he now uses a laptop to run peripheral programs while only running WoW on his desktop. We are also looking into writing macros that reprioritize the order in which his moves are activated so that shield block has priority over moves on the GCD and thus reduce the time without shield block up.

Further Implications:
We believe that all players generally experience this type of issue. This is important to any type of player that uses spells and abilities both on and off the GCD. Especially when those spells have timing issues associated with them.

Latency plays a bigger roll in the game than I originally thought. I think the current coding in the game relies too much on low latency. There are examples of problems from other classes (e.g. Arcane Missiles) that I remember Blizzard saying they cannot replicate due to their low latency-testing environment.

I'm sure Gian would be more than willing to give his parser to anyone who would like to do their own testing. I think he will be posting in this thread a little more on the technical side of the testing procedures, but I wanted to get this to the community ASAP.

I hope you've found this to be at least a little insightful and I look forward to discussing this with the EJ community.

Last edited by Ward : 04/17/07 at 8:26 PM. Reason: Miscellaneous Typos

United States Offline
Old 04/17/07, 6:37 PM   #2
thebuddha
Piston Honda
 
Human Warlock
 
Shattered Hand
Originally Posted by Ward View Post
Latency plays a bigger roll in the game than I originally thought. I think the current coding in the game relies too much on low latency. There are examples of problems from other classes (e.g. Arcane Missiles) that I remember Blizzard saying they cannot replicate due to their low latency testing enviroment.
Not sure if this is relevent to the discussion but I've had problems not getting all 5 arcane missile firings even on < 30 ms latency so I'm not really sure if it's necessary that type of problem.

Offline
Old 04/17/07, 6:41 PM   #3
thaen
Von Kaiser
 
Blood Elf Paladin
 
Frostwolf
This has ever been a problem for raiding casters, particularly those playing on US servers from overseas. My old raiding guild had many folks that played regularly with latency of 500ms or more.

I was a mage at the time, so I'm only really familiar with that aspect of it, but our raid leader's (also a mage) damage jumped about 20% when he installed FastCast for the first time. He regularly played with a 350ms lag and was, at the time, a frost mage with untalented frostbolt (3 sec cast), so the 20% damage increase corresponded exactly to the (2*latency) lag that your tank experienced.

Offline
Old 04/17/07, 7:08 PM   #4
Ward
Piston Honda
 
Ward's Avatar
 
Elliptic
Dwarf Priest
 
No WoW Account
I can't find the post right now, but a blue post that the reason not all 5 arcane missiles fire is because of a mapping process back and forth from client to server that is related to any latency that is not near 0 and the reason Blizzard cannot reproduce it is because it is costly to introduce latency into their testing process. Sorry I can't back this up with a link, but it was awhile ago and I didn't bookmark it.

As a student at a major research institution I understand both the costs and benefits of introducing latency into computer system, so I can't really blame them too much since being able to replicate latency in controlled amounts is somewhat cost prohibitive.

Sidenote: The Blizzard search algorithm for the forums is not great and the search algorithm at BlueTracker, while better, could not find it either. :-(

United States Offline
Old 04/17/07, 7:12 PM   #5
Stein
Don Flamenco
 
Worgen Rogue
 
Doomhammer
You can achieve similar result to fastcast with /stopcasting macros. Can't solve GCD problems with /stopcast though.

There is similar weirdness surrounding shortening of the GCD with haste effects. It's a shame there isn't some kind of one action queue you could enable. I think it would clear up a lot of this stuff...

Offline
Old 04/17/07, 7:14 PM   #6
Ward
Piston Honda
 
Ward's Avatar
 
Elliptic
Dwarf Priest
 
No WoW Account
Originally Posted by thaen View Post
This has ever been a problem for raiding casters, particularly those playing on US servers from overseas. My old raiding guild had many folks that played regularly with latency of 500ms or more.

I was a mage at the time, so I'm only really familiar with that aspect of it, but our raid leader's (also a mage) damage jumped about 20% when he installed FastCast for the first time. He regularly played with a 350ms lag and was, at the time, a frost mage with untalented frostbolt (3 sec cast), so the 20% damage increase corresponded exactly to the (2*latency) lag that your tank experienced.
I'm unfamiliar with FastCast, what is the theory behind what it does? Does it work on all classes or is it mage specific? I think that 20% more damage is great for a dps class, but as I mentioned earlier, tanks are a single point failure in a raid and thus having tanks with this type of mod would benefit the raid even more.

Last edited by Ward : 04/17/07 at 7:15 PM. Reason: punctuation

United States Offline
Old 04/17/07, 7:25 PM   #7
Stein
Don Flamenco
 
Worgen Rogue
 
Doomhammer
Originally Posted by Ward View Post
what is the theory behind what it does?
The theory is that the client won't let you cast a spell till the server says it's okay (which introduces the 2xlatency lag). To get around this, you can tell the client to stop the cast when it's too late to stop it from happening on the server. This let's you start your next cast much sooner.

Pre-BC, the fastcast add on would use the lag from the server's acknowledgment of the cast starting to estimate when it was okay to cancel your current spell. It would also protect your current cast from being canceled too early (there was a tunable buffer).

Some of the UI changes in BC broke fastcast. Now we have to use stuff like /stopcasting macros and supercast (does the lag estimation and shows you a "safe to cancel" zone on your cast bar).

None of this stuff works with the global cooldown though. There's no way to tell the client "lol...i was just kidding about the spell i cast 1 second ago. so...let me start casting the next one now plz."

Offline
Old 04/17/07, 7:27 PM   #8
thaen
Von Kaiser
 
Blood Elf Paladin
 
Frostwolf
Originally Posted by Ward View Post
I'm unfamiliar with FastCast, what is the theory behind what it does? Does it work on all classes or is it mage specific? I think that 20% more damage is great for a dps class, but as I mentioned earlier, tanks are a single point failure in a raid and thus having tanks with this type of mod would benefit the raid even more.
FastCast was a mod (still around, maybe?) that worked for any caster that typically chain-cast a single spell for a long duration.

It worked by using the /stopspellcasting command to step spell casting client send, so that the client could send additional commands before waiting for the spell to actually finish casting.

We hypothesized that the typical sequence went like this:
(say cast time is 3 seconds and lag is 300ms)

time 0: Caster hits Cast
time 3: Caster hits Cast again. Client says, "I'm done now, can I cast another spell?."
time 3.3: Server gets request to cast another spell
time 3.6: Client gets OK from server, starts casting again

With FastCase, it was more like:
time 0: Cast hits Cast
time 2.7: Caster hits Cast again; FastCast sends StopCasting. Client believes casting has stopped.
time 3.0: Server receives StopCasting message and new cast request; Grants request because caster is done casting. Caster doesn't actually stop casting because he's already done -- his 3 second cast time is done. Caster starts casting again right now, because his client has already stopped casting.

Something like that, anyway.

Offline
Old 04/17/07, 7:33 PM   #9
chrono
Piston Honda
 
Dwarf Paladin
 
Whisperwind
Originally Posted by Ward View Post
I'm unfamiliar with FastCast, what is the theory behind what it does? Does it work on all classes or is it mage specific? I think that 20% more damage is great for a dps class, but as I mentioned earlier, tanks are a single point failure in a raid and thus having tanks with this type of mod would benefit the raid even more.
FastCast was an old mod (functionality removed in 2.0, sadly, though it can be approximated with /stopcasting macros) to help casters with high latency cast, well, faster. It did this by using the in-game stopcasting command to tell the client to stop a cast once your cast bar had gone green. The net result of this was that your cast goes off (the bar went green, after all, signifying a complete spellcast) but you do not have to wait for server confirmation of a successful spellcast before beginning your next cast.

You can see a sort of variation of this effect if you have high latency and try to cancel a spell in the last .5 seconds or less. Your bar will go away (you could start a new cast if you so choose) but the spell will likely as not still cast, due to latency (the server calculated that your spellcast completed before it received the information that you interrupted it, and thus cast the spell - however, since you interrupted the spell client-side, you could have already started a new spell cast).

I can't imagine any of this would help your GCD issues, though you could potentially use a macro with Shield Block and xxx other ability, with a /stopcasting in between, which ensures that Shield Block always casts first (the macro will cast both spells simultaneously, but the Shield Block goes off before the GCD starts).

Offline
Old 04/17/07, 7:33 PM   #10
 sp00n
banned
 
Night Elf Rogue
 
Wrathbringer (EU)
and the reason Blizzard cannot reproduce it is because it is costly to introduce latency into their testing process.
On the contrary, it's quite simple.
Install a socks server somewhere on a remote computer and use a program like SocksCap or similar to connect WoW over the socks proxy to the actual server.

We've done that to bypass a bottleneck that occurred between the WoW server hosting company and the largest German internet provider (in fact we had been relaying the data from Germany to Austria and then back again to Germany...).

This method even was allowed by a German blue poster in the official EU forums (the link is somewhere hidden in this forum).

Although this may have some other issues that I am currently not aware of, it is a certain way to increase your ping from near 0 to near 200 (or more if you choose your destination wisely ).


Offline
Old 04/17/07, 8:05 PM   #11
Ward
Piston Honda
 
Ward's Avatar
 
Elliptic
Dwarf Priest
 
No WoW Account
The issue is not creating latency, but being able to test it as a controlled variable. It's definitely doable. There are experiments that use latency to measure the speed of light and such, so it's definitely scientifically feasible, but not trivial.

United States Offline
Old 04/17/07, 8:17 PM   #12
Vontre
Do Not Stand In The Wizards
 
Vontre's Avatar
 
Gnome Mage
 
Cenarion Circle
This has been an issue for a stupidly long time. A one-deep spell queue would do wonders for the variations in casting speed latency and the like. I had no idea the GSC was affected in this way, actually. Fairly lame. What's further lameness is that I have to make a stopcasting macro and play beatmania with my casting bar to do my maximum damage. Not having to put up with that is definitely what I miss about being a rogue - limited by energy so you don't have any macro bullshit to get your dps up.

www.magegraf.com

Raiding is full of challenge. Sometimes there is fire. You have to not be in the fire.

United States Offline
Old 04/17/07, 8:25 PM   #13
Ward
Piston Honda
 
Ward's Avatar
 
Elliptic
Dwarf Priest
 
No WoW Account
From a healer's point of view, I think (know) that the phenomena of not landing a heal on a target before they die, but still getting charged the mana for the spell even though they die and the heal never lands is some kind of latency related issue, as well. It seems like client-server coordination is something that could be markedly improved upon by Blizzard.

United States Offline
Old 04/17/07, 9:51 PM   #14
 Shifft
The man is a stock car legend.
 
Shifft's Avatar
 
Shifft
Draenei Shaman
 
No WoW Account
Yeah, rogue is a great class to play for people (such as myself) with high latency. As long as my energy bar doesn't fill up, I don't lose any DPS.

Canada Offline
Old 04/17/07, 10:56 PM   #15
Ragnor
King Hippo
 
Human Paladin
 
Blackrock
I would kill for 200ms "latency" sadly everyone playing from Australia and New Zealand plays with 400-500ms as the best ping you'll ever get most of the time. You can get 300ms in completely empty zones at odds times of the night. Latency does make a huge difference and yep the spell cast, gcd and cast bar systems are very buggy with high latency.

Australian ping pvp dagger rogues would disagree with rogues being one of the best classes for high latency

You should have seen Thaddius and Heigan with 40x 500ms players + typical Lagrock (Blackrock) peak raiding time conditions

Last edited by Ragnor : 04/17/07 at 11:04 PM.

The universe is run by the complex interweaving of three elements. Energy, matter, and enlightened self-interest.

www.retpaladin.com

Offline
Old 04/17/07, 11:03 PM   #16
 pewsey
hey there good lookin'
 
pewsey's Avatar
 
Dwarf Shaman
 
Dragonblight
Originally Posted by Shifft View Post
Yeah, rogue is a great class to play for people (such as myself) with high latency. As long as my energy bar doesn't fill up, I don't lose any DPS.
Provided you don't have to try and hit a moving target such as a dynamic PvE or PvP setting.

"You must be behind your target", and "Your target must be in front of you" are nearly burnt into the LCD of my laptop.

Melee suffers terribly in a medium to high latency connection. I find playing my mage or druid far easier than my rogue.

Sure, spanking Patchwerk is better for a rogue in PvE than a Mage/Warlock due to cast/latency interaction, but those fights are few and far between in TBC.

Pewsey has heard about tact and discretion, but tends to regard them much as children view vegetables.
There are only two kinds of MMOs: the ones people complain about and the ones nobody plays. (inspired by Bjarne Stroustrup)

Australia Online
Old 04/17/07, 11:52 PM   #17
fune
Glass Joe
 
Blood Elf Paladin
 
Cenarius
hi im fairly new to this awesome site and am trying to catch up with as many threads as possible when i came across this one. i myself play with a 400+ms most of the time and having both a lock and a mage, was wondering if anyone could post the /stopcasting marcos that have been mentioned here? often i find myself chain casting frostbolts and shadowbolts coupled with DOTs and found my casting totally lacking due to latency at times. i understand that someone prob already have posted it elsewhere could anyone maybe direct me to it?

thanks for this in advance

Offline
Old 04/18/07, 12:25 AM   #18
Joy
Piston Honda
 
Worgen Mage
 
Frostmourne
Originally Posted by fune View Post
hi im fairly new to this awesome site and am trying to catch up with as many threads as possible when i came across this one. i myself play with a 400+ms most of the time and having both a lock and a mage, was wondering if anyone could post the /stopcasting marcos that have been mentioned here? often i find myself chain casting frostbolts and shadowbolts coupled with DOTs and found my casting totally lacking due to latency at times. i understand that someone prob already have posted it elsewhere could anyone maybe direct me to it?

thanks for this in advance

You've got it yourself,

Its simply

/stopcasting
/cast (next spell name)



Personally I get a lot of UI errors using stop casting with 500ms, most problematic being my cast bar frequently not appearing. Which wouldn't be a problem for DPS but can be very worrying MT healing and praying my glowing hands mean something : - (.

Offline
Old 04/18/07, 12:34 AM   #19
Thelyna
I park my feet under my desk.
 
Thelyna's Avatar
 
Night Elf Druid
 
Dragonblight
/stopcasting
/cast Flash of Light

(especially easy for FoL/flash heal/scorch spam, wait for the gcd to complete, hit the next one. (I generally wait a fraction of a second after gcd before hitting the next one to allow for latency variation))

Trying to work an activable trinket like Lower City prayerbook gets a bit messy ... it then becomes something like

/stopcasting
/script UIErrorFrame.UnregisterEvent("UI_ERROR_MESSAGE");
/use Lower City Prayerbook
/script UIErrorFrame.RegisterEvent("UI_ERROR_MESSAGE");
/cast Flash of Light

Basically that supresses the error message "this item is not ready yet", uses the LCPB and does everything the previous macro did.

NB: this second macro is probably horribly error-filled, I'm typing it from memory.

Last edited by Thelyna : 04/18/07 at 12:43 AM.

New Zealand Offline
Old 04/18/07, 2:49 AM   #20
Pane
Piston Honda
 
Blood Elf Paladin
 
Al'Akir (EU)
I was under the impression that /script is completely disabled by Blizzard since December or so?

Offline
Old 04/18/07, 3:44 AM   #21
Thelyna
I park my feet under my desk.
 
Thelyna's Avatar
 
Night Elf Druid
 
Dragonblight
Originally Posted by Pane View Post
I was under the impression that /script is completely disabled by Blizzard since December or so?
Nope. If they removed /script completely you'd have no mods to speak of.

edit: I'm no expert, but I'd guess they've removed a lot of functionality from /script without completely removing it. You can test it yourself with a clicky trinket. Comment out the unregister/register calls, change the name of the trinket and spell (to whichever trinket/spell you're using), try it. You'll get "that item is not ready yet" in red text in your errorframe every time you hit the macro. Uncomment the script calls, run the macro again and voila no red text.

Last edited by Thelyna : 04/18/07 at 3:50 AM.

New Zealand Offline
Old 04/18/07, 4:18 AM   #22
Athemeus
Von Kaiser
 
Human Mage
 
Antonidas (EU)
In my experience, it's not feasible to use a /stopcasting makro in Raids. I've tried, but I just can't pay attention to the last 200ms of my casting bar all the time. And if you don't, you end up with less DPS or even worse: Die while paying too much attention to your castbar. *g*
I really miss Fastcast. :/

Last edited by Athemeus : 04/18/07 at 4:22 AM. Reason: typo

Offline
Old 04/18/07, 5:57 AM   #23
Zamaar
Von Kaiser
 
Undead Warrior
 
Skullcrusher
Talking about latency, a tank will drop alot in TPS with any increase in latency, since a tank is limited by GCD in 25 men, the GCD becomes effectively 2 (and up to 3 secs if your connection is fucked up or you are a long way from the servers), which can actually affect the MT chosing :/
I really find it lame, and imo the idea of queueing actions seems like a really nice idea, maybe make it only 2-3 actions so people don't just fire 23409823 frostbolts and go afk to drink a coffee, but make it 2-3 actions and that will solve so many problems!

Offline
Old 04/18/07, 6:04 AM   #24
• Chicken
Co-starring: The Egg
 
Chicken's Avatar
 
Ginakursia
Goblin Warlock
 
No WoW Account (EU)
Originally Posted by Pane View Post
I was under the impression that /script is completely disabled by Blizzard since December or so?
/script is still available as always, you just can't use /script to cast spells or target people, etc. any more.

buff /bʌf/ Pronunciation[buhf]
–verb (used with object)
- to reduce or deaden the force of

Netherlands Offline
Old 04/18/07, 7:51 AM   #25
kaellie
Glass Joe
 
Draenei Shaman
 
Archimonde (EU)
the worst death I had with latency displayed something like this in the logs :

gruul hit you for 10k ( crushing)
you die and get 10% durability lost
some paladin heals you for 4k
you gain shield block

those 4 lines were timestamp in the same second and in that order ...

Offline
 

Go Back   Elitist Jerks » Class Mechanics

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Latency and Auto-Attack mydoom The Dung Heap 2 06/27/07 11:24 PM