Skip to content

Online Multiplayer Game Server — Detailed#

flowchart TB
  subgraph Client
    GAME([Game client])
    PRED([Client prediction])
    INTERP[Entity interpolation]
  end

  subgraph Edge
    LB
    AUTH[Auth / account]
    LOBBY[Lobby / matchmaking]
  end

  subgraph Game[Game session]
    GS[Authoritative server / tick loop]
    SIM[Sim 30-60 Hz]
    SS[Snapshot diffs]
    INPUT[[Input queue per player]]
    LAG[Lag compensation / rewind]
  end

  subgraph Anti[Anti-cheat]
    KERN[Kernel-mode anti-cheat]
    SVR_AUTH[Server-authoritative checks]
    BEHAV[Behavioral detection]
  end

  subgraph Persist[Persistence]
    PROF[(Player profile)]
    INV[(Inventory)]
    LDB[(Leaderboards)]
    REPL[(Match replays)]
  end

  subgraph Voice
    VOIP[VoIP servers]
  end

  subgraph Ops
    METR[Match metrics]
    REGION[Region selection]
    DDOS[DDoS protection]
  end

  Client --> Edge --> Game
  Game --> Persist
  Anti --- Game
  Voice --- Game
  Ops --- Game

    classDef client fill:#dbeafe,stroke:#1e40af,stroke-width:1px,color:#0f172a;
    classDef edge fill:#cffafe,stroke:#0e7490,stroke-width:1px,color:#0f172a;
    classDef service fill:#fef3c7,stroke:#92400e,stroke-width:1px,color:#0f172a;
    classDef datastore fill:#fee2e2,stroke:#991b1b,stroke-width:1px,color:#0f172a;
    classDef cache fill:#fed7aa,stroke:#9a3412,stroke-width:1px,color:#0f172a;
    classDef queue fill:#ede9fe,stroke:#5b21b6,stroke-width:1px,color:#0f172a;
    classDef compute fill:#d1fae5,stroke:#065f46,stroke-width:1px,color:#0f172a;
    classDef storage fill:#e5e7eb,stroke:#374151,stroke-width:1px,color:#0f172a;
    classDef external fill:#fce7f3,stroke:#9d174d,stroke-width:1px,color:#0f172a;
    classDef obs fill:#f3e8ff,stroke:#6b21a8,stroke-width:1px,color:#0f172a;
    class GAME,PRED client;
    class INTERP,AUTH,LOBBY,GS,SIM,SS,LAG,KERN,SVR_AUTH,BEHAV,VOIP,REGION,DDOS service;
    class PROF,INV,LDB,REPL datastore;
    class INPUT queue;
    class METR obs;

Authoritative loop#

  • Server simulates at fixed tick (e.g., 30/60 Hz).
  • Receives inputs, advances sim, broadcasts state diffs.
  • Client predicts locally; corrects when server diverges (rollback).

Lag compensation#

  • Server stores rewindable history (~200 ms).
  • Hit detection: rewind to time T = client tick - latency, then check.

Glossary & fundamentals#

Concepts referenced in this design. Each row links to its canonical page; the tag column shows whether it is a high-level (HLD) or low-level (LLD) concept.

Tag Concept What it is Page
HLD Observability metrics, logs, traces, SLOs observability