Синхронизация AI NPC в многопользовательской игре
Я начал разрабатывать небольшую многопользовательскую гоночную игру, очевидно, что мы используем все методы предсказания игроков, методики компенсации мертвого счета и компенсации запаздывания, которые используют Half Life, Quake и Unreal - однако мы планируем также иметь в игре десятки автомобилей ИИ.,
Первоначально мы решили просто отправить случайное начальное число всем клиентам, и они будут рассчитывать позиции ИИ и т. Д., Однако мы столкнулись со следующей проблемой:
- Все клиенты получают семена для запуска автомобилей AI
- Клиенты получают обновления движения только для игроков в пределах их прямой видимости
- Игрок А бьет машину NPC
- Игрок Б входит в кадр игрока А
Теперь, так как игрок B не получил движения игрока A, он будет считать, что машина AI все еще движется, как и должно, и не будет рассчитывать на то, что игрок A сбил одну из этих машин...
Короче говоря, как вы можете синхронизировать ИИ-юниты, на которых воздействовали игроки?
1 ответ
Предположительно, ваш сервер знает о каких-либо коллизиях. В этом случае просто оповестите всех своих клиентов о результатах столкновений - по существу, повторно отправив ИИ на клиентов, в точке столкновения, с новыми направлениями, скоростями, семенами ГСЧ и т. Д.