How dumb is the client really?
#1
A question, has anyone ever looked at the client to see how "dumb" it really is? Is any calculations or activities done on the client (for example in parallell to the server) at all? It is obvious that the client has some authority over the server on for example the location of the character, but does it extend to other things? Does the client calculate any of the character stats on its own for example? Or does it completely rely on information by the server? An example could be calculating the damage shown on character screen based on say, Attack Power based on strength (or whatever). Does the client perform any of those for showing or is it sent from server?

I am not implying it overrules the server or if there is such issues, but more along the line to see if it would be possible to find formulas and such (which might or might not be correct or in agreement with the server ones). Classic examples would be in Diablo were the game had calculations for, say, spell damage for showing in the screen that had nothing to do with the actual calcs when you actually cast the spells, however, in many cases it gave the same result and at least was better than no info at all.

Any input? Has anyone looked at this or know of people/sites that have?
There are three types of people in the world. Those who can count and those who can't.
Reply
#2
Not an answer to your question, but in some cases it CAN and WILL overrule the server. That's the source of the infamous exploit some gold farming operations were using to power level characters to 60. They'd break the connection for a moment and then have the client tell the server, "Hey, I'm over by this hippogryph egg in Feralas!"

...and the server believed the client.

Then the same would be done after looting an egg, instead saying "Hey, I'm over here by the NPC who wants eggs in Gadgetzan!" Again, the server would believe the client and teleport them over. Instant quest turnin that takes all of 20 seconds, and it could be repeated ad absurdum.

The first thing I thought when I read your subject line was "Not as dumb as the server..."
See you in Town,
-Z
Reply
#3
Zarathustra,Mar 15 2006, 12:55 PM Wrote:Not an answer to your question, but in some cases it CAN and WILL overrule the server. 
[right][snapback]104676[/snapback][/right]

One of the cases where this is actually having significant effect on normal players is the fact that the client determines the falling damage you take when you jump from a height into water. If your client is late to load water, as many clients are, it will determine your fall as if the water wasn't there - as if you jumped directly into the floor - and apply falling damage accordingly (probably killing you).
Reply
#4
Skandranon,Mar 15 2006, 11:49 AM Wrote:One of the cases where this is actually having significant effect on normal players is the fact that the client determines the falling damage you take when you jump from a height into water.  If your client is late to load water, as many clients are, it will determine your fall as if the water wasn't there - as if you jumped directly into the floor - and apply falling damage accordingly (probably killing you).
[right][snapback]104686[/snapback][/right]

Like jumping into Inner Mauradon. :wacko:
Turambar - Fury Warrior - Twisting Nether
NenyaAdamant - Shadow Priest - Proudmoore
Lum - Shadow Priest - Stormrage

TheLuminaire.net
Reply
#5
Skandranon,Mar 15 2006, 03:49 PM Wrote:One of the cases where this is actually having significant effect on normal players is the fact that the client determines the falling damage you take when you jump from a height into water.  If your client is late to load water, as many clients are, it will determine your fall as if the water wasn't there - as if you jumped directly into the floor - and apply falling damage accordingly (probably killing you).
[right][snapback]104686[/snapback][/right]

The 'punt' from Winterspring to Caer Darrow I usually fatal to me for that reason. It is also rather problematic to be taking the teleport into middle of the Maraudon for the same reason. Death by the time my client finishes loading all the data including that there was supposed to be water underneath me when I got there.
Reply
#6
Jarulf,Mar 15 2006, 09:15 AM Wrote:Any input? Has anyone looked at this or know of people/sites that have?
[right][snapback]104650[/snapback][/right]

I have not looked into it, but do have an incident from the early closed beta test (phase 1) to relate. Most scoffed at what it meant, but do consider the implications for what you are asking even though a lot how the game works has changed since then.

During that first part of beta the servers were very unstable and you could have some them failing while other servers continued to work fine. One incident that happened was that basically the world server for environment and mobs basically quit responding to any interaction with the clients, but the chat servers still functioned fine. There had been very little indication that this happened other than the players around you stopped moving or any other activity. They just stood where they were when this happened, but the mobs that were in your perception range were still there and continued as normal. This included my being able to have combat and kill 2 of them before I myself was killed (accidental multi-mob pull and rest of party non-reactive from my point of view). To me this pointed that the client still has a fair amount of the combat information at its disposal for handling a situation and is most likely only dependent on periodic syncronization signals from the server to stay on track with what really should be happening. After about 15-30 seconds pretty much everyone that was on was stuck where they at and unable to move; I would guess from the lack of sync signal. To me it looks probable that a lot of what you want is buried in the client.
Reply
#7
Ruvanal,Mar 15 2006, 04:16 PM Wrote:I have not looked into it, but do have an incident from the early closed beta test (phase 1) to relate.  Most scoffed at what it meant, but do consider the implications for what you are asking even though a lot how the game works has changed since then. 

During that first part of beta the servers were very unstable and you could have some them failing while other servers continued to work fine.  One incident that happened was that basically the world server for environment and mobs basically quit responding to any interaction with the clients, but the chat servers still functioned fine.  There had been very little indication that this happened other than the players around you stopped moving or any other activity.  They just stood where they were when this happened, but the mobs that were in your perception range were still there and continued as normal.  This included my being able to have combat and kill 2 of them before I myself was killed (accidental multi-mob pull and rest of party non-reactive from my point of view).  To me this pointed that the client still has a fair amount of the combat information at its disposal for handling a situation and is most likely only dependent on periodic syncronization signals from the server to stay on track with what really should be happening.  After about 15-30 seconds pretty much everyone that was on was stuck where they at and unable to move; I would guess from the lack of sync signal.  To me it looks probable that a lot of what you want is buried in the client.
[right][snapback]104693[/snapback][/right]


Situations like that still happened after release too. Most vivid memory for me was I was on a flight from X-roads to 1K needles when something like that happened. Treesh was actually still killing stuff and had the same thing you basically describe happen to her. I landed in 1K needles and there were no NPCs and she finished killing her last mob. We were both chatting in guild and general. She was of course unable to loot the mobs (got stuck in wonderful loot lag) They restarted the servers after that one.

Gnolack also explored all of the badlands at L15 when a similar thing happened. No mobs I ran around got stuff mapped, and client showed the exp. There was again another server restart and rollback but I still had half of the badlands explored and the experience for it so some of the feedback was still working. Situation lasted for a good 10-15 minutes, I think the rollback was only about 5 minutes for the characters though.

But yeah I imagine a lot of the info is in the client code. You don't get the ghost towns anymore, but the release servers weren't super stable either. And Blizzard has stated that each server is a cluster so it's very possible for the chat server to be fine and item server to be toasted, etc, and when you are in a situation like that you do see the client can do a lot of prediction including combat and exploration.
---
It's all just zeroes and ones and duct tape in the end.
Reply
#8
In regard to some of the "strange" behaviour, like geting exp for exploring when no monsters, it is possible that servers actually still di dwork, just not populating the world.

The other possibilities is that Blizzard has made (the misstake) of puting quite a lot of trust into the client, and then hoping they can prevent cheating and exploit through their monitoring techniques (like the Warden) and perhaps through keeping log files for activities. This is in my opinion a dangerous option of taken.

The fact that the client controlls the position of the character seems obvious. One result is of course that the person playing never experience "snap back" to another position during play or that the character stop moving arround. Although at times it is obvious that there is not completel synchronization. I experience at times that the game tell me that the monster needs to be in front of me to cast the spell, when in fact on my screen the monster has been clearly in front of me, same with looting, I got the loot icon but the game told me I had to be closer. This is an issue of the monster being controlled by the server though, but still.

It seems strange that there is (or was no) reality check at all on the location given by the client though, seems strange one should be able to jump arround the whole continent in seconds like in the egg exploit. It seems reasonable to have at least a check for reasonable distance moved since last location reported or something like that. Oh well.

The fact that falling can cause death if the client "misses" the water seems to me the most strange one. It indicates not only that the client can kill the character, but also inflict the damage on at least itself without any recheck or interuption by the server, this seems VERY strange.

All this is outside what I was wondering about but it is of course still helpfull information.



There are three types of people in the world. Those who can count and those who can't.
Reply
#9
Jarulf,Mar 16 2006, 09:58 AM Wrote:The fact that the client controlls the position of the character seems obvious. One result is of course that the person playing never experience "snap back" to another position during play or that the character stop moving arround.
I would not have expected the client to have that type of control. Well now that I know, would it be possible to write an addon that lets your character teleport to where you click on a map (Something blizzard should have built in anyway)?

And yes, I am aware that Blizz would most likely not tolerate such an addon.
"Always code as if the guy who ends up maintaining, or testing your
code will be a violent psychopath who knows where you live."
Reply
#10
jhartelt,Mar 18 2006, 01:51 PM Wrote:I would not have expected the client to have that type of control. Well now that I know, would it be possible to write an addon that lets your character teleport to where you click on a map (Something blizzard should have built in anyway)?

And yes, I am aware that Blizz would most likely not tolerate such an addon.
[right][snapback]104898[/snapback][/right]

There's a video floating around at the moment showing such a third-party app (not an addon). It features a hunter demonstrating the use of a teleport-hack program to solo kill King Gorduk and Tendris Warpwood in Dire Maul.

Hopefully the publication of a video demonstrating the exploit will make Blizzard get their finger out and fix it. If their server code depends that strongly on the client being able to control a character's position, then they're a bunch of incompetent idiots. And I'm sure they're not. There is no excuse for implicitly trusting the client's opinion of where you are, especially when it seems to have such little regard for z-axis movement.
You don't know what you're talking about.
Reply
#11
lfd,Mar 18 2006, 04:12 PM Wrote:There's a video floating around at the moment showing such a third-party app (not an addon).  It features a hunter demonstrating the use of a teleport-hack program to solo kill King Gorduk and Tendris Warpwood in Dire Maul. 

Hopefully the publication of a video demonstrating the exploit will make Blizzard get their finger out and fix it.  If their server code depends that strongly on the client being able to control a character's position, then they're a bunch of incompetent idiots.  And I'm sure they're not.  There is no excuse for implicitly trusting the client's opinion of where you are, especially when it seems to have such little regard for z-axis movement.
[right][snapback]104900[/snapback][/right]

People have been doing this since beta.
"One day, o-n-e day..."
Reply
#12
SwissMercenary,Mar 18 2006, 11:50 PM Wrote:People have been doing this since beta.
[right][snapback]104906[/snapback][/right]

They haven't, as far as I know, been releasing videos of it.
You don't know what you're talking about.
Reply
#13
lfd,Mar 18 2006, 04:12 PM Wrote:If their server code depends that strongly on the client being able to control a character's position, then they're a bunch of incompetent idiots.  And I'm sure they're not.  There is no excuse for implicitly trusting the client's opinion of where you are, especially when it seems to have such little regard for z-axis movement.
[right][snapback]104900[/snapback][/right]

Signs point to them being a bunch of idiots.

My only guess is that they had to make compromises for scale/performance reasons.

Considering they have a long history with this type of stuff (Diablo realms), I assumed that they would have figured these types of things out. Maybe turnover has been harsh.
Reply
#14
fractaled,Mar 19 2006, 02:15 AM Wrote:Considering they have a long history with this type of stuff (Diablo realms), I assumed that they would have figured these types of things out.
In Diablo2 the server controls the position of characters and monsters alike, right? I just thought, that it must be that way in WoW, too, because otherwise they are open for lots of manipulations.

And I should clarify my intention. I do not want to spend countless hours on griffon's/bat's back. It would be much more convenient to be able to click on a town or dungeon and be there instantly. A feature to teleport to any location instantly is not really needed IMO.
"Always code as if the guy who ends up maintaining, or testing your
code will be a violent psychopath who knows where you live."
Reply
#15
lfd,Mar 19 2006, 12:10 AM Wrote:They haven't, as far as I know, been releasing videos of it.
[right][snapback]104907[/snapback][/right]

But they have been bragging on publically accessable forums about it. Ones that Blizzard takes steps to shut down. Odd, no? :rolleyes:
"One day, o-n-e day..."
Reply
#16
jhartelt,Mar 19 2006, 04:45 PM Wrote:In Diablo2 the server controls the position of characters and monsters alike, right?

MOstly yes. I believe there was quite some control when released, but they tightened it up to combat exploits. This can easilly be seen when you had lag, and your movement didn't reach the server or there was some slight desynch. After a while, the server would correct your position and snap you back to some earlier position (the client typically allowed itself to play on its own for a while and then correct itself).



jhartelt,Mar 19 2006, 04:45 PM Wrote:I just thought, that it must be that way in WoW, too, because otherwise they are open for lots of manipulations.

One reason you want the client to have some control is to avoid such snaping and teleporting arround of the character as the server constantly update your client on the correct position. If you want NO control by the client, it always has to wait for data to travell from client to server and back before your char can do anything, this causes horrible player experience playing and almost constant lag feeling. So you allow the client to play on based on its own info and hope it matches the server. Small differences and small bad guesses by the server, for example, will the monster move and cause changes to what you can or did a spell slow you down can make your client differ slightly and you constantly is adjected arround. The alternative is to allow your client to have some control and have the server correct you arround by small ammounts if needed.

This type of things also allow you to continue to run when you have a longer lag or connection interuption. Imagine everytome there was a 2 second lag, your character stop running for 2 seconds. Instead the server accept that your client said you was running on for those 2 seconds.

Of course it opens up for some exploits and problem, but it is a balance act to make the play enjoyable and not frustrating. There need to be lots of sanity checks though which seems to in part be missing. For example, someone running arround in Felwood should not suddenly be allowed to tell the server the character is now in Tanaris. However, were to draw the line? For full exploit, figitng a boss may only require you to teleport far enough to avoid melee attacks. Even though spells home in on you across continents (have happened when I die and res at graveyard and then for eacmple hearthstone far away, a minute or two later, spells come flying and hit me, happened last week to me)! So if you teleprt arround slightly just fast enough, spells won't hit you either, at least not until later and so on. I guess one can add tests to not allow the client to correct your position to often but it is not that trivial.

I am personally starting to believe Blizzard has put a WHOLE lot of faith into their warden protection and similar other protection scheems and that the client actually might be in a bit more control than we think although I have no idea and really am not interested to look into such things. I have always been more of a "look at formulas type of guy" :)

jhartelt,Mar 19 2006, 04:45 PM Wrote:And I should clarify my intention. I do not want to spend countless hours on griffon's/bat's back. It would be much more convenient to be able to click on a town or dungeon and be there instantly. A feature to teleport to any location instantly is not really needed IMO.
[right][snapback]104916[/snapback][/right]

Such a thing is trivial to check against though and if there is no such checks, I guess they will add it as soon as people possibly exploit it. I also think Blizzard might do a bunch of logging and it is probably not without great risk for your account to mess arround with such things.

As a side not, I would never help anyone use or develop such cheats as you propose, even if I knew how to do it. Such things ARE cheating for sure :angry:
There are three types of people in the world. Those who can count and those who can't.
Reply
#17
Just as a followup. THIS is how stupid the server is.
See you in Town,
-Z
Reply
#18
Zarathustra,Mar 20 2006, 11:10 AM Wrote:Just as a followup.  THIS is how stupid the server is.
[right][snapback]104957[/snapback][/right]

ugh
--Mav
Reply
#19
Mavfin,Mar 22 2006, 04:55 PM Wrote:ugh
[right][snapback]105189[/snapback][/right]

Yep, it's that bad. That's why, on my server, the class books for Dire Maul trinkets now have a buyout for 1g in the auction house. And there are approximately 20 of each class.

Foror's Compenium of Dragonslaying has gone down to around 500g. There are currently 10 listed.

I refused to believe it's THAT difficult for a Blizzard employeed to enter Dire Maul instances when they see a single hunter inside and watch for this kind of behavior. Gah! But that's another thread. Don't want to hijack this one.
See you in Town,
-Z
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)