Technical solution to eliminate desync in single-player sessions

"
Baxta wrote:
It requires virtually no bandwidth to send UDP packets with movement updates.
Hey guys, you might want to fire up WireShark and play PoE for a few moments, then check the results. Although I'll admit, it's been a few months since I last checked...

Using UDP would be the smart move, but to be fair, Diablo 3 is entirely TCP as well.
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, 8:21:07 AM
Baxta, exactly how much data do you think is being transmitted on average? Bandwidth should NEVER be a problem with an online game. Most packets are going to be a kilobyte in size at most. Even with hundreds of enemies on the screen we're not going to be communicating more than a few kilobytes per second.

My upstream allows MEGABYTES per second, and PoE doesn't even use 1% of the average gamer's bandwidth.

Any MMORPG out there must keep their packets extremely small due to round-trip latency. That's why I am promising you that it has absolutely nothing to do with bandwidth.
Last edited by qwave#5074 on Nov 18, 2013, 8:24:35 AM
"
qwave wrote:
Baxta, exactly how much data do you think is being transmitted on average? Bandwidth should NEVER be a problem with an online game. Most packets are going to be a kilobyte in size at most. Even with hundreds of enemies on the screen we're not going to be communicating more than a few kilobytes per second.

My upstream allows MEGABYTES per second, and PoE doesn't even use 1% of the average gamer's bandwidth.

Any MMORPG out there must keep their packets extremely small due to round-trip latency. That's why I am promising you that it has absolutely nothing to do with bandwidth.


Because your client's bandwidth is the only bandwidth that matters...

The server also has bandwidth. The server is sending packets to thousands of players. We don't know how many physical servers GGG has, we don't know how much bandwidth those servers have. We don't know how much of that they're using.

And hell, you're freaking saying it yourself. You have to keep packets small due to round-trip latency. The actual bandwidth you can use is less than what's physically available in order to keep ping in check.

It's got absolutely everything to do with bandwidth and the amount of information that's in packets send from the server.

There's not enough in them right now. Your client is information-starved and thus reports outdated and inaccurate information. If you client was fed more information this would not happen.
My vision for a better PoE: http://www.pathofexile.com/forum/view-thread/863780
GGG is not starved for bandwidth. Desynchronization in any online game is due to latency, and GGG themself has stated this is the root cause. I am addressing desync by eliminating latency from the equation.
Last edited by qwave#5074 on Nov 18, 2013, 8:36:36 AM
"
qwave wrote:
GGG is not starved for bandwidth. Desynchronization in any online game is due to latency, and GGG themself has stated this is the root cause. I am addressing desync by eliminating latency from the equation.


If this was true then I'd never be out of sync for more than my latency.

Which clearly isn't the case. I can be moving for several seconds until I'm finally resynced back into the middle of a pack of mobs. My latency during that time wasn't in the range of seconds. It was solidly below 100ms.

Yet my client's information was outdated by several seconds.

This isn't a latency issue. It's a lack of information issue because not enough information is communicated on a regular enough basis.

Which, honestly makes this idea even worse. Because it's formulated from an entirely wrong understanding of desync.
My vision for a better PoE: http://www.pathofexile.com/forum/view-thread/863780
Last edited by Gobla#3221 on Nov 18, 2013, 8:42:15 AM
"
qwave wrote:
GGG is not starved for bandwidth. Desynchronization in any online game is due to latency, and GGG themself has stated this is the root cause. I am addressing desync by eliminating latency from the equation.


I'm going to side with Gobla on this. It obviously isn't an outright latency issue. PoE might not be sending enough data to accurately describe environment. They might have limited the amount of data sent to preserve general up-time. With greater bandwidth, they could remove the limitations and include more action/environment info.

I understand that you really want a single-player fix, but it doesn't help the vast majority who want to play multi-player smoothly. Instance snapshots with trusted clients help no-one except those who want to play by themselves.

Gobla, I know this doesn't mean anything to you, but I have been writing network code and cloud architectures for the past 6 years. I've been a software engineer for over 12 years and have an excellent understanding of modern development.

That being said, I will explain how bandwidth/latency plays a role in the current system and my proposed system.

First of all, server bandwidth is obviously finite - and latency is often a constant based on your distance from the server. There is only so much they can realistically do to optimize this. Even if the server communicated more regularly, latency will stay play a part in guaranteeing that the client is never 'completely' in sync.

With the current system, the client sends segmented data that the server uses to build a simulation. Each time the client sends additional data, the server continues to progress the simulation based on the last segment. Unfortunately, since the client does not send full snapshots, the server has to 'fill in the blanks' with the gaps of data using interpolation and prediction. While doing this, the server frequently identifies discrepancies in the game state, and 'synchronizes' the player by sending a snapshot of the server's state.

Latency obviously plays a role in this (as GGG has stated in official posts). And yes, bandwidth is finite, so they can't stream data infinitely. Therefore, data gaps exist. Even with double their bandwidth, it would not stop de-syncing because even 100 milliseconds of latency can disrupt the simulation.

With my proposed solution, there would be no data gaps because the snapshot is 'complete' and much more accurate. Accurate snapshots can be sent because the server does not need to respond (which consumes bandwidth and also implies latency). Therefore the client can build much more detailed input and game state graphs.
Last edited by qwave#5074 on Nov 18, 2013, 8:56:05 AM
Just finished installing a new version of Wireshark and running another analysis. So it's confirmed: PoE still doesn't use UDP. At all. In other words...
"
qwave wrote:
bandwidth is finite, so they can't stream data infinitely.
LOL as if they stream at all.
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, 8:57:17 AM
Scrotie: You are right, PoE does not use UDP. So yeah, they could get away with streaming the snapshots over TCP without making any sacrifices/changes protocol-wise.

Last edited by qwave#5074 on Nov 18, 2013, 8:58:04 AM
"
qwave wrote:
Scrotie: You are right, PoE does not use UDP. So yeah, they could get away with streaming the snapshots over TCP without making any sacrifices/changes protocol-wise.
Or they could grow a fucking brain, and stream the monster positions (and other ephemeral combat data) from server to client using UDP. Which they haven't even tried. And which I've suggested previously.
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, 8:58:52 AM

Report Forum Post

Report Account:

Report Type

Additional Info