Diablo 3 has desync.
I'm going to try to give a balanced observation of D3's netcode since I started playing again (not played since AH-simulator vanilla), hopefully I won't just end up getting trashed by both the White Knight Desync apologists AND the Doomsaying Steamchart-tards.
First off, yes there is desync. I almost exclusively see it whenever I am facing off against enemies with knockback, and only when I am moving around a lot. Generally, it's a case of "Client says I was knocked back to the west, server says I was knocked back to the south" brought upon changing my orientation to the monster a split second before I get hit. My guess is that the server trusts the client somewhat, maybe not 100% but I'd imagine whenever there is a little bit of entropy between the client and server, the server probably would correct in favor of the client. It probably does this quite often to ensure there are fewer opportunities for a cheater to try to take advantage of this trust. It is possible to experience rubberbanding, however. I generally find this to be the case when I set my movement speed well above the gear cap using combinations of skills and move erratically. The gear cap being 125% movement speed, and through clever skill usage you can for short periods get it up to 175 or even 200%. Another big thing I noticed is how D3 handles movement skills. In PoE, movement skills can cause some tremendous amounts of Desync, mostly because the client has an origin and destination that isn't necessarily the same as the server. In D3, there is a short 0.5-1 second delay between activating a movement skill and getting the results. I suspect this time is taken for the server and client to sync up, so that the player always ends up in the planned destination both server-side and client-side. It sort of feels bad to have a slight delay between trying to get out of a bad situation and actually getting out, but in my opinion it's preferable to what PoE has, where you technically have half as much of a delay even though you see no delay (since you still have to send the command to the server). Overall I definitely think a few skills like Whirling Blades, Leap Slam, and especially Lightning Warp could benefit from this method by simply shifting where the delay happens (for example, there is a stop animation time after completing Whirling Blades, which could easily be moved as a warm up animation to hide the re-syncing). Another case of subtly masking server-client resyncs is when it comes to environmental hazards. Whenever an elite pack starts laying down environment-focused hazards (pretty much anything you don't want to be standing near/by unless you're horribly overgeared), there's always a very long start-up animation. This accomplishes two things: First, it masks any resync period the client-server goes through to make sure both agree that the hazard is at the same place (avoiding cases in PoE where players die by a fully-charged Flameblast when on the client the enemy hasn't even engaged the player), and second it gives players enough time to recognize the threat and get the heck out of the way; an experience I feel only Flameblast and Touch of God is slow enough to really give to players. Then there's a few smaller things that I noticed about movement, such as how players don't automatically navigate around obstacles in D3 whereas they do with small ones in PoE. I suspect this eliminates "staircase desync", where in PoE if you approach a staircase in just the right circumstances, the client will climb it but the server will get stuck, forcing a resync. So overall, the way I think D3 netcode works is: Server trusts the client, but it keeps close tabs on it. Probably something like, every check-in resync, the server takes a look at where the player is and projects a range of locations the player could be within the next resync check-in. Since the player speed is much slower in D3 this range is pretty small (though it can break down if you dramatically increase player speed). Any time the player does something that could possibly move the player position outside the projected range, the action has a slight delay while it is resynced with the server. IGN: Ikimashouka, Tsukiyattekudasai, DontCallMeMrFroyo
|
![]() |
Your net must be terrible or something because despite I fucking hate that game and played it for like probably 399929429429494 years I have never EVER experienced desync in that game.
I'm like paragon 492 or some shit and fucking 205 in the season ladders. Dys an sohm Rohs an kyn Sahl djahs afah Mah morn narr Last edited by Coconutdoggy#1805 on Sep 7, 2014, 9:50:57 PM
|
![]() |
It's very rare and only happens under specific circumstances, but hey, thanks for reading the thread and not just responding to the title.
IGN: Ikimashouka, Tsukiyattekudasai, DontCallMeMrFroyo Last edited by gilrad#6851 on Sep 7, 2014, 9:52:43 PM
|
![]() |
I didn't play any D3, so it's hard for me to comment on D3 part, but regarding movement skills in PoE I can agree.
There might be a huge of amount of technical problems here (starting from server performance/scaling and ending with the fact that GGG is a small, if very dedicated, team compared to blizz). One solution I'd try would be issuing /oos automatically when one uses movement skill, but it seems too simple, so probably they've already tested and rejected the solution for some reason. |
![]() |
" Thank you for posting this. This is indeed a very annoying effect with PoE, and one that could very easily be mitigated. The flame blast exile is particularly annoying, up to the point that I consider leaving a map before going up against being one-shot from offscreen. The other thing D3 seems to handle better - this is speculative, as I can only observe the behavior and wonder what is going on under the hood - is automatic resync (causing the occasional rubberbanding). PoE effectively has none. It seem like it will only resync after N actions have failed because of desynced positioning, which depending on your build is pretty much a guaranteed death. I'd speculate that D3 is using control bits to assure the character position at least, whereas PoE does not. |
![]() |
Yeah, I feel that D3 and PoE have different design philosophies when it comes to resync.
PoE tries to resync as little as possible, only when entropy is at its worst; D3 it seems resyncs constantly, sometimes hiding the process within skills, but generally it's not all that noticeable because there's very little correction to be made with each resync. Things start to get a little confusing when you consider who the server trusts when it comes to monsters. It could be that the server trusts the client yet again on monster positions, which would make interacting with them seem very clean and easy (but I can't think of any way to ensure the client isn't cheating, it's probably a very complicated mess to be honest). Or it could be that the client trusts the server on monster positions, and things like hitting monsters and monsters hitting players are run off a similar "check if it's reasonable with each resync" setup I mentioned for player positioning. That is, if the last resync says there's a monster next to the player, then between that and the next resync the server expects the monster to attack the player unlesss the player has ran away. Things like damage are probably calculated on both sides simultaneously and if there's any discrepency, the server probably kicks in and forces a resync (though I've never seen this, so I imagine it only does this if you try to cheat by, for example, modifying your memory so that monsters all do zero damage). Anyway, just some more thoughts. IGN: Ikimashouka, Tsukiyattekudasai, DontCallMeMrFroyo
|
![]() |
D3 has simple mechanics (no chance to hit, no action interruption, move-through enemies/player) and "cheats" in some aspects (hits cant be manually evaded once monster attack animation starts etc). The desync is still there, you can notice it when the game resyncs (known as "rubberbanding"), but the gameplay feels very smooth most of the time.. That probably is what they wanted to achieve, but IMO the tradeoff is not worth it..
I reccomand reading this article IGN: Eric_Lindros CET: Timezone Last edited by Ludvator#6587 on Sep 8, 2014, 6:57:54 PM
|
![]() |
" this. People that compare and say "well diablo 3 doesnt desync so its a solveable problem and GGG need to work on it more" do not understand. If you want a game with no desync then the consequence of that is it will be like D3. The game not allowing stupid things to happen like running through packs of monsters and actually there being skill involved, not just gear checks, is to me preferable and if desync issues occasionally are the price for that, then count me in, and hence I am in, and playing a great game. Personally desync is like a problem very rarely even if it happens fairly frequently and noticing it early and not playing like a clown is the best way to minimise/avoid it. People say it makes the game unplayable. If this is true, explain how players reach level 100 without dying. It just isnt that big of a deal. I have died in HC leagues perhaps around 12 times. Desync was a part of 1 of these and it was mostly my fault for trying to run away from kole through a huge pack of monsters. |
![]() |
d3 doesnt have desync
Dogs Summoner - http://www.pathofexile.com/forum/view-thread/885199
|
![]() |
It really bothers me how people keep perpetuating those completely and utterly false statements.
First off, players can't move through monsters. Unless they have a special effect, but that's no different than PoE. Saying players can just move through mobs is false on all relevant accounts. Second, the fact that there are chance to hit mechanics has no relevance whatsoever (not to mention monsters can miss players anyway so the statement isn't completely accurate anyway). In PoE, only registered hits show feedback. Dodged attacks simply don't return data to the client. In D3, all attacks hit, and dodged attacks simply return zero damage and a special message to the client. End result is functionally the same, except in D3s case it results in less visible entropy between the client and server. Now D3 does make some concessions for a smooth gameplay experience (which I mentioned in the OP), but it isn't the two given above. IGN: Ikimashouka, Tsukiyattekudasai, DontCallMeMrFroyo
|
![]() |