Client-server Action Synchronisation

"
Startkabels wrote:
Hi Chris,

First of all I think you're taking the best approach to address desync.

I do want to add something:

You're saying that option 2: In which the client would always wait for the server would not be a good solutions because "There would always be latency".

At the same time you're saying that "Buying more servers does not help", but you're saying that after excluding the option above.

Now I'm based in Holland and always have a ping of below 50. So my question is, wouldn't it be better to always play with a latency of 50MS instead of a client that responds immediately with a substantial chance for desync?

And if you would go for the second option, wouldn't buying more server in theory help?


That's an interesting idea. Players could even be given an explicit option, which would be cool. The whole idea doesn't sound feasible to implement though.
"
Macattackmicmac wrote:
Can you imagine trying to avoid vaal lasers or smash if there was a 1/4 second delay (most of the time)
I died twice in the races to stupid desynch near vaal while he did smash. Nothing stunned me, I wasn't frozen. My position on server just doesn't changed. So its doesn't matter, you can die with both net sync models.
alt art shop view-thread/1195695
t.me/jstqw for contact
While a ping of 50ms = 0.001 x 50 = 0.05 sec

Even a horrible ping of 200ms = 0.2 sec

I mean, how is it unplayable of GGG goes for option 2? Has it even been tested?
Last edited by Startkabels#3733 on Apr 21, 2014, 6:29:30 AM
so we are going to keep the same a bit better (supposedly if it works)
"
Gudurubaburu wrote:
"
sidtherat wrote:


desync is a fact of poe, but poe is designed for a sunny day scenario - very fast mobs, very narrow doors, very cluttered tilesets. in a predictive system pathing is everything and current CONTENT design makes sure that desync occurs

if you are unwilling/unable to fix desync reason - start from your yard and tone down mob speed and clean up the floor-clutter



+11!


What you are talking about here is a d3 like system. Notice how d3 has much less desync problems. Its because they designed the game to be easy to stop it happening. D2 doesnt do this, because its all client side not client/server side.

d2's solution would be horrible because the game would be so hackable that it wouldnt be worth playing anymore

likewise d3's system feels good but the game is boring - tactically skilless and just out and out casual.

The 3rd way is PoE's way. The game feels clunkier, has issues with desync but the environment is much more appropriate to the way you play. Narrow corridoors and doorways can be used to your advantage etc. They can improve some of these things such as positionings, but please GGG do not listen to this guy and change the game we love purely to minimise desync.

You can get it as good as you can and we have to put up with it, you HAVE chosen the best way.
"
DexDeus wrote:

You can get it as good as you can and we have to put up with it, you HAVE chosen the best way.


Well that's discussable.

I agree with you that the current approach is better than option 1 for sure, but I'm not convinced that it was a better idea than option 2. That also depends on all the reasons involved in not choosing option 2, for example financial concerns.

I wouldn't switch to opinion 2 anymore, because of the overhaul
Last edited by Startkabels#3733 on Apr 21, 2014, 7:05:28 AM
"
Startkabels wrote:
While a ping of 50ms = 0.001 x 50 = 0.05 sec

Even a horrible ping of 200ms = 0.2 sec

I mean, how is it unplayable of GGG goes for option 2? Has it even been tested?


The problem with ping is that while it may be 50ms for 99% of the time there will come a time when you suddenly have an issue and it becomes 1000ms for a few seconds. Then you're fucked. Right now, the response time is minimilly affected by lag in this way. When you change it to what you're proposing, desync stops being the issue and lag becomes the problem.

Have you ever noticed in town sometimes you will be putting things in the stash. On occasion there is a very noticable delay. Due to circumstance ping cannot stay at 50 constantly forever, you will have issues sometimes and id much rather have a mostly controllable issue like desync than a completely uncotrollable one like a random lag spike kill my character
User-experience feedback on your potential solutions.

"
Have monsters on the client attack your server location rather than client location to reduce entropy. Maybe compromise on them attacking a mid-way point between the two. The drawback here is that it means they'll appear they are swinging at the air, but they're technically more in sync.

How do you think this will affect readability? I could see it going both ways - likely we'll pay a lot more attention to where monsters are swinging as a way to check sync. On the other hand, there's a lot of reactivity lost. Not even going to ask how you'll handle kiting.

"
Display blood and elemental effects at the contact point on the client rather than as damage confirmation. This will mean that combat feels more impactful, but we lose the communicated visual information about whether damage was actually dealt. It could be that this is easier to apply to effects from spells because they generally don't have a hit/miss calculation.

HELL NO. This is #1 way a lot of us figure out when we're badly desynced. No no no no no. Don't do it. It may be acceptable in conjunction with change #1 above, but I'm going to say just don't do either of them.

"
Resync entities that successfully hit you when nothing is on the client near you. This may actually pull the entity even more out-of-sync if you're in the wrong place yourself.
Resync everything in an area around a desynced entity. This reduces overall entropy massively but would be pretty jarring.

To the first point - if there's data on how often non-player entities get desynced in this fashion, that'll be the most useful. Assuming you can specify a range for "near". Can you maybe call up a full /oos if the player takes a hit from something that's half a screen away? Rather than us doing it manually, by macro or otherwise.

"
Delay actions if the client was ahead on its path. This will solve the case where monsters die before you get to them (if you were out of sync) but technically results in lower combat efficiency for players in these cases.

Not sure how that works. Is the combat efficiency change noticeable?

"
Measure overall entropy around the player and force a resync if it exceeds some threshold. The problem is that by the time the resynced information gets to the client, more actions could have occured.

Which is realistically no different from when any of us uses /oos, unless I'm badly mistaken.

"
Improve the distance-based resyncing that occurs for things that are far away from where they should be. It doesn't currently take movement speed into account properly. This is why Rhoas feel quite out of sync when charging.

Definitely going to be fixed as soon as you figure out how, right?

"
At this stage it looks like the biggest gains will come from improving the resync code so that it rapidly and reliably resyncs the combat situation if things get too desynchronised. This will mean more rubber-banding (as explained earlier), but will massively reduce deaths that occur from the player not being able to see the true locations of entities.

I'm all in favour of this.
How to make a build: http://www.pathofexile.com/forum/view-thread/510084
Current guides: N/A
Latency is not directly proportional to desync. Latency creates the window within which desync can occur (and there is always a window, because latency is never 0ms). This doesn't necessarily mean it will occur. This is also why certain situations — narrow doorways, monster skills with a high chance to stun/freeze/chill/move the player character — cause a lot more desync than other situations, even if the other situations have far more latency; it's because the window is being tested a lot harder in the former situation than the latter.
When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted.
"
DexDeus wrote:
"
Startkabels wrote:
While a ping of 50ms = 0.001 x 50 = 0.05 sec

Even a horrible ping of 200ms = 0.2 sec

I mean, how is it unplayable of GGG goes for option 2? Has it even been tested?


The problem with ping is that while it may be 50ms for 99% of the time there will come a time when you suddenly have an issue and it becomes 1000ms for a few seconds. Then you're fucked. Right now, the response time is minimilly affected by lag in this way. When you change it to what you're proposing, desync stops being the issue and lag becomes the problem.

Have you ever noticed in town sometimes you will be putting things in the stash. On occasion there is a very noticable delay. Due to circumstance ping cannot stay at 50 constantly forever, you will have issues sometimes and id much rather have a mostly controllable issue like desync than a completely uncotrollable one like a random lag spike kill my character


Except with desync, you are fucked too. With 1000ms ping, the desyncs make the game as unplayable as with 1 sec delay. On the standard 40-150 ping, the game experience would be improved.
What is this.. 4th account? Here since May 2012.

Switching to another account for this ladder
Last edited by Freesland2#5325 on Apr 21, 2014, 7:09:24 AM

Report Forum Post

Report Account:

Report Type

Additional Info