Loading...
  OR  Zero-K Name:    Password:   

Post edit history

Desync widget

To display differences between versions, select one or more edits in the list using checkboxes and click "diff selected"
Post edit history
Date Editor Before After
9/11/2014 11:18:08 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:17:22 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:15:59 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:14:02 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:12:48 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:12:16 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:11:18 PMGBrankTheEloIsALie before revert after revert
9/11/2014 11:09:37 PMGBrankTheEloIsALie before revert after revert
Before After
1 I think you are confusing some things here, @Shadowfury333. 1 I think you are confusing some things here, @Shadowfury333.
2 \n 2 \n
3 Spring is not peer-to-peer (so no quadratic scaling of network connections) because every packet is sent from one client to the spring host and then from the host to all clients. The spring server still doesn't run the simulation and so has no clue what's going on until a client says "I won!", so similarly all clients are equally "right" due to a lack of a canonical state. 3 Spring is not peer-to-peer (so no quadratic scaling of network connections) because every packet is sent from one client to the spring host and then from the host to all clients. The spring server still doesn't run the simulation and so has no clue what's going on until a client says "I won!", so similarly all clients are equally "right" due to a lack of a canonical state.
4 (I apologize for calling everything "spring server" and "spring host" even if there's special names for them). 4 (I apologize for calling everything "spring server" and "spring host" even if there's special names for them).
5 \n 5 \n
6 Spring uses synced simulation. In video encoding terms, that's basically purely P frames. 6 Spring uses synced simulation. In video encoding terms, that's basically purely P frames.
7 Since transferring the full game state after every action is infeasible for virtually any "complex" multiplayer game ( you can probably get away with it in chess or other turn based games) , almost every contemporary multiplayer game relies on synced simulation to a certain extent, although most newer games include having certain states transmitted for replay ( and anti-desync) purposes. Examples include SC2, DotA 2, Path of Exile and many more. 7 Since transferring the full game state after every action is infeasible for virtually any real time multiplayer game ( you can probably get away with it in turn based games like chess) , almost every contemporary multiplayer game relies on synced simulation to a certain extent, although most newer games include having certain states transmitted for replay ( and anti-desync) purposes. Examples include SC2, DotA 2, Path of Exile and many more.
8 In video encoding terms, that's what I frames are used for. 8 In video encoding terms, that's what I frames are used for.
9 \n 9 \n
10 Running synced simulations in a peer-to-peer environment sounds like hell to me. If you have a server, then all packets are distributed in a defined order (and are thus received by the clients in a set order). Not sure how P2P would handle that. 10 Running synced simulations in a peer-to-peer environment sounds like hell to me. If you have a server, then all packets are distributed in a defined order (and are thus received by the clients in a set order). Not sure how P2P would handle that.
11 (Note that this implies that each client is only allowed to execute actions after the host has received the respective packet and returned it, which means that the game can feel "stiff" to control if your latency is higher. Client prediction is a common technique to work around this). 11 (Note that this implies that each client is only allowed to execute actions after the host has received the respective packet and returned it, which means that the game can feel "stiff" to control if your latency is higher. Client prediction is a common technique to work around this).
12 \n 12 \n
13 \n 13 \n
14 My point is, P2P or dedicated hosting are not directly related to how you run your simulation of the game. But spring does not use P2P, and thus P2P is not the reason for desyncs. 14 My point is, P2P or dedicated hosting are not directly related to how you run your simulation of the game. But spring does not use P2P, and thus P2P is not the reason for desyncs.
15 \n 15 \n
16 Basically, you can run synced simulations with or without the server also running the simulation (I reckon TF2 hosts would run a simulation of their own, but I'm not sure). Spring (and e.g. Warcraft 3) doesn't, so desync is an issue (and replays can only play forward). 16 Basically, you can run synced simulations with or without the server also running the simulation (I reckon TF2 hosts would run a simulation of their own, but I'm not sure). Spring (and e.g. Warcraft 3) doesn't, so desync is an issue (and replays can only play forward).
17 \n 17 \n
18 Do you have an example of a game that uses P2P hosting? I'd be interested to learn about how to maintain consistency in that... 18 Do you have an example of a game that uses P2P hosting? I'd be interested to learn about how to maintain consistency in that...