Technical solution to eliminate desync in single-player sessions

Saying it again because it was ignored:
The difference is that, with UDP, stale packets wouldn't waste network resources getting resent when they're too old to make any difference, freeing up network resources for more consistent, fresher broadcast of monster positions.
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.
"
The difference is that, with UDP, stale packets wouldn't waste network resources getting resent when they're too old to make any difference, freeing up network resources for more consistent, fresher broadcast of monster positions.


This wasn't ignored, I agree with you. These sorts of things are a step in the right direction, but definitely won't eliminate the amount of desync we're currently facing.


"
Frankly, I believe the client should treat this as a series of individual clicks with a resend rate of one every x milliseconds, where x is some constant.


That's what it DOES do. It segments your movement into straight lines. However, if you're running in a circle, it receives lines, so the server-side simulation has you running off into the distance. If you experience some latency, your character is now running into a tree on the server-side a screen away, even though you were running in a circle. If your client was sending snapshots then the server would never have interpolated your movement off into a tree.
Last edited by qwave#5074 on Nov 18, 2013, 9:28:40 AM
I remember a game that kind of got an addon that provided extremely hard content at the start. There was a guy that should tank and others that should not get aggro or they would just die. Oneshoted because they pulled aggro. So what happend was many people cried about it ofc. BUT people learned to not pull aggro. They just naturally changed their gamestyle, they naturly learned not to pull aggro or they would just die and got better gamers in thisspecific game.

Desync kind of does the same for me. I learned to play different. I learned to hold the shift key while attacking monsters that move fast. I learned to care about where I am clicking while moving. And I learned how to not use attacks. And I have no real problems with desync. Actually I just desync if I play really sloppy.

So ofc changing the own gamestyle or adapting new techniques is fucked up because it would mean you are not the godlike born gamer by default! Its ofc easier to just cry for a change than change yourself, right?

The bad thing overall for this threads are that people are indeed able to reach high level. Even with the desync problems so its playable for sure. And this just makes you guys that have so much trouble with desync look so worse. And from my point of view even more because you do not come to ask for gameplay / movement tips. You ask for a change so you dont have to improve your gamestyle for this game.

The system Change would easy open the doors to abuse it like stupid. Every mob would drop an exalt after the release of such an system magicly...just for example.
Why you should try Harcore http://www.pathofexile.com/forum/view-thread/209310/page/1
"
qwave wrote:
"
The difference is that, with UDP, stale packets wouldn't waste network resources getting resent when they're too old to make any difference, freeing up network resources for more consistent, fresher broadcast of monster positions.
This wasn't ignored, I agree with you. These sorts of things are a step in the right direction, but definitely won't eliminate the amount of desync we're currently facing.
"
Gobla wrote:
Data gaps of under a second are completely fine and present in many online games. Data gaps of several seconds are not completely fine and only present in PoE.

A real solution is not eliminating data gaps completely by implementing a system that would be open to exploits. A real solutions is decreasing those data gaps within acceptable bounds. Which means using more bandwidth to send more information to ensure that any piece of important information that exists client-side always receives an update from the server at least once a second. That is an actual and real solution and that solution is dependent on having and using enough bandwidth to send all that information.
What Gobla said, except using your bandwidth more efficiently is even better than simply using more bandwidth.
"
qwave wrote:
"
Frankly, I believe the client should treat this as a series of individual clicks with a resend rate of one every x milliseconds, where x is some constant.
That's what it DOES do. It segments your movement into straight lines. However, if you're running in a circle, it receives lines, so the server-side simulation has you running off into the distance. If you experience some latency, your character is now running into a tree on the server-side a screen away, even though you were running in a circle. If your client was sending snapshots then the server would never have interpolated your movement off into a tree.
I'm pretty sure I said "milliseconds;" you answered as if you heard me say "seconds" instead.
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.
"
tadl wrote:
I remember a game that kind of got an addon that provided extremely hard content at the start. There was a guy that should tank and others that should not get aggro or they would just die. Oneshoted because they pulled aggro. So what happend was many people cried about it ofc. BUT people learned to not pull aggro. They just naturally changed their gamestyle, they naturly learned not to pull aggro or they would just die and got better gamers in thisspecific game.

Desync kind of does the same for me. I learned to play different. I learned to hold the shift key while attacking monsters that move fast. I learned to care about where I am clicking while moving. And I learned how to not use attacks. And I have no real problems with desync. Actually I just desync if I play really sloppy.

So ofc changing the own gamestyle or adapting new techniques is fucked up because it would mean you are not the godlike born gamer by default! Its ofc easier to just cry for a change than change yourself, right?

The bad thing overall for this threads are that people are indeed able to reach high level. Even with the desync problems so its playable for sure. And this just makes you guys that have so much trouble with desync look so worse. And from my point of view even more because you do not come to ask for gameplay / movement tips. You ask for a change so you dont have to improve your gamestyle for this game.

The system Change would easy open the doors to abuse it like stupid. Every mob would drop an exalt after the release of such an system magicly...just for example.


What? Do you really think people should "learn to play" with desync?
This is stupid, desync is not part of the game, this is not some type of content! Desync is a flaw.
"
I'm pretty sure I said "milliseconds;" you answered as if you heard me say "seconds" instead.


Even if your client sends it every 250 milliseconds, it doesn't necessarily arrive at that pace. That's why im explaining that a little bit of latency will cause the server to interpolate you in a straight line a great distance away (even if you're running in a small circle). It will then be ignoring your packets when they arrive, because you are out of sync.
Last edited by qwave#5074 on Nov 18, 2013, 9:39:49 AM
"
qwave wrote:

Hold your mouse button down and move around in a circle. You are not clicking multiple times, your character is moving around following your cursor. The game client cannot send a packet which represents every pixel that you've moved to. It sends packets in segments and the server uses interpolation to guess your exact path.


And Scrotie was suggesting a system that did not send packets representing every pixel you moved to, he was suggesting that you send packets representing every pixel you moved to in an arbitrarily low set of time, let's say 50ms intervals, instead of pathing/wireframe data.

It makes more sense to say "Player issued a command to move to position X, Y at timestamp X +50ms", using UDP to bypass TCP windowing and whatever networking hacks your router/ISP/whatever does. For all we know your ISP might be implementing jumbo frames, which means that you have built-in lag the moment you used TCP. Use UDP and the problem is gone.

"
qwave wrote:
"
I'm pretty sure I said "milliseconds;" you answered as if you heard me say "seconds" instead.


Even if your client sends it every 250 milliseconds, it doesn't necessarily arrive at that pace. That's why im explaining that a little bit of latency will cause the server to interpolate you in a straight line a great distance away (even if you're running in a small circle). It will then be ignoring your packets when they arrive, because you are out of sync.


That's only if you assume that the client sends a vector from your current position, instead of a set of coordinates for your move command click.
If snapshot= $Idied{
DoNotSend, Disconnect}


I just pseudocoded a really easy hack to never die in PoE again...

My words are poetry and thus not subject to spellcheck or the laws of grammar.
"
That's only if you assume that the client sends a vector from your current position, instead of a set of coordinates for your move command click.


The server interpolates your position based on your velocity (movement speed, etc). This is why you rubber-band during desync, because the server interpolated you to a position that contradicts your new movement packets.
Last edited by qwave#5074 on Nov 18, 2013, 9:48:40 AM

Report Forum Post

Report Account:

Report Type

Additional Info