What is Desync? (A thorough explanation)
" Is it not also possible to rewrite the code to transmit the data more efficiently/compressed/etc. so as to be able to sync more often without significantly increasing bandwidth requirements? " I'm not a coder, but I'm unaware of any game that has the "entire" state on the server side. Client/server games of any type require the server send their state to the client, which takes time. The client then reacts and the reaction is sent to the server, again taking time. This leads to a potential for desync to *some* degree, only mitigated by how much/little has to be synced and how efficiently it is synched. Thus, the mitigation previously mentioned. Please familiarize yourself with the Greater Internet Fuckwad Theory (GIFT) - http://www.penny-arcade.com/comic/2004/03/19
Realize that the only part of the equation you can affect in the GIFT is the audience. Remove the audience and the trolls merely rant at the air. |
|
" This has nothing to do with how efficiently the server and client communicate with eachother, if it was it would have been solved long ago (and not persisting ever since the game was in alpha). Desyncs happening are completely outside of GGG's control, its a fact of networking. The problem happens because the server and client disagree with what the game state is (and this happens because there is the state for the same elements on both the client and sever). Making code more efficient is not fixing this. The only thing that compression/reducing amount of data transmitted (which I am pretty sure PoE has done as much as they can in this area) is reduce the delay/latency and stress on their servers, which is completely unrelated. This issue is there because GGG fundamentally designed PoE to have 2 states for everything (movement, spells, health etc etc), one on the server, one on the client, and PoE was pretty much designed with this in mind. It is a networked multiplayer game after all, the netcode isn't just bolted on " Almost entire state, yes. At best, movement may be client side (I think this is how it works with WoW), but basically everything else is done on the server. All logic for the game (casting spells, hitting someone with a fireball which reduces their health, etc etc) is all done server side. The client is just basically a graphical frontend to the server, thats specific for your character EDIT: actually for WoW, the movement is client side (which is actually the same reason why speed hacks exist in WoW, anything that is client side can be hacked). However everything else (casting spells, taking damage, taking mana etc etc) is all server side. iirc WoW is also completely TCP based Last edited by deteego#6606 on Feb 21, 2013, 4:04:35 AM
|
|
" So you don't see how more efficient communication between client and server could lead to more frequent communication? Which, in turn, reduces the amount of desync possibilities as the client and server are talking more frequently and updating each other more frequently? Think about it, if they limit current communication to once every 10 seconds (completely bullshit number pulled from the air to make for easy math) due to bandwidth limitations and they find a way to halve the bandwidth used when syncing, they could then theoretically make the synch happen every 5 seconds with zero net change in total data transmitted/bandwidth used. I think that barring a complete rewrite, efficiency and server scaling (to better handle the load of more frequent syncs) is the key. I know from a personal perspective that my desynch issues have improved after every patch and I very rarely notice the problem any more. In my mind, that makes it appear something is actively being done about the issue. Please familiarize yourself with the Greater Internet Fuckwad Theory (GIFT) - http://www.penny-arcade.com/comic/2004/03/19
Realize that the only part of the equation you can affect in the GIFT is the audience. Remove the audience and the trolls merely rant at the air. |
|
All I know is when im getting "desync'd" I get crazy ping like 600-2000. Thats how bad it is. This started just before ob when ggg started load testing the servers. Its been like this since. To me this has everything to do with server not able to handle heavy load, rather than this hit/miss tactical positioning spin, nice try tho. |
|
" I just explained why you are wrong Look you just said you are not a programmer, so don't punt on things you dont understand |
|
" You offered what appears to me to be an incomplete analysis of the situation. I'm not a programmer, but I *am* an IT professional and I understand bandwidth and things of that nature. Thus, if desync is caused by the client/server having their own version of the game that get out of sync with each other due to lack of communication between the two units, why would bandwidth optimization followed by faster sync between the client and server devices NOT alleviate the problem? Desyc happens when the client and server each think different things have happened because they haven't synced (talked to each other via data transfer) often enough. Increase the frequency with they talk to each other and you reduce the chances they think different things are happening, simple enough. Now, if all you do is increase the frequency they talk without reducing data size, you're increasing load on the server, and the servers are already stressed, so GGG cannot just make them talk more often to resolve the issue without damaging server stability as a result. Thus if you decrease data size transmitted during their chatter, you allow for the server to handle more frequent communication with less stress. I think your problem is in thinking "client and server have their own state and can never agree!" when in fact the reality is that while they each have their own state, they reconcile their differences every time they sync. When the differences are reconciled, the server 'wins' any arguments, causing the client to see screwy things when mob positions are changed, etc. I offer that I am not a programmer in that I mean I could not do anything useful with the netcode were it in front of me, nor do I know specifically what you can do to optimize network traffic during sync. I just know that less traffic being sent allows for more sending with the same load levels. Please familiarize yourself with the Greater Internet Fuckwad Theory (GIFT) - http://www.penny-arcade.com/comic/2004/03/19
Realize that the only part of the equation you can affect in the GIFT is the audience. Remove the audience and the trolls merely rant at the air. |
|
thanks for the explanation :)
|
|
ITT: The salty tears of spoiled children.
I play from SA and I'm quite well acquainted with all forms of lag/desync/disconnects. Doesn't even bother me lol. Good explanation OP. +2 internets |
|
To the OP - Very nice post, explained it well and I feel like I've learnt a more in-depth knowledge of de-syncing from it.
adania/93 --- ElementalNecro/91 --- GwanSauceMan/90
ScionFakeWitch/88 --- WikiWikiWitch/87 --- LArrowToTheKnee/83 Lethal_Injection/80 [b color="#FE2EC8"][b color="#FFAC12"][/b] |
|
very usefull thread explaining why most things should happen clientside and not serverside like they do now...thank you
|
|