Technical solution to eliminate desync in single-player sessions

"
I'm delaying each and every packet a second.


Yes, this grants you a ONE SECOND window to perform an action. And remember, you also have to consider packet trip time. This could be another 200 milliseconds. Even with the current system, hacks can be used to escape scenarios where death is predicted. With the current PoE, a good developer could write a hack which predicts damage taken per second to auto-teleport away if he is about to die. It's really not much different.

I am not suggesting that my system is '100% full-proof', but I am promising you that hacks will prevent fewer deaths than will be prevented by not worrying about desync. In other words, hackers may have slightly fewer deaths, but the entire playerbase in general will suffer far fewer deaths as a result of no lag/desync.

Again, a worthwhile trade.
"
I'm pretty sure GGG knows about this solution. The only problem is that they need to entirely redesign and rewrite the core of the game, and they are worried that a single mistake would destroy the economy.


Until they make a post indicating that the engine's limitations prevent them from fixing desync, I am happy to propose technical solutions. Like ive said in a previous post, although I believe GGG has some very bright developers, none of us should assume that their team is infallible and does not need feedback.
"
qwave wrote:
"
Code bases can be maintained perfectly and still be unable to easily move to client-side.


You are right, I am not disagreeing with you. I am offering a solution to their desync problem, but their architecture may be too fragile/heavily coupled in order to implement it.


Just to chime in again. A more client-side solution IS possible and would lessen desync in single-player mode. It wont happen because it isn't cost effective to implement OR maintain and single-player isn't the majority. Also putting more logic client-side is inherently backwards in this industry.

Their team is small and has to cater to the majority first. There's obviously some bright minds in this thread, we should be working towards lessening desync in multi-player so it is actually worth the time and effort.

"
qwave wrote:
Wrong, cryptography is not only useful for preventing attacks. It has hundreds of uses. In this case, I would be using it similar to how bitcoins are mined. It is there to make it harder to brute-force seed permutations.
Did some research on bitcoins. Interesting stuff. Was not previously aware.

Cryptography-as-busywork does not exist in a vacuum; it is relational. When you say you're making it harder to brute-force seed permutations, the question is: relative to what?

There are three reasons why bitcoins work:
1) brute-forcing a bitcoin with zero transactions is less work that brute-forcing one with 1 or more transactions;
2) bitcoins with zero transactions are only in the hands of miners (see below); and
3) most importantly, brute-forcing a bitcoin with zero transactions is encouraged as a legitimate activity, dubbed "mining," and is the method for introducing more bitcoins into the economy.

It is that third reason which keeps bitcoins stable; the primary defense for the currency is self-interest, the idea that any would-be hackers would have an easier time as legitimate miners. Thus, with bitcoins, the answer to "relative to what?" is legitimate mining activity.

So what you're trying to convince me of is this: that illegitimate cryptographic busywork by a hacked client is somehow going to be more computationally intensive than legitimate cryptographic busywork, and not by a small margin, but by a large enough margin to make a noticeable difference even given the irregularities of regular network traffic, and that this additional computational time and sending of cryptographic busywork back and forth will still be less of a strain on the end user than the current desync situation.

Oh, and I almost forgot: also that this computational effort would be the same across multiple platforms, essentially meaning that the slowest and the fastest computers running Path of Exile, and all the various speeds in between, if alternatively employed to mine bitcoins, would all mine at the same rate.

Something tells me that even if you could somehow sell me on the first two points (which I doubt), there's nothing you could ever do to sell me on the third.
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#2697 on Nov 18, 2013, 6:23:52 AM
I remember the S2 devs talking about Heroes of Newerth, the game was made with something like this desync thing... The server is always assuming that you are lagging and they deal with it in some way, I played at least 1000+ HoN games and I never feel the desync, the game response is faster then any other moba and sometimes I played with 400ms (lagging but still playable).

Anyway, I still have faith in GGG devs.
"
There's obviously some bright minds in this thread, we should be working towards lessening desync in multi-player so it is actually worth the time and effort.


Eliminating desync in single-player sessions is a sure-fire 'win', so that's why I wanted to make this proposal.

Reducing desync in multiplayer is extremely complicated, and no forum post is going to help GGG come to a better solution. There is no silver bullet for that, and it would require significant changes to the game's architecture, including:

- Peer to peer support
- Adjustments to core game mechanics
- Scaling down the 'pace' of multiplayer play (Fewer but harder creatures, everything moves slower to reduce bandwidth, etc)
METE: Most MOBAs, including League of Legends and Heroes of Newerth, are using extremely modern techniques for multiplayer synchronization. That being said, they are completely different games and abide by different rules. For example, they do not have randomly generated maps, so there may be less optimizations that PoE can make regarding pathing. Also, very few entities are present in MOBA games, where as PoE has to track hundreds of entities. This is why it's extremely important for PoE to move some of the calculations to the client.

I can whole-heartedly say that PoE's desync can be fixed/reduced, but they are quickly backing themself into a corner if they have not fixed these issues by now. I do believe that they have made some poor architecture decisions that they are currently paying for.
Last edited by qwave#5074 on Nov 18, 2013, 6:32:35 AM
By the way, it's possible that this proposal can be applied to multiplayer in the same way, by doing something like this:

1. Each user sends their snapshot to the server in the same way.

2. The server performs a comparison between snapshots and sends each client 'new data' (stuff that has changed that each specific player needs to know).

3. The server performs the full authoritative check for each player whenever they leave the instance.

I would say that the server needs to be considerably more authoritative in multiplayer scenarios though.
"
qwave wrote:
"
I'm delaying each and every packet a second.


Yes, this grants you a ONE SECOND window to perform an action. And remember, you also have to consider packet trip time. This could be another 200 milliseconds. Even with the current system, hacks can be used to escape scenarios where death is predicted. With the current PoE, a good developer could write a hack which predicts damage taken per second to auto-teleport away if he is about to die. It's really not much different.

I am not suggesting that my system is '100% full-proof', but I am promising you that hacks will prevent fewer deaths than will be prevented by not worrying about desync. In other words, hackers may have slightly fewer deaths, but the entire playerbase in general will suffer far fewer deaths as a result of no lag/desync.

Again, a worthwhile trade.


In current gameplay mechanics death can't really be predicted though. The devs greatly favor huge burst damage which is near impossible to predict by any hack, and in those cases where it is possible it would lose out against a human response. Your method does not need prediction, it gives certainty and a 1 second window to make adjustments.

And it doesn't matter how many deaths are prevented by not having desync. The point is that with your system hacks will prevent deaths and as such it will be possible and attractive to use hacks. This will lead to hacks being used and destroying any form of competitive or fair play.
My vision for a better PoE: http://www.pathofexile.com/forum/view-thread/863780
"
qwave wrote:
By the way, it's possible that this proposal can be applied to multiplayer in the same way, by doing something like this:

1. Each user sends their snapshot to the server in the same way.

2. The server performs a comparison between snapshots and sends each client 'new data' (stuff that has changed that each specific player needs to know).

3. The server performs the full authoritative check for each player whenever they leave the instance.

I would say that the server needs to be considerably more authoritative in multiplayer scenarios though.


This is currently how PoE works.

Report Forum Post

Report Account:

Report Type

Additional Info