Technical solution to eliminate desync in single-player sessions
" The client will stream the snapshot to the server during play. Reordering actions like this would likely not be possible or optimal. |
|
" I'd worry that you might be able to do an attack on the seed data using a very limited set of initial actions, that might let you be able to predict, in a small window, the result of crafting operations. Certainly letting each action "kick" the RNG state a bit is going to prevent that from being the case for any human-inputted set of instructions, but in combination with any sort of bot software you might be able to get enough control on it. I think that would be very difficult to do, but I'm not convinced that it's impossible or not within reason (I've never written botting software). IGN: SplitEpimorphism
|
|
"There's no way for the server to check against this if it's not receiving continual updates. Either the server trust the client — which means hacks — or the server verifies everything the client does — which means just as much desync as currently, but with the roles reversed. This entire suggestion is a security nightmare and utterly unfeasible. When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted.
|
|
syrioforel, I would agree that all crafting actions should be performed on the server. I am specifically talking about combat/pathing that causes desync.
|
|
" Computing even a single alternate sequence of actions that would collide with what you actually did would be very difficult. IGN: SplitEpimorphism
|
|
" ScrotieMcB, please do some research on deterministic random number generation. It's easily possible and is done constantly on numerous online games. I am not saying that the server trusts the client, I am saying that the server should only perform the actual validation until AFTER the client leaves the instance. In other words, desync will not happen because the authoritative checks do not happen until the end. |
|
" I can't see any way for foreknowledge to be particularly useful in combat. For pathing alone, this is also fine. For map data, you'd have to be careful to not allow maphacks. However, I don't think you were mentioning map data necessarily. Seems fine, then. IGN: SplitEpimorphism
|
|
" As long as the map is seeded as the player explores it, map hacks would not be possible. In other words, the randomly generated number would change anytime a random number is rolled, which means that a single attack calculation would in effort 'reroll' the entire unexplored map, making it completely unpredictable. Last edited by qwave#5074 on Nov 18, 2013, 1:04:56 AM
|
|
" This is not true. If you have a log of the events (user inputs) as they occur, you can verify afterwards that everything happened as it should have, and bring down the banhammer should something shady occur. You wouldn't want one large log sent to the server, since that would allow trial-and-error optimization of the game state, but you could get away with a much higher latency without exposing yourself to client-side hacking. IGN: SplitEpimorphism
|
|
" I don't think maps are usually generated "as you go," but are done once as the zone is first entered. It might be interesting to see a map system that does generate a map in pieces while still producing reasonable layouts. IGN: SplitEpimorphism
|
|