Client-server Action Synchronisation
" To be honest Dominus fights are always binary for me. I can either drop him very quickly or have to zerg him as he jumps around like crazy. This has been the case since he first appeared, not just after 1.3. Dominus also seems to be one of the worst bosses in terms of resync code, as you can watch him doing this ghost attack for 2-3 seconds while he is really someplace else. |
|
"The client can never predict or account for other human players, so there will always be some desync when playing with other human players even with your model. The problem worsens as more and more human players are involved. Of course this is a problem that affects all network models and your proposel is still heaps better than the current implementation, especially for solo play. " From the sounds of it you thought you were at position X when you decided to click on the door but you were actually at position Y according to the server. When you clicked the door you walked from position X to the door according to the client but according to the server you walked to it starting from position Y, the journey from position Y just so happened to intersect with enemies. You are right that rubber banding is 100x better than not rubber banding, especially if it happens often enough that you only shift minor distances (less than a Inch) on your 23" 1920x1080 screen whenever you're resynced. Computer specifications: Windows 10 Pro x64 | AMD Ryzen 5800X3D | ASUS Crosshair VIII Hero (WiFi) Motherboard | 16GB 3600MHz RAM | MSI Geforce 1070Ti Gamer | Corsair AX 760watt PSU | Samsung 860 Pro 512GB SSD & WD Black FZEX HDD Last edited by Nicholas_Steel#0509 on Dec 27, 2014, 10:50:50 AM
|
|
Lost another character due to complete BS.
Not to say I'm the only one, but that fact only bolsters my and others arguments about this needing to be fixed. I opened a blue chest last night (ID'd it, nothing that stood out too much, no extra monsters, no curse/status, no increased level, etc). Got the sound effects as usual, but nothing happened so I quickly hit my /OOS button. Everything pops, but NOTHING MOVES, nothing takes damage. I can't do anything because I'm out of sync (again) and the command is on cooldown. Working as intended, right guys? Last edited by twiz#2101 on Dec 27, 2014, 2:11:03 PM
| |
" +1 ! |
|
I originally posted this in general but i guess no one has an answer or what knot so maybe this is a more appropriate place for it concerning certain skills and some things ive noticed from testing different gems and skills to get better acquainted with the game!
so ive testing out alot of different skills and such to start making builds and i started running a Scion and since i run Spectral Throw ive also been running Whirling Blades with it and it works nice ....except now i have more Desync than any other setup i have ever run! i can throw my ST and use WB to create distance to get a little more out of the ST and for kiting! but once i do this a couple times say 3 or 4 then all of a sudden ill get jerked back all the way to the first WB i used! not sure what would be causing such an issue since i haven't seem to have Desync issues as much with other skills like i have with Whirling Blades! i even swapped to Leap Slam and it doesn't seem to desync near as bad (although it does do the same with that skill too just nowhere near as often) but that isnt quite as effective as the WB+ST combo so im not sure if its a bug or just the skill itself is more prone to desync than other skills... im also about to start testing out Cyclone and Flicker Stick both of which ive already been warned that ill most likely run into the same issue if not possibly worse! is there something that can be done to fix such an issue that seems to be connected to certain skill gems themselves? is there something i can do about it on my end? i had to do some things on my PC anyway to get the game running smoothly and ive been able to do that so if theres something i can do to help on my end just show me the way!! wasnt sure if this is a bug or something that is common with these certain skills and its something they are working on either! Judgeing from what i keep hearing its classic desync but why would it effect certain skills more than others? Thanks! \m/ There is a fine line between Consideration and Hesitation. The former is Wisdom, the latter is Fear. Last edited by Demonoz#1375 on Dec 29, 2014, 4:52:18 PM
|
|
" Giving a complete answer to this question would mean giving you a huge wall of text, so please consider the following as broad overview. In particular, I'll assume that you WB and LS towards a location, not a moving monster. First of, desync is born out of latency. You perform an action on the client, it arrives at the server a few milliseconds later. So you WB towards a location, passing through some monsters. One of the mobs mini-stuns you on the way. The client receives the message 'You've been stunned' 50ms after it was generated on the server. Due to this time offset, the client may have trouble determining exactly where the stun occurred, at makes a best guess. This guess slightly differs from the server position, but not enough to cause a complete resync. You then proceed to attack the next mob. Using leap slam, your character quite literally flies from your current position to the target position. Say the client assumes that the target is within range, he immediately renders the jump. The server has a slightly different position, so one of two things may happen. Either the server determines that the target is within range. He executes the jump, and all is well (this actually might correct the position difference). The server might also determine that the target is out of range, and have your character move a few steps before jumping, assuming that the client will do the same. This may worsen desync. So why is WB worse than leap slam in this regard? Mainly because leap slam has you jumping, whereas WB travels across the ground. Now there's a new element in play, ground obstacles. In POE, your character can quite literally be blocked by a twig. From your client position, you may assume that the path of WB is clear, while on the server you're partially blocked by an obstacle. This may lead to a huge position difference, and unfortunately the game does not recognize it correctly, and hence does not resync as required. The entire thing gets much, much worse if you include the fact and more often than not, you'll be WBing towards a mob rather than a location. This mob is moving, and brings his own amount of desync in the equation (this is one reason why multistrike cyclone was such fun). Now, is it impossible to prevent all this from happening? Partially. You cannot prevent the first amount of desync from happening, with latency this will always happen. But, as you correctly observed, you can often play the game for multiple seconds with a huge positional offset without the game noticing, causing you to execute multiple WBs on the client that are then corrected quite brutally. This is where POE, with all due respect, has dropped the ball. The mechanisms for desync detection do not work nearly as well as they should, causing players to entirely ignore certain skills. |
|
Very interesting to say the least... typically when im using WB im throwing out my Spectral Throw then WB away from enemies to maximize the damage from ST! but it makes sense i just dont understand why in a game like D3 when this happens the client will just stop for a second and then jump back into position after a moment while this game basically keeps on going then will just jump back out of no where without any warning unless you are paying attention to things like enemies taking (or not taking) damage and such! its interesting how the 2 games differ so much with the same type of synchronization going on!
Not sure what could be done to fix such an issue other than putting more trust into the client which seeing as how this game already has issue as far as cheating goes cant happen either! Sounds like IF they ever do fix such an issue they would potentially be an innovator in such technology in doing so! as i said before i dont seen to have as many issues with desync as others claim to have on these forums but im also about 16 hours away (Driving time) away from the US server! i wonder if players who say live in TX have even less issues with this? and if so maybe setting up 2 more servers one east coast and one west coast would be a perminate solution to this issue? but then again if they do that they would also have to do the same in other regions they serve and im quite sure we are talking some serious cash in doing so! probably not worth the investment for only one game but IF GGG were to have plans in the future to make more games OR extend this game to 10 acts like Chris Wilson says they plan to do it may be an option worth looking into! or maybe getting service from existing servers from other companies maybe something like that! There is a fine line between Consideration and Hesitation. The former is Wisdom, the latter is Fear. Last edited by Demonoz#1375 on Jan 5, 2015, 11:04:41 AM
|
|
" Again, this is an incomplete answer, but one reason is that for D3 the entire system is much easier - for instance, in D3 a projectile that is fired at you will hit you, even if you move out of the way. This is not the case with PoE. The challenge desync poses for developers is that you rarely have the one big cause (as the one I've outlined above). It is the number of small, hard to detect desyncs (entropy) that, at some point, very suddenly becomes catastrophic. The more complex your system is, the worse the risk for desync. Adding to this, D3 does seem to have a better resync mechanic. Bigger budget, more developers. When people (including myself) ask for GGG to fix desync, what we're essentially saying is 'mitigate against the effects'. D3 is a lot quicker in identifying when desync happens, thus quicker in resyncing, thus causing more rubberbanding. This is nontrivial stuff. " There is a number of techniques you can implement. I personally find it unfortunate that the devs are not sharing their insights with the community, so we're largely left speculating about the inner workings of the engine. However, some flaws with the current system are obvious, so without going into technical details I for one am sure that you can do better than what we have now. " More servers will only help a little. Unless your ping time goes above ~150ms (or changes rapidly), you can actually mostly correct for the desync happening, and most servers will give you considerably less than that. The bigger issues are not caused by real latency in a technical sense, but by lag spikes or package loss. Just to give a broad idea of the latter, there are essentially two ways of communicating. One is by strictly sequential streaming: Client sends package 1, server acknowledges 1, client sends package 2 etc. In practice, this approach is too slow for action games. The other approach is more fire and forget. Client sends packages 1,2,3, which may reach the server in the order 3,1,2 because they took different routes. Maybe the server only gets 3,1, because package 2 was lost (this happens quite frequently). Even if you detect this immediately (which you cannot) this is a huge problem in terms of keeping server and client synchronized. |
|
" Indeed fluctuating connectivity performance is the biggest issue, not high latency. Having a low latency like 30~ms that fluctuates between 30 and 50ms often, will incur desync much more often then a person who has a connection that fluctuates between 30 and 40ms or rarely if ever fluctuates. A person with 200~ms that fluctuates between 190 and 230ms is more likely to see desyncs then a person with a reasonably consistent 250~ms connection. Computer specifications: Windows 10 Pro x64 | AMD Ryzen 5800X3D | ASUS Crosshair VIII Hero (WiFi) Motherboard | 16GB 3600MHz RAM | MSI Geforce 1070Ti Gamer | Corsair AX 760watt PSU | Samsung 860 Pro 512GB SSD & WD Black FZEX HDD Last edited by Nicholas_Steel#0509 on Jan 8, 2015, 9:58:41 PM
|
|
Very interesting stuff vezuial thanks for the info!! i certainly have a netter understanding now of why this issue is here and why it such a challenge to fix!! guess its not quite as simple as people think!
All we can do i guess is wait.. im sure they will figure something out with time! Desync can be a pain in the ass but its not so bad the game is completely unplayable so i guess its just something we have to live with for the time being! There is a fine line between Consideration and Hesitation.
The former is Wisdom, the latter is Fear. |
|