Client-server Action Synchronisation
" "Doorways are large" "Minimal room obstructions" lol yeah, huge issues there. |
|
Obviously, constantly re-synchronizing everything is tremendous overhead.
But what about having only a few most important entities, the main character, unique bosses and rare mobs, positions linearly interpolate? That way, it wouldn't be as twitchy as someone typing "/oos" every tenth of a second, minimizing the experience of rubber banding. Not costly at all on bandwidth to have 5-10 entities per instance have their positions updated every few ticks. Having that natural 100-200ms discrepancy in positions isn't the part of desynchronization that's driving people mad. It's the important stuff (Kole, Brutus, Vaal, your own char) suddenly teleporting for a screen-sized portion of the zone. Constantly forcing important entities to interpolate towards their respective positions is what counts. Few white out-of-place mobs are only harmful in short races, where you run through narrow corridors. In 99% of endgame playtime, having white skeletons desynced, even by a lot, is completely negligible. Also, CONVEY DANGER. Telegraphing large hits gives time to sync them with clients. That way you can keep your 1-shot high dmg megaburst mechanics in game, and retain the feeling of fairness "I knew I shoud've not been standing under that large Vaal hammer ball, shit was scary" | |
Leap Slam (especially through doorways) also causes a fair amount of desync quite regularly.
There are many objects strewn about the ground that snag the character. Map clutter I suppose. Perhaps try lessening that. Pacific (GMT -8) Time
|
|
" I want to respond to your post because for somebody who's is claiming to know a lot about networking your assumptions are shocking. " What?! You're basically answering your own question right there. You're surprised why GGG hasn't moved to a partial trust (whatever that concretely means)? Well it's maybe not that easy as you are assuming there? " Good question, but you had to leave it as a question. That last sentence is another bold assumption. " You're assuming that it's a feasible solution but at the same time you're saying it doesn't work well in multiplay? " GGG doesn't have the time and money to toy around and somebody who works for a big company like yourself should know that. Also what the hell do you mean "the answer is increasing the servers"? " Yeah I bet you have a lot more of that stuff, man :| Last edited by Startkabels#3733 on Apr 21, 2014, 12:29:43 PM
|
|
I don't understand why Diablo 3 feels so much better compared to Path of Exile in terms of 'desync' or whatever the issue is.
D3 is not that more simple compared to PoE, they both have enemy collision, dodging/blocking, stunning and knockback, PoE has mazes which D3 doesn't have, as well as accuracy but that's it I think. D3 doesn't seem to have issues with fast movement skills, when I use vault, strafe or whirlwind in large mobs of enemies, I don't remember encountering 'desync'. I'm not saying D3 never lags but when it does, it doesn't seem related to what's happening on screen and it's always quickly fixed. I don't know if it's desync but something is really wrong about PoE and I don't know if simplifying the game would really fix the issue when D3 seems to handle it fine. Good luck finding what the real problem is GGG. |
|
Sorry, I don't want to be rude here but to the people who can't understand why D3 doesn't have desync:
Read the original post because GGG's answer couldn't possibly be any clearer. /facepalm Last edited by Startkabels#3733 on Apr 21, 2014, 12:31:26 PM
|
|
" He never reads the posts nevermind does he even play the game. He's just a Blizzard plant. My Keystone Ideas: http://www.pathofexile.com/forum/view-thread/744282
|
|
" I had the same experience with D3...there was rarely any desync, and certainly not when I was whirlwinding through mobs or hit-and-running through a doorway. I don't see how "chance to hit" can have that big of an effect in this case. No, I suspect the real reason is this bullet point (which I wish GGG would expand on): " I'm guessing this means that in D3, one can more easily get away with running into a doorway, aggroing a bunch of monsters, then running back out when them nearly surrounding you. PoE's server side must be stricter, more likely to say "uh-uh, you're still stuck in the room behind a pack of vipers. Sorry, client!" *Dead* Hopefully their coming optimizations will reduce this issue. But I'd love to know exactly what the "concessions" that D3 (for example) uses to make for such a smoother experience. Are client movement hacks really such an issue in those games? Might some of these compromises be worth it? I'd sure like to know. I've had to modify my play style to account for desynch, and that's the wrong kind of "hardcore". In the morning Laughing happy fish heads In the evening Floating in the soup Last edited by PrimeHydra#4228 on Apr 21, 2014, 12:46:14 PM
|
|
You should probably include in the manifesto an explanation of why a consistent ping is required to minimize the frequency of experiencing a desync (It's required for prediction technology to work well). Currently you vaguely touch on this topic with a single vague line.
" 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 Apr 21, 2014, 12:47:40 PM
|
|
" Why not client side calculations verified via server side calculations? Rather than waiting for a response from the server, carry out the action, client does all calculation and displays result, send the action to the server which verifies that it is valid. If it is valid the server allows the client to continue. If the action falls outside of the bounds of what is an acceptable or possible outcome, serverside calculations recognize that outcome is not within possible outcomes and corrects the client outcome (or shuts down client if tampering with the client side calculations are detected). If you have 50% chance to evade an attack from a boss but someone tampered with the client and the server sees the last 2 swings were evaded, it can attempt to correct the action, likely causing some desync. If the server cannot verify the correction fixed the calculation from the client it can shut down the client's session and flag them as having a modified client, i.e. cheating. Rather than having constant desync you only really run into a desync situation when the client, for whatever reason, performs actions that shouldn't be possible. |
|