Как использовать физику Unity в многопользовательской игре, если не используется собственная сеть Unity?

Существует несколько движков многопользовательской игры, таких как Photon, Smartfox и т. Д., Которые позволяют создавать авторитетные игровые серверы. Я новичок и пробую Smartfox. Я хочу создать многопользовательскую игру в Unity. Все они поддерживают единство.

Я хочу знать, как я могу использовать физический движок Unity на стороне сервера для выполнения симуляции при использовании другого авторитетного сетевого движка, такого как smartfox. SmartFox написан на Java и поддерживает написание расширений только на Java/Python.

2 ответа

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

  1. Хотя Unity может работать в режиме командной строки без графического интерфейса, он будет загружать ненужные графические ресурсы и многое другое в память игрового сервера. Игровой цикл Unity со многими лесами GameObject обременителен. Обратите внимание, что на большинстве компьютерных игровых серверов аппаратное 3D-ускорение отсутствует или отсутствует.
  2. Unity запускает игровой цикл однопоточным способом. Если вы не создаете MMO-игру с постоянным миром, вы можете создать множество игровых сессий на сервере. Возможно, вам следует запускать процессы игрового сервера столько раз, сколько запрошено игровых сессий. Сотни запущенных процессов будут бесполезно снижать производительность сервера.

По причинам, указанным Hyunjik Bae, выше, вам лучше всего создать упрощенную физическую систему на Java на Java-расширении Smartfox, которая будет работать только с позициями, векторами и т. Д., А не с графикой. Но это будет огромной задачей.

Если у вас есть машина, которая может работать за пределами сервера SmartFox, вы можете запустить специальное и специальное приложение Unity на этом компьютере, чтобы оно взаимодействовало со Smartfox и действовало как авторитетный физический движок, не отставая от SF-сервера. В идеале вы должны удалить все сетки и эффекты и работать только с коллайдерами на официальной машине.

Если безопасность не является серьезной проблемой, самый простой способ сделать это с самой высокой производительностью - это позволить одному из клиентов действовать в качестве авторитетного компьютера. Это то, как много пиринговых игр работают. Чтобы избежать взлома, вы можете периодически и произвольно назначать серверу полномочия для разных клиентов, а также делать это, когда авторитетный клиент покидает игровую комнату.

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