| ▲ | xnx 8 hours ago | ||||||||||||||||||||||||||||||||||||||||||||||
Is there any reason that transmitted data would be much larger than player inputs (e.g. keystrokes and mouse movement)? | |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | gafferongames 8 hours ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Some games are networked deterministically, so that you can send only the inputs, and the game plays out exactly the same way (down to a checksum matching for all game state in memory across all players). For example many RTSs are networked this way. They can have thousands or tens of thousands of units, but send only inputs. The classic article on this being 1500 archers on a 28k modem: https://zoo.cs.yale.edu/classes/cs538/readings/papers/terran... The problem is that as player counts increase, the chance that any one player is late delivering inputs to the server (or to other players, if peer-to-peer) approaches 100%. A deterministic simulation cannot stay deterministic, unless it has the correct inputs for all players, so the game has to pause and wait for inputs for all players before stepping the authoritative game state forward. This is why high player count games like MMOs are not usually networked deterministically. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | kridsdale1 8 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Typically you send state, not inputs. To prevent cheating. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||