Technical solution to eliminate desync in single-player sessions
" Come on man, nothing you've said so far permits ONLY critical hits to be tampered with. The fact that you would use that as a comparison to make it look like your 'solution' only had the smallest of drawbacks is disingenuous. As is making up random stats. |
![]() |
When reading OP I wanted this to work so bad...but sadly I have to agree with the criticism posted.
Desync in this game feels very very frustrating and...basically demoralizing. It feels like another Halting Problem. You want it to be solved so so badly, but it's just not theoretically possible to do so :/ However, it would be great if there were some advanced computer scientists investigating this subject in GGG, but we know GGG is not a multinational multimillionaire super company so they can't have that kind of stuff :/ |
![]() |
" No. It doesn't matter which rounding mode you use consistently, you can still get the client/server rounding different because of small inconsistencies. Consider 1.49999 vs. 1.50001, and 1.99999 vs. 2.00001. You can't correctly round both these pairs of numbers. Any rounding mode that handles the first pair fails on the other, and vice versa. " But they will disagree on whether it's equipped, or disagree on the quality, which affects the stats. This can easily cause desync, especially in a system like this which is so fragile and intolerant of minor inconsistencies. " Even with virtually no latency, switching gear in combat will cause desync (see above). Even with virtually no latency, the server and client fundamentally disagree on the issue of death vs. near-death. Code warrior Last edited by Rhys#0000 on Nov 19, 2013, 11:07:26 PM
| |
" You don't need this much precision for the combat calculations, that's what im saying. Reduce your precision and you shouldn't have this problem. " No they won't disagree. Equipping/unequipping would be part of the input snapshot (as it currently is). The crafting/upgrading would be strictly server validated, and would require a re-sync. " This is only true if you upgrade/craft an equipped item. I think players would be okay with desync happening during equip/unequip either way. " No, the client's snapshot would include death. If it doesn't send a snapshot, then the server simulation takes precedence. |
![]() |
" Of all the GGG responses to desync on this thread the above pathetic statement is the ONLY one concerning what they are trying to do NOW. Last edited by poeticheretick#5885 on Nov 19, 2013, 11:11:04 PM
|
![]() |
" What else could be tampered with? I think you must be misunderstanding something. If you were to write a hack that tried to optimize more than a single calculation, the odds would be so stacked against you that it would be virtually impossible to calculate. I used critical strike because any other value that I can think of would not provide noteworthy gains. Now that I think of it, the PoE client itself could even build this in as part of their critical strike calculations. I believe the 'gain' can be eliminated completely using some clever tactics, but id have to crunch the numbers. Basically, PoE could run heuristics on the number of critical strikes the player is rolling and curve it accordingly. So if some random player is rolling crits 3x more frequently than he should be, heuristics would start to kick in to make an adjustment. " The core of my proposal is a deterministic seed. Please read my post before making replies like this. Last edited by qwave#5074 on Nov 19, 2013, 11:29:00 PM
|
![]() |
" Yes, and that's why it's a pipedream that would fail in practice. Even if all state variables are regenerated deterministically, asynchronous open-loop simulations will eventually drift out of sync with each other. The inevitable discrepancies must be resolved and GGG chose to do so by revising the client's state with the server's. In that situation, the server could not instead "validate" the client's results - for the same reasons the client was unable to reproduce the server's results. |
![]() |
GGG obviously doesn't know how this game works and should just stop wasting their time... let qwave re-code the game already.
My words are poetry and thus not subject to spellcheck or the laws of grammar.
|
![]() |
" The snapshots are being streamed to the server in realtime. Please explain how a deterministic simulation can drift out of sync? By calling it deterministic, it cannot drift out of sync. I would love for you to tell me how something deterministic can also be non-deterministic at the same time. Maybe you have discovered some new laws in physics that im not aware of. Last edited by qwave#5074 on Nov 19, 2013, 11:38:01 PM
|
![]() |
" No movement in physics is deterministic. All movements are inheretily non-deterministic, but the probabilities can in many cases be so high that we can for all practical purposes treat those cases as if they were deterministic. This message was delivered by GGG defence force.
|
![]() |