Why desync is fixable:

Because everyone is saying we should shut up if we don't have ideas to fix it.

"

Wait until data arrives back from the server before doing anything. This is a very common strategy in RTS and MOBA games. If you click to move, the unit will only start moving once the server says so, which is 50-250ms later.


I got some possibilities I thought of:

1. Change the treatment for player movement only.
Everything else can still be predicted including enemy movement.

2. Include a timer where it waits for an answer of the server before moving every 1000ms.
Basically sync the player more often so a 4 sec desync isn't possible anymore.

3. Disconnect the player if a really long desync is happening to prevent dying because of it.
Alternatively: Make the player invincible to damage for a second if a difference in client and server position is detected.

4. When positioning the character compare client and server position and take client position if it seems legit.



There are 4 possbilities I casually thought of just now. I'm sure if I gave it more time I would've thought of even more.

Now of course nobody knows how the client and server are programmed or what they exchange exactly. Well, ok you could find out what they exchange by monitoring the network traffic of the client, but I'm too lazy for that. It wouldn't help anyways.

It just isn't true that all the games using such a connection model are running bad and laggy. I played a whole lot of mmorpgs in my life, including servers all around the world basically and I yet have to find one that has desyncs like poe.

Ok, some of them lagged like hell.
Lineage 2 for example. But at least my character was were I thought it was.
But even lag wasn't a problem with most of them.
Last edited by grasmann#3903 on Oct 21, 2013, 10:30:47 AM
"
How different types of online games handle latency
Wait until data arrives back from the server before doing anything. This is a very common strategy in RTS and MOBA games. If you click to move, the unit will only start moving once the server says so, which is 50-250ms later. If you are close to the server, you'll quickly get used to the lag and everything feels pretty good. If you're far away (New Zealand, for example), it feels like you're playing drunk. Every time you issue an order, nothing happens for quarter of a second. This does not work for Action RPGs.


Source: http://www.pathofexile.com/forum/view-thread/318115

I disagree especially with "This does not work for Action RPGs". If a fast paced modern FPS games can work like this (in which responsiveness is a major concern), why wouldn't it work in aRPGs? This is more likely rather a matter of server availability for GGG.

I'm from Holland while there's a server in Amsterdam and am playing on a Duel Core @3Ghz with an Ati HD4850 512MB, 6Ghz of RAM and PoE on a SSD with a ping of ~50.

I both experience lots of FPS drops as desync and I believe it is indeed caused by a combination of game mechanics/design and server availability/capacity that have to be fine tuned to the max to facilitate the client server sync method GGG wants to use.

"
We've successfully deployed 0.11.4 and users are downloading the 1.83gb patch. Arguably the most important feature of the patch is that it has resolved the serious stability issues that affected users of 32 bit Windows with Path of Exile. Due to the 2gb per-process memory limit, 32 bit users would crash every hour or so while playing (as they change areas). The work to reduce the memory usage in 0.11.4 has, as far as we can see, completely eliminated this problem. We will continue to aggressively improve the performance as we ramp up to release later this year.

Also, Jonathan has come up with an improvement that may yield a substantial frame rate increase for users with slower CPUs. He's experimenting with it at the moment and we're expecting to patch it in as soon as it's ready (hopefully within a week).


Source: http://www.pathofexile.com/forum/view-thread/504364

Yes arguably: I'd say the most important feature is the framerate increase for users with "slower" CPU's. "Slower" because I can't tell why PoE would require a high-end CPU in terms of better than my current one.

Another nice read:
"
Schakar wrote:

The main problem with desync (I belive) is, that GGG trys to make a 100% cheat-proofed netcode. So they send EVERY action to the server to do the calculations like "does hit" or "is crit" and "how much damage against resitence" and many many more. That means ALOT of information even for a singel char.
Just take a Meleesplash + Multihit + FasterAttacks ... that's a freaking lot of information if there are 20++++ mobs around you in a very short time. You belive not? Well, it is :).
Now take this for 6 chars and it's even more net-traffic as every client sends it's info to the server which calculates everything and then send it back to the client *6.

As much as I like it, that GGG trys to make the game so cheat-proofed ... it just does not work! Most critical bottleneck is the internet connections of each player (it must be REALY good) and the server calculation which REQUIER a freaking hardware to handle all the information+calculation.
It's all TO cheat-proofed with the standart hardware from today.

And no, noone cares, if less then 5% of all players have a 5 GHz overcloaked 6-core CPU with 4 linked GTX780 and fiberclass internet and if they don't have any desync!

TIP for multiplayer as melee char: just stay around with some auras and only attack blue+ mobs ;).


Source: http://www.pathofexile.com/forum/view-thread/543859/page/3
Last edited by Startkabels#3733 on Oct 21, 2013, 5:59:31 PM
"
grasmann wrote:
Because everyone is saying we should shut up if we don't have ideas to fix it.

"

Wait until data arrives back from the server before doing anything. This is a very common strategy in RTS and MOBA games. If you click to move, the unit will only start moving once the server says so, which is 50-250ms later.


I got some possibilities I thought of:

1. Change the treatment for player movement only.
Everything else can still be predicted including enemy movement.

2. Include a timer where it waits for an answer of the server before moving every 1000ms.
Basically sync the player more often so a 4 sec desync isn't possible anymore.

3. Disconnect the player if a really long desync is happening to prevent dying because of it.
Alternatively: Make the player invincible to damage for a second if a difference in client and server position is detected.

4. When positioning the character compare client and server position and take client position if it seems legit.



Just going to elaborate on your points for why they have potential issues. Not saying that they aren't viable, but there is a lot more thought that would need to go into them. Firstly the delay method, this has been discussed ad infinitum, so will ignore that.

1.
So player movement is on the wait design? This means the game is having two seperate coding for this, and this is probably a gigantic hassle for them, while it still doesn't fix the 'delay' feeling that they are specifically not wanting in their game

2.
So this wouldn't really do much. The game is constantly in contact with you. You pick up an item, that is based on delay? It doesn't pick up instantly, and when you artifically ping 1,000 you can feel this delay. So not sure what you mean by this. Are you meaning the game should forceably resync every second? Because this would be a huge bandwidth increase to the game, not to mention it would be more jarring, when every second everything vibrates slightly, as your game client will be 2x ping ahead of the game at that point.
You click to move, you start moving, game resyncs, you teleport backwards slightly, you then stop moving, game resyncs, you teleport backwards slightly and are moving again. This would be the most terrible game to play if full forced resync every second.

3.
Disconnecting after a long desync, what type of desync? Character, enemy mob, item? Items are desynced for a very long time sometimes. Even character desync, this would suck. I'm in a map, i'm desynced, rather than just resyncing me, I disconnect, and lose my map. I rage at game for randomly disconnecting me.
Making you invulnerable would be easy to exploit aswell. If you very quickly run past a wall then try to use a movement skill at a right angle, your game clients delay based on ping means you try to use it into teh wall. This is then desynced. If you went invulnerable I could just tank piety with this so easily while having no items on my character. Bad idea

4.
Not going to happen because 'trusting the client' opens the game to potential hacks much easier than server only security. Look at the maps being client side, and how there are map hacks, while when its moved server side, maphacks can't work anymore without hacking the servers.



Feel free to post more suggestions, perhaps we will find one which is viable for GGG to use, but they have considered many options already

Report Forum Post

Report Account:

Report Type

Additional Info