Мы делаем шутер от первого лица. Клиент отправляет свою позицию на сервер с фиксированной скоростью (в настоящее время на 10 Гц). Сервер отправляет одно сообщение с указанием позиций всех игроков всем игрокам с одинаковой частотой (10 Гц).
Как и ожидалось, движение довольно изменчиво, поскольку игра со скоростью 60 кадров в секунду получает обновления только 10 раз в секунду. Как лучше всего сгладить это движение? Наиболее очевидный способ - это интерполировать между двумя последними пакетами, чтобы интерполяция заканчивалась, когда мы получаем новый пакет. Но это добавляет мгновенную задержку в 100 мс для всех игроков.
Другой способ состоит в том, чтобы использовать скорость и ускорение, полученные из последних нескольких пакетов, чтобы предсказать, где находится игрок до прибытия следующего пакета, однако, если прогноз неверен, игрок будет склонен прыгать, как только будет получен новый пакет. ,
Кто-нибудь знает, как названия AAA решают эту проблему?
источник