When we think of anything thats client->server, it has to be in sync, we send in info that we want to attack, server checks if its ok, then it sends it back, we get it and attack, however, this is NOT how combat works, when you use an attack, you use the attack right away. It sends the information to the server, but it does not wait for the server for it to happen. (so the server is always checking to see if it was legal, but you dont have to wait for the server to tell you it was) So your doing combat without lag.
I read this awhile ago, and not sure why I didnt make a thread, as I have yet to see anyone talking about this. This is great news for people with bad connections, and those who want to play on other servers.
Seems pretyy cool...untill Im fighting adn fighting and fighting....suddenly I stop killing things everything stops moving...I get the great "SORRY BUDDY I DROPPED YO ASS!" then you log back in and find your character died.. but oh wells I dont think this problem will be "frequent" for me but oh well.
Rollback Post to RevisionRollBack
www.myspace.com/mpotatoes for all your Trans Siberian Orchestra listening pleasure
If you want to arrange it
This world you can change it
If we could somehow make this
Christmas thing last
By helping a neighbor
Or even a stranger
And to know who needs help
You need only just ask
The problem I see with that is that we will still have lag between other players in coop, so if you have a high ping with that server (I will no matter what, living in Australia), then you'd have to take into consideration that if you start shooting at this one monster, even though you don't see it yet, the others are probably shooting it down too so by the time you actually get to it, the creep is already dead.
It's overstated. Latency still matters as much as in any modern game. It's just less the case than the ancient client prediction code D2 is running on.
That may mitigate latency somewhat, but I've definitely had periods where I lagged briefly between every attack, and had long periods of doing nothing due to lag. So it certainly can still affect your combat.
Blizzard thinking they can make the client do work and check if it was "tampered" with.
Overconfidence. Hackers will be happy.
Its hilarious that they think putting such a blatant flaw will not be abused, as if they really believe its full proof. I'm quite amused.
No, this is no less secure than having it wait, all the data is still being checked, a monster still don't die unless the server said it was ok. Aka the server is still doing all the client calculations right along with you, we also don't know all the details, they wouldn't risk it.
That may mitigate latency somewhat, but I've definitely had periods where I lagged briefly between every attack, and had long periods of doing nothing due to lag. So it certainly can still affect your combat.
Sounds more like Sever lag than lag on your side, people reported 600ms latency with no delay in casts ( lag was felt in other areas but was way more playable.
Blizzard thinking they can make the client do work and check if it was "tampered" with.
Overconfidence. Hackers will be happy.
Its hilarious that they think putting such a blatant flaw will not be abused, as if they really believe its full proof. I'm quite amused.
Actually, this is a really silly claim to make. Do you think Blizzard would do this if they didn't have a very strong plan to prevent tampering?
Unless you think it is news to them that people will attempt to cheat. In which case your pretty misinformed.
With that said, all actions are checked for verification by the server, if it detects tampering (which they obviously have built a system that can do this effectively) then it voids the action and disconnects the user, possibly flagging their account for review.
There is one method I am aware of that involves sending clients randomly generated numbers to use in calculations, and to cut a long technical story short, it knows what the outcomes should be and if they are tampered with, it knows.
Blizzard thinking they can make the client do work and check if it was "tampered" with.
Overconfidence. Hackers will be happy.
Its hilarious that they think putting such a blatant flaw will not be abused, as if they really believe its full proof. I'm quite amused.
Why wouldn't it? Just have both the client and server make redundant checks, and allow the client to use skills immediately. If the server disagrees with anything, it undoes whatever the client did. I don't see why it can't be like ordinary server-side checking in any other way.
How are you going to tamper with the system? If the actions on the client don't add up you just get disconnected. Boo-hoo.
So far we don't even know how far this system goes. Can a monster die client side? I doubt it. Damage yes, dying, I doubt it.
Rollback Post to RevisionRollBack
"Traitors! Even in death, the armies of Khanduras will still obey their king!"
Well of it dosnt die that would be kind of pointless ( hints the article says all calculations ) so I think a monster can die client side ( just have to wait till server confirms to drop the loot
Being one of those who's gonna play single player my first time thru (I really explore every nook and cranny there is to explore, going my own pace) this is indeed really great news! Thanks
Unless Blizzard plans to deploy a private communication medium capable of propagating information >c at each customers premise then they didn't solve a thing.
Bestowing clients authority in relation to any facet of the game-state is a blatent security hole irrespective of any magical "anti-tampering" they think they've come up with.
Warden was hardly a challenge; I hope this one will be.
When we think of anything thats client->server, it has to be in sync, we send in info that we want to attack, server checks if its ok, then it sends it back, we get it and attack, however, this is NOT how combat works, when you use an attack, you use the attack right away. It sends the information to the server, but it does not wait for the server for it to happen. (so the server is always checking to see if it was legal, but you dont have to wait for the server to tell you it was) So your doing combat without lag.
Technically Diablo II didn't require explicit acknowledgement for "combat" either (if we defined combat as movement and skill* usage)
Well of it dosnt die that would be kind of pointless ( hints the article says all calculations ) so I think a monster can die client side ( just have to wait till server confirms to drop the loot
So you attack a dead monster, despite your party having it killed already, but you haven't gotten the update for it.
Not ideal I suppose.
Rollback Post to RevisionRollBack
"Traitors! Even in death, the armies of Khanduras will still obey their king!"
This is just modern predictive netcode. It's not anything revolutionary and definitely not anything different from what you see in World of Warcraft, Starcraft 2, Modern Warfare, Halo (3 and newer), or any other well-designed multiplayer game. (Imagine micro'ing your sentries and templar with Diablo II netcode - it would be awful)
The game runs in parallel on the client and the server, but only what happens on the server "counts" for damage, deaths, loot, etc. The client uses predictive code to estimate what is going on on the server, and what you see on screen is a prediction of what is really going on on the server. It is entirely possible for the client and server to desynch, such as damage or heals landing on someone who is already dead. In some games this will just cause what you see on screen to be inaccurate. For example, in WoW it is very common to get "healed", but in reality you died before the heal landed so you die a split second later. In other games like Starcraft 2 or most Xbox Live games, desynchs will cause the game to pause until everyone's clients catch up with the server.
If you have heard any of Bungie's talks about multiplayer co-op, they put a TON of effort and forethought into making it easier for game clients to predict the behavior of AI-controlled enemies. In Halo ODST and Reach the AI is completely non-random and has a finite delay after making any decisions (less than a second, but longer than average latency) so that the game's predictive code can be nearly 100% accurate in anticipating AI behavior. It is very likely that Diablo 3 AI behaves the same way - so when your client recieves info on where the monsters were 200ms ago, it has a very good idea of where the monsters are now. Because AI is predictable, predictive netcode can be vastly more accurate in a PvE situation than in a PvP situation.
As far as exploitability by cheaters, it depends entirely on how stringent the client-server checks are. Many games including WoW do not enforce stringent server-side checks on player movement, so you can feed the server with erroneous position data to speed up movement or even teleport through objects. However, it is ludicrously easy for other players to tell that you are hacking, and WoW GMs will ban you very quickly. In a game where people could make thousands of dollars by selling loot, you better'd believe that there will be GMs watching high-volume item farmers... anyone who is caught hacking will be punished strictly.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Please check out the full article here
I read this awhile ago, and not sure why I didnt make a thread, as I have yet to see anyone talking about this. This is great news for people with bad connections, and those who want to play on other servers.
If you want to arrange it
This world you can change it
If we could somehow make this
Christmas thing last
By helping a neighbor
Or even a stranger
And to know who needs help
You need only just ask
This is great news for "single player" though!
Thanks for the info, Molsterr! :Thumbs Up:
Overconfidence. Hackers will be happy.
Its hilarious that they think putting such a blatant flaw will not be abused, as if they really believe its full proof. I'm quite amused.
No, this is no less secure than having it wait, all the data is still being checked, a monster still don't die unless the server said it was ok. Aka the server is still doing all the client calculations right along with you, we also don't know all the details, they wouldn't risk it.
Sounds more like Sever lag than lag on your side, people reported 600ms latency with no delay in casts ( lag was felt in other areas but was way more playable.
Actually, this is a really silly claim to make. Do you think Blizzard would do this if they didn't have a very strong plan to prevent tampering?
Unless you think it is news to them that people will attempt to cheat. In which case your pretty misinformed.
With that said, all actions are checked for verification by the server, if it detects tampering (which they obviously have built a system that can do this effectively) then it voids the action and disconnects the user, possibly flagging their account for review.
There is one method I am aware of that involves sending clients randomly generated numbers to use in calculations, and to cut a long technical story short, it knows what the outcomes should be and if they are tampered with, it knows.
So far we don't even know how far this system goes. Can a monster die client side? I doubt it. Damage yes, dying, I doubt it.
Bestowing clients authority in relation to any facet of the game-state is a blatent security hole irrespective of any magical "anti-tampering" they think they've come up with.
Warden was hardly a challenge; I hope this one will be.
Technically Diablo II didn't require explicit acknowledgement for "combat" either (if we defined combat as movement and skill* usage)
* A notable exception being teleport
So you attack a dead monster, despite your party having it killed already, but you haven't gotten the update for it.
Not ideal I suppose.
The game runs in parallel on the client and the server, but only what happens on the server "counts" for damage, deaths, loot, etc. The client uses predictive code to estimate what is going on on the server, and what you see on screen is a prediction of what is really going on on the server. It is entirely possible for the client and server to desynch, such as damage or heals landing on someone who is already dead. In some games this will just cause what you see on screen to be inaccurate. For example, in WoW it is very common to get "healed", but in reality you died before the heal landed so you die a split second later. In other games like Starcraft 2 or most Xbox Live games, desynchs will cause the game to pause until everyone's clients catch up with the server.
If you have heard any of Bungie's talks about multiplayer co-op, they put a TON of effort and forethought into making it easier for game clients to predict the behavior of AI-controlled enemies. In Halo ODST and Reach the AI is completely non-random and has a finite delay after making any decisions (less than a second, but longer than average latency) so that the game's predictive code can be nearly 100% accurate in anticipating AI behavior. It is very likely that Diablo 3 AI behaves the same way - so when your client recieves info on where the monsters were 200ms ago, it has a very good idea of where the monsters are now. Because AI is predictable, predictive netcode can be vastly more accurate in a PvE situation than in a PvP situation.
As far as exploitability by cheaters, it depends entirely on how stringent the client-server checks are. Many games including WoW do not enforce stringent server-side checks on player movement, so you can feed the server with erroneous position data to speed up movement or even teleport through objects. However, it is ludicrously easy for other players to tell that you are hacking, and WoW GMs will ban you very quickly. In a game where people could make thousands of dollars by selling loot, you better'd believe that there will be GMs watching high-volume item farmers... anyone who is caught hacking will be punished strictly.