Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Сетевой шутер на Unity: Какие решения использовали вы?

Сетевой шутер на Unity: Какие решения использовали вы?

Поделиться
Crazy_GarryПостоялецwww7 авг. 201720:51#0
Здравствуйте. Пытаемся делать сетевой шутер на Unity, но не можем определиться, какие решения использовать для это. Может у кого-нибудь есть опыт написания такого рода игр на этом движке, как вы реализовывали мультиплеер и решали задачи Client Side prediction, Server Reconciliation - существуют ли готовые решения или реализовывали сами? И насчет выбора сервера - воспользоваться серверами Unity Multiplayer/Photon, запускать игровой сервер на одном из компьютеров пользователя, или арендовать VDS? В общем, интересен ваш опыт. Спасибо ваши ответы, они очень помогут нам определиться.
patsanchik3Постоялецwww7 авг. 201723:27#1
всё имхо:

с возможность использовать udp:
uNet
- пока сыроват, разработчики "подзабивают" на сложные вопросы с ответами и решениями, админики для выделенного сервера нет
+ но махина здоровая рано или поздно доведут до ума, можно легко считать физику на сервере, есть решения для начинающих и для более продвинутых (Hi и Low level api), "родное" решение для проектов на юнити, за выделенный сервер пока не просят денег, есть облако по образу фотоновского (за денежку)

SmartFox
- на java (хотя для кого то это будет плюсом) что немного ломает  пиплайн если нет отдельного серверника (клиент c#, для небольшой команды в идеале на сервере иметь тоже с#), облаков нет, просят денег при CCU больше 100 (для 2X версии), физика на сервере если нужна - реализация на ваше усмотрение 
+ очень подробная документация и примеры (в том числе шутера), хорошая поддержка, довольно большое комунити, отличная админка, блак листы, и прочая и прочая для администрирования

Photon Server
- админка намного проще чем у smartfox, просят денег при CCU больше 100 , физика на сервере если нужна - реализация на ваше усмотрение
+ c# на сервере, документация и примеры (похуже чем у смартфокса - но есть), большое комунити, много реализованых проектов юнити+фотон сервер, балансер

Photon Cloud
- сервер один из клиентов (со всеми вытекающими :), просят денег за всё что выше 20 CCU
+ самый простой и быстрый способ завести онлайн без разворачивания инфраструктуры

если не нужен udp:
PlayerIO
- 45 человек ограничение на комнату при этом комнаты между собой общаться не могут (объясняют кластерной архитектурой), нет глобальной комнаты в отличии от смартфокса и фотона, довольно медленно добавляются фичи, физики нет - "перегружать" сетевой код нельзя если код в кластере
+ уникальный проект с точки зрения удобства разработки + встроенная nosql БД и куча сервисов,возможностью заливать код сервера на сервера PlayerIO (т.е. нет необходимости в своих серверах), денежку хотят от 500 CCU (ну или большом трафике в том числе к БД)

ну и куча всяких "не типовых" сетевых решений для юнити типа socket.io, app42cloud (тоже по своему уникальная штука в плане комплексного подхода), SgnalR  и т.д. и т.п.

Правка: 7 авг. 2017 23:35

Sh.Tac.Постоялецwww8 авг. 20172:14#2
Crazy_Garry
> задачи Client Side prediction, Server Reconciliation
я выбрал самый сложный путь, песал сервер на плюсах : )

правда в результате пришлось делать одно и то же два раза, на плюсах, и на шарпе, что не пошло проекту на пользу, особенно по затраченному на отладку времени

надо сказать что сетевой алгоритм синхронизации типа Server Reconciliation легко скрадывает разницу в физдвижках, в юньке PhysX, на сервере Bullet

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

endeavour_prПостоялецwww9 авг. 201713:50#3
Пиши свой сервер или бери готовый с подходящей лицензией и переделывай его под свои требования.Всякие там облака это надуривание ламеров на платные тарифы.
sinobyПостоялецwww9 авг. 201717:33#4
Crazy_Garry
> запускать игровой сервер на одном из компьютеров пользователя
крутом ЧИТОРЫ! так не поидет

> или арендовать VDS
такое да нормально, только запускать на нем клиент как сервер в бач режиме не удобно, опять же регионально нормальный пинг нежели всякие Unity Multiplayer/Photon

> Client Side prediction, Server Reconciliation
с большего это все нивелируется хорошим пингом

так же еще гляжу за разработкой DarkRift Networking 2, но вяло движется

Правка: 9 авг. 2017 17:33

/ Форум / Программирование игр / Сеть

2001—2017 © GameDev.ru — Разработка игр