Netcode: Prediction & Reconciliation

December 5, 2025

Netcode Articles

Overview - TL;DR

In a basic client-server architecture, the clients are essentially boxes that send input and display server state. However, this feels awful with any latency - press an input, wait for the server to receive and process it, then wait for the server to send the state back.

To improve this, we are going to locally predict what effect our input will have - e.g. moving and shooting. This is known as client-side prediction, or just prediction. However, we won't always predict correctly - what if we are moving along, but we've actually been killed? We won't know until the server tells us, so we keep on predicting our movement while we are actually dead on the floor.

That's where reconciliation comes in. Server reconciliation (bit of a misnomer in my opinion) is where the client receives the server's authoritative state and corrects (or reconciles) their previous predictions. In the best case, the prediction matches the server's state and no corrections are needed - but you cannot always predict correctly.

Intro

Hey!


alt text here - an image of (blank)
Text description here. Can be multiple lines too!

Scroll up to article links