Skip to content
Preptima

Game Server Architecture

The engineering of shared, real-time simulated state across machines that cannot agree on what time it is. Its whole difficulty is that a game must feel instant while the network is not, so every technique in it is a choice about where to put the error.

Niche demand18 min readNetwork programmer, Gameplay engineer, Game server engineer, Backend engineer on live-service games, Engine programmer, Technical directorUpdated 2026-08-10

Assumes you know: C++ or C# to the point where you can write a loop without a tutorial open, What a game loop is, and what a fixed timestep means, Basic networking - UDP against TCP, latency, jitter, packet loss, Vector arithmetic and enough physics to integrate a position

Overview

What this area actually covers

Two or more machines have to agree, continuously and many times a second, about the position and status of everything in a shared simulated world, while the network between them delivers information late, unevenly, and sometimes not at all. That is the whole subject. Everything with a name in it — tick rates, snapshots, prediction, reconciliation, lockstep, rollback, dead reckoning, lag compensation — is a specific answer to a specific consequence of that one situation.

What makes it a distinct discipline rather than an application of general distributed systems is the deadline. A distributed database can take another fifty milliseconds to reach a correct answer, and usually should. A game cannot: there is a frame going onto a screen in sixteen milliseconds and something has to be drawn in it. So the field is not built around achieving consistency, it is built around choosing which inconsistency the player will notice least. Every technique here is a decision about where to put an error you cannot eliminate — onto the local player's controls, onto the remote player's appearance, onto the bandwidth bill, or onto the person being shot at.

Concretely, the area covers: what the authoritative simulation is and which process owns it; how often that simulation steps and what that rate costs; what goes on the wire and how it is compressed; how a client makes input feel instant when confirmation is a round trip away; how it smooths motion between updates that arrive too rarely to draw directly; how the server resolves an event that a player triggered in a version of the world it has already left behind; and where the trust boundary sits, because in a competitive game the player's own computer is a hostile environment.

There are three things people wrongly bundle in. The first is engine and rendering work: how a scene is drawn, how animation blends, how the material system works. That shares a codebase and almost no reasoning. The second is general backend for games — accounts, stores, leaderboards, telemetry, progression — which is real, large, well-paid work, and is ordinary distributed backend engineering with game-shaped nouns. Playing a match involves both a game server and that backend, and they are entirely different jobs. The third is infrastructure: running fleets of session servers, placing capacity by region, keeping warm pools full. That is closer, and it is usually a platform or SRE specialism rather than netcode.

The boundary worth drawing most carefully is the one against system design. Multiplayer scaling questions — how do you shard a world, how do you allocate servers, how does matchmaking work — sit in system design, and they are asked in system design rounds. What is left, and what this area really is, is the simulation layer: the tick, the state, and the techniques that hide latency inside it. The interesting questions in that layer are not about scale at all. They are about a single client and a single server disagreeing about one entity's position by thirty centimetres, and what you draw.

Where to go next

Now practise it

3 interview questions in Game Server Architecture, each with the rubric the interviewer is scoring against.

All Game questions
game-servernetcodestate-synchronisationlatencymultiplayer