Введение

Клиентское предсказание — это техника сетевого программирования, используемая в видеоиграх для маскировки негативных эффектов высокой задержки соединения. Эта техника стремится сделать реакцию на действия игрока более мгновенной, одновременно управляя этими действиями на удалённом сервере. Клиентское предсказание подразумевает, что клиент локально реагирует на ввод пользователя до того, как сервер подтвердит этот ввод и обновит состояние игры. Таким образом, вместо того чтобы просто отправлять данные управления на сервер и ждать обновления состояния игры в ответ, клиент параллельно с этим предсказывает состояние игры локально и предоставляет пользователю обратную связь, не дожидаясь обновления от сервера. Клиентское предсказание снижает проблемы, связанные с задержкой, поскольку исчезает задержка между вводом и визуальной обратной связью на стороне клиента, вызванная временем сетевого пинга. Однако это также приводит к рассинхронизации состояния игры на клиенте и сервере, которую необходимо учитывать для сохранения игрового процесса. Клиент включает порядковый номер в каждый пакет данных, отправляемый на сервер, и сохраняет локальную копию. Когда сервер отправляет авторитетное обновление клиенту, он включает порядковый номер последнего обработанного пакета для этого клиента. Клиент принимает новое состояние и повторно применяет пакеты, которые ещё не были обработаны сервером, что в большинстве случаев полностью устраняет видимые проблемы рассинхронизации. Первым известным шутером от первого лица, использовавшим клиентское предсказание, был Duke Nukem 3D, в котором эта функция была встроена начиная с shareware-версии от 29 января 1996 года. Эта техника также была важной особенностью QuakeWorld, популярного дополнения к Quake. Хотя сетевая игра присутствовала в оригинальной Quake, она была оптимизирована в основном для локальных сетей. Разработчики Quake, имея доступ к высокоскоростным домашним подключениям (что было редкостью в то время), не учли свои предположения о высокой пропускной способности и низком пинге, из-за чего игра в Интернете была разочаровывающей для пользователей с dial-up подключением. После серии экспериментов в длительном закрытом бета-тестировании id Software выпустила QuakeWorld с новой прогностической моделью, которая оказалась популярной как среди игроков с высокой, так и с низкой задержкой.