Fast-Paced Multiplayer (Part I): Client-Server Game Architecture
As a game developer, you usually don't care whether a player cheats in your single-player game - his actions don't affect anyone but him. This leads to a seemingly simple solution - you make everything in your game happen in a central server under your control, and make the clients just privileged spectators of the game. In other words, your game client sends inputs to the server, the server runs the game, and you send the results back to the clients. In summary: the game state is managed by the server alone. The server updates the game state periodically, and then sends the new game state back to clients, who just render it on the screen. Your client gets the new game state") 50 ms later. The authoritative server architecture is pretty good at stopping most cheats, but a straightforward implementation may make games quite unresponsive to the player.