Методология выделенного сервера в стиле MMO Unity UNet

Мы создаем виртуальный кампус в стиле MMO для нашего учреждения, и мне нужны советы по передовым методам и реализации в отношении использования UNet. После прочтения я пришел к выводу, что мне, вероятно, следует использовать один проект с отдельной сценой для сборки сервера. Итак, я настроил его, и он сразу же запустился и запустил выделенный сервер. Затем игровая сцена автоматически подключается, но игрок не создается, даже если он добавлен в диспетчер сети. Серверная сцена - это просто пустая сцена с компонентом сетевого администратора UNet.

Я считаю, что для лучшего взаимодействия с пользователем игровая сцена и все взаимодействия с пользователем должны происходить на стороне клиента, затем обновлять сервер, затем сервер обновляет других клиентов. (Не стесняйтесь сбивать это).

Если приведенное выше находится на правильном пути, то как можно настроить серверную сцену так, чтобы она была призраком и фактически не обрабатывала какую-либо информацию?

Было бы полезно написать сценарий, который отправляет определенные переменные на сервер, а не использовать сетевые компоненты UNet, поскольку я думаю, что они синхронизируют весь объект?

Допускает ли UNet такую ​​функциональность, когда сервер просто выступает в качестве посредника для обновления клиентов, а не является полным экземпляром игры?

Я думаю, что на самом деле я имею в виду: какой метод является наилучшим для создания сети в стиле MMO, выделенной, автономной, сетевой с помощью UNet?


person 4t0m1c    schedule 13.04.2017    source источник
comment
Я пытался создать игровой сервер и клиент с uNet github.com/co-chi-tam/Multiplayer_RPG ... Круто, но появляются лаги и разъединения. Вы должны подключаться, когда клиент перемещается, действует, взаимодействует с другим на сервере и обновляет каждого клиента.   -  person Cổ Chí Tâm    schedule 14.04.2017


Ответы (1)


Я бы не стал использовать HLAPI (API высокого уровня) UNET для MMO. Он дает вам хорошие готовые компоненты, такие как Network Transform и Network Manager, но вы не найдете гибкости, необходимой для проекта вашего масштаба. Это возможно, но кажется, что весь HLAPI был построен для поддержки гибрида «хоста», который является одновременно сервером и клиентом (каждый ограничен одной сценой, на которой работает хост).

Ознакомьтесь с API низкого уровня (LLAPI). Это просто тонкий, оптимизированный для Unity слой поверх сокетов UDP. Это простая структура для отправки сообщений из Клиент -> Сервер, поэтому создание движка, который перемещает игроков, управляет изменениями сцены и т. Д., Полностью зависит от вас. Таким образом, ваш сервер может работать на совершенно другом Unity. приложение с единственной целью - обработка клиентских сообщений.

person Brandon Church    schedule 01.02.2018