Jump to content

Прогнозирование на стороне клиента

Прогнозирование на стороне клиента — это метод сетевого программирования, используемый в видеоиграх и предназначенный для сокрытия негативных последствий соединений с высокой задержкой . Этот метод пытается сделать ввод игрока более мгновенным, одновременно управляя действиями игрока на удаленном сервере .

Процесс прогнозирования на стороне клиента означает, что клиент локально реагирует на ввод пользователя до того, как сервер подтвердит ввод и обновит состояние игры. [1] Таким образом, вместо того, чтобы клиент только отправлял управляющие входные данные на сервер и ждал в ответ обновленного состояния игры, клиент также, параллельно с этим, прогнозирует состояние игры локально и дает пользователю обратную связь, не ожидая обновленного состояния игры от сервер.

Прогнозирование на стороне клиента уменьшает проблемы с задержкой, поскольку больше не будет задержки между входными данными и визуальной обратной связью на стороне клиента из-за времени проверки связи в сети. Однако это также приводит к десинхронизации состояний игры клиента и сервера, которую необходимо устранить, чтобы в игру можно было играть. [1] Обычно рассинхронизация исправляется, когда клиент получает обновленное состояние игры, но, поскольку мгновенная коррекция может привести к «привязке», обычно используются некоторые алгоритмы «сглаживания». Например, одним из распространенных алгоритмов сглаживания может быть проверка местоположения каждого видимого объекта на стороне клиента, чтобы увидеть, находится ли он в пределах некоторого эпсилона ошибки от его местоположения на стороне сервера. В противном случае информация на стороне клиента обновляется напрямую на стороне сервера (привязывается из-за слишком сильной десинхронизации). Однако, если местоположение на стороне клиента не слишком далеко, интерполируется новая позиция между клиентской и серверной сторонами; эта позиция устанавливается в пределах небольшого отклонения от местоположения на стороне клиента, которое обычно считается «достаточно маленьким», чтобы не мешать пользователю.

Другое решение проблемы десинхронизации, обычно используемое в сочетании с прогнозированием на стороне клиента, называется согласованием сервера . [2] Клиент включает порядковый номер в каждый ввод, отправляемый на сервер, и сохраняет локальную копию. Когда сервер отправляет клиенту достоверное обновление, оно включает порядковый номер последнего обработанного ввода для этого клиента. Клиент принимает новое состояние и повторно применяет входные данные, еще не обработанные сервером, полностью устраняя видимые проблемы десинхронизации в большинстве случаев.

Самый ранний известный шутер от первого лица, в котором использовалось предсказание на стороне клиента, — это Duke Nukem 3D , в который он был встроен с момента выпуска условно-бесплатной версии 29 января 1996 года. [3] [4] Эта техника также была характерной особенностью QuakeWorld , популярного дополнения к Quake . Хотя сетевая игра была включена в оригинальную игру Quake , она была оптимизирована в основном для игры по локальной сети . Имея высокоскоростное домашнее соединение (редкость в то время), дизайнеры Quake упустили из виду свои предположения о высокой пропускной способности и низком времени пинга, из-за которых игра в Интернете разочаровывалась для пользователей коммутируемого доступа . [5] После серии экспериментов в рамках длительного закрытого бета-тестирования id Software выпустила QuakeWorld с новой прогнозной моделью, которая оказалась популярной среди игроков как с высокой, так и с низкой задержкой.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Бернье, Ян В. (2001). «Методы компенсации задержки при разработке и оптимизации внутриигровых протоколов клиент/сервер» (PDF) . Проверено 19 декабря 2008 г.
  2. ^ Габриэль Гамбетта, Прогнозирование на стороне клиента и согласование серверов
  3. ^ Дрансфилд, Ян (14 июля 2018 г.). «Машинное отделение: Стройка» . Ретро-геймер (182). Великобритания: Future plc : 62–67. ISSN   1742-3155 . Проверено 24 ноября 2018 г.
  4. ^ Выпуск исходного кода Duke Nukem 3D (версия v1.5 на компакт-диске) — 1 апреля 2003 г. , см. domovethings(), fakedomovethings() и fakedomovethingscorrect(), Video Game Preservation, 15 мая 2019 г. , получено 15 мая 2019 г. {{citation}}: CS1 maint: другие ( ссылка )
  5. ^ Джон Кармак, QuakeWorld .plan
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 58f9408ba19421ab51a4f9f8ad0110f8__1633855740
URL1:https://arc.ask3.ru/arc/aa/58/f8/58f9408ba19421ab51a4f9f8ad0110f8.html
Заголовок, (Title) документа по адресу, URL1:
Client-side prediction - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)