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

Сеть в Unity3D

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

Сообщение Filosov 10 авг 2017, 18:50

Здравствуйте. Работаем над шутером, где есть быстро передвигающаяся техника(на тесте получалось до 100м\с). Какие существуют готовые решения для создания сетевой части, если подразумевается игра на 2-4 человека в одном сражении? Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.
Filosov
UNец
 
Сообщения: 38
Зарегистрирован: 30 май 2016, 11:51

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

Сообщение i_am_kisly 02 сен 2017, 23:30

эмм.. если есть достаточно человеко-часов то можно написать свое решение. платить нужно будет только за хост
Текущие проекты: [Lineage2 unity5][_blog non6.blogspot.ru ]
i_am_kisly
Старожил
 
Сообщения: 742
Зарегистрирован: 10 фев 2015, 17:26
  • Сайт

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

Сообщение maksimov 12 сен 2017, 13:38

i_am_kisly писал(а):эмм.. если есть достаточно человеко-часов то можно написать свое решение. платить нужно будет только за хост

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


Вот откуда у людей такая тяга "что-нибудь брякнуть невпопад"?
Вроде, человек задал вполне конкретный вопрос"какое решение оптимальное?".
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

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

Сообщение maksimov 12 сен 2017, 13:40

Filosov писал(а):Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.

Ну у меня есть некий опыт работы с Фотоном.
Спрашивайте.
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

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

Сообщение Woolf 13 сен 2017, 14:10

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

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

По времени реализации - фотон, имхо
По стоимости реализации - он же
По наилучшему результату - самописное решение
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

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

Сообщение i_am_kisly 20 сен 2017, 23:49

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

вопрос максимально разман, и можно понимать как хочешь. тс не писал что он имеет ввиду под "оптимальным" решением. так что нечего включать умника, и агриться.
Текущие проекты: [Lineage2 unity5][_blog non6.blogspot.ru ]
i_am_kisly
Старожил
 
Сообщения: 742
Зарегистрирован: 10 фев 2015, 17:26
  • Сайт

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

Сообщение iCSdeveloper 07 окт 2017, 14:04

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

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

он именно для сетевого шутера, платить не надо никому ни за что.
пример там максимально наглядный, ну только что на английском.
iCSdeveloper
UNIт
 
Сообщения: 69
Зарегистрирован: 24 июн 2016, 19:07
  • ICQ

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

Сообщение scorp2007 17 окт 2017, 01:14

А кто-то может вкратце написать плюсы и минусы? Почему редко используют UNET? Я сколько не спрашивал - большинство фотон предпочитают.
scorp2007
UNIт
 
Сообщения: 120
Зарегистрирован: 17 авг 2014, 13:59

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

Сообщение danquimby 21 дек 2017, 10:58

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

я думаю что главный плюс в UNET в том что там есть слово Unity то есть предполагает поддержку новых версий(я оооочень надеюсь)
Пока компьютер еще не научился самостоятельно мыслить, доверять ему можно
Аватара пользователя
danquimby
UNIт
 
Сообщения: 54
Зарегистрирован: 29 янв 2015, 21:33
Откуда: Иваново
Skype: danquimby
  • Сайт

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

Сообщение maksimov 27 дек 2017, 22:52

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


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

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


* * *
Что же касается текущих технических различий, то кратко и доступно изложено вот этом выступлении:
https://www.youtube.com/watch?v=Y1my5bKhKJY
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

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

Сообщение maksimov 27 дек 2017, 22:56

iCSdeveloper писал(а):он именно для сетевого шутера, платить не надо никому ни за что.

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

https://unity3d.com/unity/features/multiplayer
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

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

Сообщение Filosov 23 янв 2018, 16:29

maksimov писал(а):
Filosov писал(а):Предполагаем авторитарный сервер(у кого какой опыт хостинга?). Кто может поделиться своим опытом? Пока видел Фотон и Фордж.

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


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

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

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

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


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

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


Он ограничен. HLAPI просто не даст нормальный сендрейт(обновления в секунду) и требует ручного написания интерполяции(то что в дефолте это ужас), транспортный уровень сложен и сложен в том числе документацией. Фотон более распространен(а значит есть люди с опытом) плюс хайп, про Фордж например никто не вспоминает. У Фотона своя команда, значит есть и развитие, поддержка.
Filosov
UNец
 
Сообщения: 38
Зарегистрирован: 30 май 2016, 11:51

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

Сообщение Tolking 23 янв 2018, 16:53

Filosov писал(а):Юники не знают про 60Hz контры и 120Hz у GO, про 144Hz квейка... список можно подолжить.

Интирестно! А Сама контра, GO, квейк и список можно продолжить, знают, что можно обмениваться пакетами с такой частотой по сети?!!! Хотя бы по локальной сети?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

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

Сообщение Filosov 23 янв 2018, 17:16

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).
Filosov
UNец
 
Сообщения: 38
Зарегистрирован: 30 май 2016, 11:51

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

Сообщение maksimov 24 янв 2018, 19:49

Filosov писал(а):Какая максимальная пропускная способность его скриптов?

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

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

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

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

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

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

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

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

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

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

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

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

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

Да.

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

Они живут с представления сервиса (Photon Cloud) и продажи лицензии (Photon On Premise).
Им всё равно, где вы будете использовать купленное приложение - в интернете или интранете.
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

След.

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4