Страница 1 из 3

Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 10 авг 2017, 18:50
Filosov
Здравствуйте. Работаем над шутером, где есть быстро передвигающаяся техника(на тесте получалось до 100м\с). Какие существуют готовые решения для создания сетевой части, если подразумевается игра на 2-4 человека в одном сражении? Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 02 сен 2017, 23:30
i_am_kisly
эмм.. если есть достаточно человеко-часов то можно написать свое решение. платить нужно будет только за хост

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 12 сен 2017, 13:38
maksimov
i_am_kisly писал(а):эмм.. если есть достаточно человеко-часов то можно написать свое решение. платить нужно будет только за хост

А ещё, если есть достаточно человеко-часов, то можно и свой датацентр построит. тогда и за хост платить не придётся.


Вот откуда у людей такая тяга "что-нибудь брякнуть невпопад"?
Вроде, человек задал вполне конкретный вопрос"какое решение оптимальное?".

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 12 сен 2017, 13:40
maksimov
Filosov писал(а):Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.

Ну у меня есть некий опыт работы с Фотоном.
Спрашивайте.

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 13 сен 2017, 14:10
Woolf
Вроде, человек задал вполне конкретный вопрос"какое решение оптимальное?".

Оптимальное в чем? Во времени реализации, в стоимости реализации, в наилучшем результате?

По времени реализации - фотон, имхо
По стоимости реализации - он же
По наилучшему результату - самописное решение

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 20 сен 2017, 23:49
i_am_kisly
maksimov писал(а):Вот откуда у людей такая тяга "что-нибудь брякнуть невпопад"?
Вроде, человек задал вполне конкретный вопрос"какое решение оптимальное?".

вопрос максимально разман, и можно понимать как хочешь. тс не писал что он имеет ввиду под "оптимальным" решением. так что нечего включать умника, и агриться.

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 07 окт 2017, 14:04
iCSdeveloper
так непосредственно Unity Network (UNET)

https://docs.unity3d.com/Manual/UNet.html

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

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 17 окт 2017, 01:14
scorp2007
А кто-то может вкратце написать плюсы и минусы? Почему редко используют UNET? Я сколько не спрашивал - большинство фотон предпочитают.

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 21 дек 2017, 10:58
danquimby
scorp2007 писал(а):А кто-то может вкратце написать плюсы и минусы? Почему редко используют UNET? Я сколько не спрашивал - большинство фотон предпочитают.

я думаю что главный плюс в UNET в том что там есть слово Unity то есть предполагает поддержку новых версий(я оооочень надеюсь)

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 27 дек 2017, 22:52
maksimov
scorp2007 писал(а):А кто-то может вкратце написать плюсы и минусы? Почему редко используют UNET? Я сколько не спрашивал - большинство фотон предпочитают.


Photon появился раньше UNET'a, он взрослее и глубже в реализации. По сути, UNET появился, как "попытка сделать Photon".

С одной стороны UNET - это "решение из коробки", от разработчиков Unity. И поэтому, будет иметь свои определённые преимущества в Unity.
C другой стороны, UNET для Unity - побочное сервис, в то время как Photon для Exit Games - базовый и единственный продукт, с которым он по праву занимает одно из лидирующих мест на рынке.


* * *
Что же касается текущих технических различий, то кратко и доступно изложено вот этом выступлении:
https://www.youtube.com/watch?v=Y1my5bKhKJY

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 27 дек 2017, 22:56
maksimov
iCSdeveloper писал(а):он именно для сетевого шутера, платить не надо никому ни за что.

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

https://unity3d.com/unity/features/multiplayer

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 23 янв 2018, 16:29
Filosov
maksimov писал(а):
Filosov писал(а):Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.

Ну у меня есть некий опыт работы с Фотоном.
Спрашивайте.


Какая максимальная пропускная способность его скриптов? Тянет ли 60 обновлений в секунду? Позволяет ли настроить момент отправки пакета? (например каждый кадр). Какая латентность? Есть ли возможность создавать сервера на серых IP? (Тупой вопрос учитывая, что они живут с хостинга)

iCSdeveloper писал(а):так непосредственно Unity Network (UNET)

https://docs.unity3d.com/Manual/UNet.html

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


Вы хоть тестовый пример смотрели? Где жуткая резиночка и 15 обновлений в секунду? Даже калькулятор Юнета при попытке поставить 60 сендрейт, говорит, что "это слишком много даже для шутера". Юники не знают про 60Hz контры и 120Hz у GO, про 144Hz квейка... список можно подолжить. А еще он очень условно бесплатный учитывая хостинг.

scorp2007 писал(а):А кто-то может вкратце написать плюсы и минусы? Почему редко используют UNET? Я сколько не спрашивал - большинство фотон предпочитают.


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

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 23 янв 2018, 16:53
Tolking
Filosov писал(а):Юники не знают про 60Hz контры и 120Hz у GO, про 144Hz квейка... список можно подолжить.

Интирестно! А Сама контра, GO, квейк и список можно продолжить, знают, что можно обмениваться пакетами с такой частотой по сети?!!! Хотя бы по локальной сети?

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 23 янв 2018, 17:16
Filosov
Tolking писал(а):
Filosov писал(а):Юники не знают про 60Hz контры и 120Hz у GO, про 144Hz квейка... список можно подолжить.

Интирестно! А Сама контра, GO, квейк и список можно продолжить, знают, что можно обмениваться пакетами с такой частотой по сети?!!! Хотя бы по локальной сети?


Надеюсь понятно что речь о тикрейт? (обновлении)
Просто на вскидку настройка
http://mircsgo.ru/chto-takoe-tikrejt-v- ... povyshaem/

http://www.eurogamer.net/articles/2016- ... ate-higher

Про Квейк было у БлюрБастрез но быстро не найду.

Впрочем у меня получалось добиться отправки положения каждый кадр на Unity 5(используя Command\RPC).

Re: Сетевой шутер на Unity: какое решение оптимально?

СообщениеДобавлено: 24 янв 2018, 19:49
maksimov
Filosov писал(а):Какая максимальная пропускная способность его скриптов?

Пропускная способность может быть у канала. Метрики скриптов - это цикломатическая сложность, топологическая мера Чена, информационная прочность, читабельность,...

Filosov писал(а):Тянет ли 60 обновлений в секунду?

60 обновлений чего?

Вы снова путаете понятия. 60 FPS - это фреймрейт (необходимый, например для плавной анимации).
Вы собрались пытаться гонять байты через всю планету по разнородной сети, с той же скоростью, с какой может гонять байты компьютер по своей материнке?

Фотоновский лимит: 500 сообщений в секунду на каждую комнату. И это более чем впечатляющий задел с гигантским запасом, который вы вряд ли когда-нибудь сможете полезно исчерпать даже на четверть.

Filosov писал(а):Позволяет ли настроить момент отправки пакета?

Да. По умолчанию отправка производится с определённой периодичностью (которую можно изменить в настройках клиента). При этом скопом отправляются все пакеты, накопившиеся с момента предыдущей отправки. И это очень здорово с точки зрения оптимизации.
Но если возникает необходимость немедленной отправки пакета, достаточно вызвать функцию PhotonNetwork.SendOutgoingCommands();.

Filosov писал(а):(например каждый кадр).

Вам нужно искать способы "как отправлять данные как можно реже и как можно меньше", а не наоборот. =)

Вы конечно же можете отправлять хоть по тридцать пакетов каждый кадр (но не больше 500 в секунду). А ещё вы может сделать каждый пакет размером с мегабайт. Если цель - забить канал бесполезным информационным шумом - можно придумать массу подобных вещей.
Но к эффективной коммуникации это не имеет никакого отношения.

Filosov писал(а):Какая латентность?

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

Filosov писал(а):Есть ли возможность создавать сервера на серых IP?

Да.

Filosov писал(а):(Тупой вопрос учитывая, что они живут с хостинга)

Они живут с представления сервиса (Photon Cloud) и продажи лицензии (Photon On Premise).
Им всё равно, где вы будете использовать купленное приложение - в интернете или интранете.