Протокол Lockstep - Lockstep protocol

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

Чтобы избежать этого метода обмана, протокол lockstep требует, чтобы каждый игрок сначала объявил «обязательство» (например, хэш стоимость акции); это обязательство представляет собой действие, которое:

  • Не может использоваться для вывода о действии; и
  • Легко сравнивает, соответствует ли действие обязательству.

После того, как все игроки получили обязательства, они раскрывают свои действия, которые сравниваются с соответствующими обязательствами, чтобы убедиться, что обязательство действительно является отправленным действием.[2]

Недостатки

Поскольку все игроки должны дождаться поступления всех обязательств перед отправкой своих действий, игра продвигается так же медленно, как и игрок с наибольшей задержкой. Хотя это может быть незаметно в пошаговая игра, онлайн-игры в реальном времени, такие как шутеры от первого лица, требуют гораздо более быстрой реакции.

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

Асинхронный протокол блокировки

Чтобы преодолеть очевидный недостаток простого протокола lockstep, асинхронный существует вариант протокола, в котором игроки продвигаются во времени без каких-либо переговоров с другими игроками до тех пор, пока не произойдет взаимодействие между игроками, известный как «режим блокировки». Этот режим может быть определен определенной областью вокруг игрока, например сферой, в которой игрок может влиять на игровой мир.

Такое взаимодействие может происходить только тогда, когда, например, области влияния, окружающие двух игроков, пересекаются.

внешняя ссылка

Рекомендации

  1. ^ Алгоритмы и сети для компьютерных игр, Йоуни Смед и Харри Хаконен
  2. ^ "Чит-Proof Playout для централизованных и распределенных онлайн-игр", Боуман и Левайн, 2001