Хотя детали могут отличаться, общие рамки довольно старые. Вот краткий обзор:
В ранних играх fps, таких как doom и Quake, позиция игрока обновлялась только после ответа сервера на вашу команду перемещения. То есть вы нажали кнопку перемещения вперед, и клиент сообщил об этом серверу, сервер обновил вашу позицию в своей памяти и затем передал новое игровое состояние вашему клиенту с вашей новой позицией. Это привело к очень медленной игре: стрельба, даже движение в узких коридорах, была игрой предсказания отставания.
Новые игры позволяют клиенту самостоятельно управлять стрельбой и передвижением игрока. Хотя это привело к безостановочному движению и открытию огня, оно открыло больше возможностей для мошенничества, взломав код клиента. Теперь каждый игрок перемещается и стреляет независимо на своем компьютере и сообщает серверу, что он сделал. Это ломается только тогда, когда два игрока сталкиваются друг с другом или пытаются одновременно усилить власть.
Теперь у сервера есть этот поток состояния клиента, приходящий от каждого игрока, и он должен синхронизировать их и сделать из них последовательную игру. Хитрость заключается в измерении задержки каждого игрока. Конечная цель состоит в том, чтобы иметь возможность стрелять из оружия с очень малой задержкой (такого как снайперская винтовка или рейлган) в противника, движущегося вбок, и правильно стрелять. Если задержка каждого игрока известна, предположим, что игрок A (задержка 50 мс) стреляет из пистолета B (задержка 60 мс). Чтобы нанести удар, выстрел должен поразить В, где В был 60 мс назад, откуда А был 50 мс назад.
Это очень грубый обзор, но он должен дать вам общее представление.