Desync and why it's fixable

"
ScrotieMcB wrote:
If you feel like you're being pissed on, why are you here?

Because I'm here since CB and I hope that some day, at some time, there will be a time where 90% of the skill gems aren't totally crap.

[Removed by Admin]
Make
Spectral Throw
great again
Last edited by Henry_GGG on Dec 1, 2013, 10:29:29 PM
"
ScrotieMcB wrote:
"
Prostasisx wrote:
And by having the enemies AI on the client side - would be even worse, now you're asking for ANOTHER transmission of data in the stream... User > Client > Server - and AI > Server - Server > AI - AI back to Server - Server back to AI - AI to Client - Client to User - User to Client...... see where this is going??? You're talking about perceivable instantaneous interaction with a video game - even adding the TINIEST of information transfer, can create a gigantic ripple - nothing is getting fixed, it's just that the bucks getting passed along - you'll still have the Desync....
Wrong. Hard to be wronger, actually.*

What I'm talking about is putting the same deterministic AI process on both the client and server sides so that communication regarding monster movement/AI is not required for normal operation (although it may still be used to resynchronize if things go wrong). Monster AI is something which doesn't need to be random, and any randomness in the process can be controlled through random seeds both the server and the client share.

*Yes, I know wronger isn't a real word.


I tend to agree with Prostasisx here. The reliance on 2 systems to be non-en-tropic is near impossible. The reliance on 2 seeds to produce exactly the same result based on the data which is inherently out of sync in the first place is going to produce a greater de-sync not a smaller one.

Planting 2 genetically identical seeds next to each other does not always produce the same result. No 2 trees are identical just because the start out as identical seeds.
Last edited by Ozsmeg on Dec 1, 2013, 10:55:01 PM
"
Ozsmeg wrote:
Planting 2 genetically identical seeds next to each other does not always produce the same result. No 2 trees are identical just because the start out as identical seeds.
You have no idea what you're talking about.

http://en.wikipedia.org/wiki/Random_seed
"
If the same random seed is deliberately shared, it becomes a secret key, so two or more systems using matching pseudorandom number algorithms and matching seeds can generate matching sequences of non-repeating numbers which can be used to synchronize remote systems, such as GPS satellites and receivers.
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.
So....will GGG post a response to this topic?

Or did they already post a response to a similar topic in the past and don't deem responding to this one necessary?
Or are they actually discussing this topic internally, and plan to post a response when they reach an internal conclusion about it?

The "Found a technical solution for desync" thread got a lot of responses from GGG, and they even said they were actively reading it, so they are interested in the subject, at least what the community thinks, dispelling misconceptions, etc. If they paid close attention to that one, surely they must have noticed this one right?
"
gonzaw wrote:
If they paid close attention to that one, surely they must have noticed this one right?
Don't know. I guess the only way to know for sure is to ask them... and hope they reply.
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.
They know desync is fixable because it is not an issue for most MMOs/ARPGs which have similar client/server relationships.

Desync is a significantly bigger problem for PoE because it has obnoxiously narrow passages, small doors, relies heavily on AI pathing, has player/AI collision.

Them replying isn't going to change diddly squat. Nobody is going to be happy until desync is largely gone.

The group I was playing with last night was having chronic desync problems, was particularly hilarious when people were standing in doorways and once server/client synced my character was often in a position which was impossible to reach with the keys I was hitting (backwards and forwards to get in and out of the door only to be moved laterally a significant distance inside or outside the room.

It goes vastly beyond minor sync problems, the server and client at times are not in the remote ballpark of reality in terms of where the character is meant to be.
"
ScrotieMcB wrote:
GGG should incorporate monster AI and decision-making on the client, rather than having to wait for server response.


This would never work because it's a multiplayer game
"
ScrotieMcB wrote:
"
Ozsmeg wrote:
Planting 2 genetically identical seeds next to each other does not always produce the same result. No 2 trees are identical just because the start out as identical seeds.
You have no idea what you're talking about.

http://en.wikipedia.org/wiki/Random_seed
"
If the same random seed is deliberately shared, it becomes a secret key, so two or more systems using matching pseudorandom number algorithms and matching seeds can generate matching sequences of non-repeating numbers which can be used to synchronize remote systems, such as GPS satellites and receivers.


I have no idea what I am talking about? You appear to assume that this system is a singular fixed point in time with zero external input running on 2 identical systems in both hardware and software at exactly the same point in space-time.

First you're not talking about synchronizing 2 systems. Your talking about running 2 systems in unison. This is based on the assumption that the environment in which they operate does not change and that they are identical. Which it is not.

You can use a random seed to synchronize a system at a fixed point as long as you have a relative reference point. You can't use it to run 2 systems in parallel and expect that same exact result on both systems indefinitely. Eventually the systems will diverge this is relative to how far you are from the original reference point. In the case of satellite's you can use it to bring them back to sync (re-sync). You can't use it to ensure they will always remain in sync for the duration of their flight. The surrounding environment influences the system and puts them out of sync, hence requiring them to be re-synchronized.

My point remains, adding another system that is supposed to remain synchronized based on a set of rules and external variables does not reduce de-sync, it increases it. You can't fix de-sync by adding another system that is based on a synchronized system.

"
Ozsmeg wrote:

You can use a random seed to synchronize a system at a fixed point as long as you have a relative reference point. You can't use it to run 2 systems in parallel and expect that same exact result on both systems indefinitely. Eventually the systems will diverge this is relative to how far you are from the original reference point.


A PRNG with fixed initial seed will produce the same sequence of integers (lets be conservative, and say 32-bit signed ints) on any machine, so long as it is the same PRNG algorithm.
IGN: SplitEpimorphism
"
Ozsmeg wrote:
This is based on the assumption that the environment in which they operate does not change and that they are identical. Which it is not.

You can use a random seed to synchronize a system at a fixed point as long as you have a relative reference point. You can't use it to run 2 systems in parallel and expect that same exact result on both systems indefinitely. Eventually the systems will diverge this is relative to how far you are from the original reference point....

My point remains, adding another system that is supposed to remain synchronized based on a set of rules and external variables does not reduce de-sync, it increases it.
This is bad logic. I'm not assuming they're identical; I'm not expecting the client to predict results indefinitely without divergence. I'm expecting the client to predict results better than it does now. You're comparing my suggestion to some abstraction of perfection, which isn't fair, because that isn't its competition.

It's partially deterministic monster AI on the client (assisted by a server-provided seed and a matching PRNG), versus continually receiving monster AI data a full ping late from the server. Both diverge; the latter diverges much faster than the former.
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.
Last edited by ScrotieMcB on Dec 2, 2013, 12:49:31 AM

Report Forum Post

Report Account:

Report Type

Additional Info