Синхронизация AI NPC в многопользовательской игре

Я начал разрабатывать небольшую многопользовательскую гоночную игру, очевидно, что мы используем все методы предсказания игроков, методики компенсации мертвого счета и компенсации запаздывания, которые используют Half Life, Quake и Unreal - однако мы планируем также иметь в игре десятки автомобилей ИИ.,

Первоначально мы решили просто отправить случайное начальное число всем клиентам, и они будут рассчитывать позиции ИИ и т. Д., Однако мы столкнулись со следующей проблемой:

  1. Все клиенты получают семена для запуска автомобилей AI
  2. Клиенты получают обновления движения только для игроков в пределах их прямой видимости
  3. Игрок А бьет машину NPC
  4. Игрок Б входит в кадр игрока А

Теперь, так как игрок B не получил движения игрока A, он будет считать, что машина AI все еще движется, как и должно, и не будет рассчитывать на то, что игрок A сбил одну из этих машин...

Короче говоря, как вы можете синхронизировать ИИ-юниты, на которых воздействовали игроки?

1 ответ

Предположительно, ваш сервер знает о каких-либо коллизиях. В этом случае просто оповестите всех своих клиентов о результатах столкновений - по существу, повторно отправив ИИ на клиентов, в точке столкновения, с новыми направлениями, скоростями, семенами ГСЧ и т. Д.

Другие вопросы по тегам