Client-server Action Synchronisation

cool story only makes no sense =)
Why is it so hard to make the simulation more deterministic? If nothing happens by chance (and I say this loosely, synced seeds can still allow RNG), then the client sill see roughly the same thing as the server.

Multistrike in particular is a huge cause of desync. Combine this with cyclone and even though movement is not in question the simulation will go much more out of sync than without. This suggests that the client does not have enough information to run the simulation accurately and multistrike really drives a wedge between the differences the server and the client see.
So we got the same post from what 4 years ago?..

"
Chris wrote:
It's worth stressing that in 99% of combat events, everything feels fine.

Seems like I got stuck in that *%1 of combat events*.

I strongly suggest playing some mobas and pay attention to quality of control/feedback/accuracy of events at the moments when things go real crazy (flashes/blinks/multi-flicker type attacks all over the place); and see that there is no delay nor any desynch.

I really doubt that your knowledge on wait-on server system efficiency is not an up-to-date one. Hope we can see some improvements.


I'm not sure if this will be read, but I couldn't care less about the accuracy mechanic. It's not really a fun mechanic. If the removal of it meant the game would run better, I'd be all for it.
"
symban wrote:

I really doubt that your knowledge on wait-on server system efficiency is not an up-to-date one. Hope we can see some improvements.


Really? Any reasons for that or are you skeptical by design? I have full confidence when the lead designer of a game development company writes such a detailed post about a concern he has.

"
RealHits wrote:
I'm not sure if this will be read, but I couldn't care less about the accuracy mechanic. It's not really a fun mechanic. If the removal of it meant the game would run better, I'd be all for it.


Would that be all to it?



Well at least you have conceded is a lot more factors that cause desynch than before. Though saying servers are fine is hard to believe considering how many mass disconnects Aussie server has and can see just how many people dropped in global chat afterwards. Yes lag spikes and desynch are different but the fact both seem to increase together does cause people to mistakenly think they same issue. Hopefully the Aussie server was getting some attention as noticed over weekend I was getting diverted to Singapore for all incidents and haven't had my usual disconnects today since back to Aussie server. Now if my ISP would only listen half as much as GGG I can play some HC lol because they are 90% of my problems causing huge lag spikes that add to mess (latency sitting on 30 with spikes up to 3000).
Thanks for your continuing efforts.
"
Chris wrote:
2100ms: Your character arrives at the monster on the server. The server immediately performs the combat calculation in advance of the contact point and sends the tentative result back to the client.
2200ms: You receive the notification from the server about what type of damage you will deal and roughly how much. Thankfully it arrived before the contact point of the animation! This is not always the case.


Could you please make the game handle pots taken between monsters start of animation and point of contact? At least for slow attacks.
Notable examples:
* Granite flask when the the Vaal Oversoul is doing his Slam.
* Topaz flask when Dominus is doing Lightning Stream or Lightning Fist.


Other than that, I really look forward to more smaller resyncing.
I've given up playing characters that rely on movement and positioning due to the problems of knowing where I am and monsters are (on the server). It's simply not worth playing anything besides super tanky.
With more frequent and intelligent resyncs (and some rubberbanding) I might go back to my preferred playstile. So thumbs up GGG.
Last edited by ElSmisko on Apr 22, 2014, 4:59:10 AM
"
SinPhil wrote:
Well at least you have conceded is a lot more factors that cause desynch than before. Though saying servers are fine is hard to believe considering how many mass disconnects Aussie server has and can see just how many people dropped in global chat afterwards. Yes lag spikes and desynch are different but the fact both seem to increase together does cause people to mistakenly think they same issue. Hopefully the Aussie server was getting some attention as noticed over weekend I was getting diverted to Singapore for all incidents and haven't had my usual disconnects today since back to Aussie server. Now if my ISP would only listen half as much as GGG I can play some HC lol because they are 90% of my problems causing huge lag spikes that add to mess (latency sitting on 30 with spikes up to 3000).
Thanks for your continuing efforts.


And that is probably one of the other reasons GGG doesn't want to implement option 2 =)

The game would get unresponsive overall for people with these kind of connections while now only the combat mechanics are unresponsive.
Last edited by Startkabels on Apr 22, 2014, 7:53:48 AM
"
Wait until data arrives back from the server before doing anything. This is a very common strategy in RTS and MOBA games. If you click to move, the unit will only start moving once the server says so, which is 50-250ms later.


In this model:
1. Server -> X ms -> client "vaal smash incoming"
2. You react in Y ms
3. Client -> X ms -> server "run away"

X = ping
Y = your reaction time

My ping is usually beetwen 30-50ms (F1 in game).
My reaction time is beetwen 200-350ms (google "reaction time test").

Last few days I played many hours in Heroes of Newerh (MOBA) with 60-100ms ping and it didn't felt unresponsive.

You can't tell that...
"
Right now, our client-prediction allows users in obscure countries to play Path of Exile while under 200+ms of latency.

... because it's not true. You can't play even with 50ms if you:
- use flick, multistrike, whirling blades...
- don't use shift+attack as melee
- try to run through door with monsters around
- run while there is pack of fast monsters
- ...

Right now model works if you do everything to avoid desync and have /oos macro in case u see something is wrong, so it doesn't work.
Some comments from my part:
(I'm really trying to hold back my frustration about this. Please forgive me if it still shows.)

-Please, sync the player position more frequently. 90% of the "bad" desync I encounter would be avoided if my client would show my actual position. If your character is trying to kite mobs chasing you (rangers know what I'm talking about), you end up in a lot of trouble every single time you get stunned. The (delayed) stun animation and "ugh" sound is played, but the client shows the char still running away while (based on my observation) it will stop moving on the server side (that is, if you're just holding down the move key, I think spamming left clicks doesn't desync you as badly).

Stun, among other stuff, is something that will basically always incur a desync. I think it would be "intelligent" to do some aggressive syncing after this kind of event.

-Alongside the previous point, syncing mob positions more frequently would alleviate the problem so much. Bandwith really can't be argued to be an issue here either, anything that attacks causes packets to be sent anyway, adding two floats worth of data can't be problematic.
I know that you're looking into this as you mentioned in the first post, I'm just saying "please be aggressive with the amount of syncing here". Also see my very last point.

-Lots of skill animations already use the server-side positions for the caster and target. Throwing traps, the ancestral bond nemesis guys, ground effects from the ice cyclone dominus preboss... The server is shoving the position of those units right into the client's face, but the client just ignores it. If you're sending projectile/skill usage info from the server, just tell the client the synced entity positions alongside of it (and make the client update based on it), please.

-Consider allowing option 2 for players that are willing to accept the drawbacks. I have played DotA 1 for a long time, and (with the hardcoded network delay of wc3 circumvented by clever lobby clients) it's so incredibly smooth and responsive to play.
Being held back by desync when you have 20 ms RTT ping is not cool. Yes, I'm absolutely aware that this would require enormous amounts of recoding, but anybody with low latency is going to love it. Heck, I'd even pledge money for you to do it.

-I hope you're not seriously holding back with improving desync problems because "players perceive more rubberbanding as worse desyncs". I would be terrified to hear that PoE needs to be a worse experience because some people who don't understand the mechanics would complain about more syncing.


Rhoa-rant
Rhoas look like they were designed to cause as much desync as possible. Fast movement? Check. Stun? Check. No animation for desync-skill? Check.

I've been offscreened to instant death by (quick) rhoa charges at least once, with the rhoas only appearing on screen after I died.
Fun!



One thing that I'd like to touch here would be timestamping packets. Based on Chris' explanation, it sounds like client actions are considered to happen on the server the moment they arrive, so not only will the game acting on out of sync data lead to desync, but even the slightest change in latency can distort the server simulation. It's hard to pinpoint how much of an effect this has, but it impacts stuff like trying to reposition yourself by a small amount after a longer animation (which will often fail because the server still considers you to be in the animation and thus discards the movement, despite the client animating it). Yes, again an issue that surfaces a lot when trying to kite.


I appreciate the fact that GGG is facing this hot topic, big thanks for being open about it with the players.
While skimming the thread, I noticed a lot of smart other ideas that I don't feel like reiterating here; I can just hope that they consider the feedback they get, since multiple valid and important points and concerns were (and will be) expressed here.
Last edited by MauranKilom on Apr 22, 2014, 8:57:47 AM

Report Forum Post

Report Account:

Report Type

Additional Info