Unity Multiplayer - преобразование синхронизации против установки синхронизации - агент navmesh - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в написании сценариев и пишу выделенный UDP-сервер для игры в стиле Mova 1V1 с использованием агента Navmesh.Должен ли я постоянно обновлять трансформации игрока или синхронизировать его только тогда, когда игрок нажимает для перемещения и setDestination на эту позицию на других клиентах?Кроме того, что касается взлома, должен ли я все перепроверять с сервером?Благодаря.

1 Ответ

0 голосов
/ 20 сентября 2018

У вас есть несколько способов сделать это, я укажу два из них с плюсами и минусами.

Игрок Отправляет щелчок для перемещения местоположения на сервер.

1) Серверзатем отправляет это местоположение ВСЕМ клиентам (включая отправителя), а затем клиенты вычисляют путь и начинают интерполировать движение.

плюсы: низкая пропускная способность, быстрое выполнение и низкая сложность в реализации.

минусы: клиент легко взломается.

2) Сервер рассчитывает путь, который понадобится игрокуследовать (поиск пути) и отправлять узлы пути клиентам.

плюсы: не взломан, сервер будет иметь последнее слово в каждом действии игрока

минусы: серверу нужна физика или поиск пути для этогоработа, которая действительно много работы.если вы реализуете физику, вы сможете интерполировать движение на сервере и отправлять позиции клиентам в обычное время для имитации движения.

Для реализации второго варианта используются следующие полезные технологии: BulletSharp , SharpNav для того и другого потребуется загрузка геометрии (Terrain) на стороне сервера) и Сжатие моментальных снимков для оптимизации клиент-серверной сетевой физики.

Best ofудачи, и вы можете попросить любого разъяснения или помощи.

...