Client-server Action Synchronisation

after reading this post, i started to think about this problem by my self.

i can understand, that the moba system seems to feel bad for a arpg and that it isnt an alternative for poe.
if there are already methods to sync the player with the server (there seems to be 2 ways, /oos done by the player itself and a server side method), why dont u sync the player automatically in a default time? to pick up your example with a 200ms latency, you could set a sync command for all players in the world at ~200ms. this command wont be send by the client side, it has be send by the server itself. so the server will sync the player in the example every two replies of the server. or maybe it could set to the latency of the players?

this could feel maybe a bit strange, when the character seems to "lag" cause of the "teleport - sync movements". so there could be done a area of effect for the sync. it should be set so a radius of xy around the char and if its out of this area, he has to get a resync in the next massage to the client.

i think the system work like this, but to slow! i got my self desyncs which are >1second and desyncs while using the quicksilver flask can be >1 screen (and synced at least because i pushed my self /oos). i dont know much about the game traffic between the server and the client, but is it to much to send every ~200ms the server position to the client?
so the client could decide on its own, if the player needs a sync, or not.

Last edited by lain91 on Jan 12, 2015, 3:20:59 AM
"
lain91 wrote:
this could feel maybe a bit strange, when the character seems to "lag" cause of the "teleport - sync movements". so there could be done a area of effect for the sync. it should be set so a radius of xy around the char and if its out of this area, he has to get a resync in the next massage to the client.

i think the system work like this, but to slow! i got my self desyncs which are >1second and desyncs while using the quicksilver flask can be >1 screen (and synced at least because i pushed my self /oos). i dont know much about the game traffic between the server and the client, but is it to much to send every ~200ms the server position to the client?
so the client could decide on its own, if the player needs a sync, or not.


If you just blindly resync every 200ms the game will become pretty much unplayable. Given the usual amount of X ms latency, the client would resync to a state X ms old and have to either predict what is about to happen or resync again after 200ms. Basically, the game would stutter.

Furthermore, the amount of traffic generated would most likely exceed GGG's available bandwidth. Keep in mind that this is not just about player position, but also about mobs, projectiles etc.

The approach for fixing desync has to be two-fold: You have to avoid situations that create desync where possible and identify situations where desync becomes critical.

Avoiding desync is basically only possible by removing mechanics from the game. If there is no ground clutter, you cannot get stuck on a twig, thus the chance for the client and the server making the same guess is higher. There are, of course, exceptions in turn of simply bad network code logic, as I am fairly sure is the case with strongboxes.

Identifying critical desync has to be done using sanity checks. For instance, if you are stunned the server will send a resync package along - since you're standing still anyway the chance of the resync causing new desync is small. An obvious example where this kind of check is lacking is Dominus Touch of God ability, that can (and will) kill you offscreen or in the middle of his ghost attack animation. I for one believe that there are lots of cases where GGG could improve the game experience, but unfortunately they don't share much and we're left guessing.
thanks for this ,it was very enlightening i can say.I am kinda used to desync now but i see some new players in the game whinning about it and all i do is to send a link to this forum :D

all i can say is that u give your souls to this i can see that so what we all have to do is leave the matter to your hands u will deliver as always :D
Last edited by kredel on Jan 19, 2015, 9:55:17 PM
Man, all of this bollocks:
"
Chris wrote:
Trust the client. This means people can cheat, but the results are instant. We will not do this.

And it turns out that people can cheat anyway:
http://www.pathofexile.com/forum/view-thread/1181189
"
Chris wrote:
Users who ran cheating software such as maphacks have not been awarded Alternate Art Demigod's Eyes.


We need a Scumbag Steve image macro for GGG which says:

Won't fix desync by trusting client because worried that it will make it possible for people to cheat.

Possible for people to cheat anyway.
"
Man, all of this bollocks:
"
Chris wrote:
Trust the client. This means people can cheat, but the results are instant. We will not do this.

And it turns out that people can cheat anyway:
http://www.pathofexile.com/forum/view-thread/1181189
"
Chris wrote:
Users who ran cheating software such as maphacks have not been awarded Alternate Art Demigod's Eyes.


We need a Scumbag Steve image macro for GGG which says:

Won't fix desync by trusting client because worried that it will make it possible for people to cheat.

Possible for people to cheat anyway.
but you know, these are different cheats
Spoiler
lolololololololololololololololololol
And worst change is putting almost all bosses in new version of maps into fucking small areas, where you can't kite well or dodge stuff. What a terrible idiot invented that I want say to him: dude flick you, seriously flick you very much.
Don't really care. People cheating is people cheating. Besides all of this, my post on page 32 of this thread proposes a range of ways in which authoritative client solutions, or partial trust solutions, could be implemented without seriously increasing the ease with which people can cheat.
honey bad i am 100 % on your site! there are defintively better ways to solve this problem. a lot of alternative solutions are already discussed in this thread.
the current solution, with the right motivation: "no cheating" for example, makes the game unplayable for non cheaters anyway.

i really love poe, playing since closed beta, but those desync deaths and desync related problems destroy the whole experience. you cant click chests, doors etc., beside dieing in very stupid situations where it is none players fault. even in a empty map with no dmg calculations i get dropped back all the time.

i got a 30 ping almost all the time - so thats not that bad.

as good as the deep crafting system, the enormes tree with its possibilies, those skills with its dozens of supports, is, if the basic gameplay is not functioning as intended something is wrong.

the most crucial part of the game the GRINDING is taken out by desync! this is mentioned before so i dont want to deepen into it.

sure i can do my theory builds, craft items, trade but actually playing the game makes no sense. going for lvl 98+ is a pain in the ... leveling for hours to get a desync throwing you back even more hours. and its not the build or you as the player its the game stopping you from progressing.

progress, rewards, are essential for rpgs. to keep up the motivation. my motivation is gone.

!no i am not a noob i know exactly when i die to reflect cb or something and when i die caused by a desync!

regards,
sebastian

Last edited by smurf6ww on Jan 20, 2015, 7:47:52 AM
"
Demonoz wrote:
Very interesting stuff vezuial thanks for the info!! i certainly have a netter understanding now of why this issue is here and why it such a challenge to fix!! guess its not quite as simple as people think!
All we can do i guess is wait.. im sure they will figure something out with time! Desync can be a pain in the ass but its not so bad the game is completely unplayable so i guess its just something we have to live with for the time being!

It's already been like 2 years with practically no major change to the system. There was a small band-aid applied to situations involving stun and... that's about it.
Computer specifications:
Windows 10 Pro x64 | AMD Ryzen 5800X3D | ASUS Crosshair VIII Hero (WiFi) Motherboard | 16GB 3600MHz RAM | MSI Geforce 1070Ti Gamer | Corsair AX 760watt PSU | Samsung 860 Pro 512GB SSD & WD Black FZEX HDD
edit:

waiting to see what act iv brings as a solution to this issue may be at hand.
Last edited by Josephoenix on Apr 15, 2015, 12:35:59 PM
I'd say that the best of two worlds, would be to trust the client unless the closest monster or hazzard is really x-away from the player. It's fine to resync, but don't resync a player to death - that gets no way of avoiding a hazzard, due to faulty mechanics.

So what I'm saying is - if the server is not in agreement with the client, whether or not a frost nova hit or not, don't pull the player back and drop him/her into it, just to be sure. A player cannot dodge what him/her cannot see, so what doesn't happen on the players screen, actually didn't happen to the player - it just happened in the servers mind. So the resync should pull the player back to BEFORE the event that triggered the desync to occour, call it rewind if you will - so that it's a fair game.

Report Forum Post

Report Account:

Report Type

Additional Info