This is a series of articles explaining the architecture of client-server multiplayer games with high update rates, for example an FPS. It focuses on how to avoid issues related to lag, low-frequency server updates, and synchronization between players and the server.
Over the years, this series has become one of the main references about the topic on the Internet. In order to improve it even more, I’ve recently added a new Sample Code and Live Demo page that lets you play with the algorithms and tweak the parameters.
Part I: Introduction
Part II: Client-Side Prediction and Server Reconciliation
Part III: Entity Interpolation
Part IV: Headshot!
Sample Code and Live Demo: Experience all these concepts hands-on.