Какую технологию выбрать для online FPS с комнатами?

Сеть в Unity3D

Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 13:50

Всех категорически приветствую! Доброго времени суток!
Я тут новичок, так что, прошу прощения, если что не так ляпну! )

Заманался копать инет по, казалось бы, простым вопросам (С UNet'ом немного знаком - баловался одно время, о Photon'е слышал только поверхностно)...

Прошу помочь!

Если в кратце:

1. Накодил многопоточный сервер на своём хосте на C#, который выступает в виде хранения данных и обеспечения других сервисов в игре (шмоток, воинов, магазина и так далее).
2. Накодил клиента на Unity, который коннектится к многопоточному серваку на хосте (количество юзеров неограничено, сервак отслеживает всех игроков, коннекты, дисконнекты и так далее).
3. Смысл данной online Multiplayer FPS RPG игры такой - до 10 игроков бросает в комнату (локацию) (комнат может быть любое количество) - там идёт бойня, во время online-боя идёт обмен данными с многопоточном серваком (например, если игрок поднял шмотку или его грохнули и так далее).

В общем то и всё...

Мне, по сути, необходимо сделать только вот что (насколько я понимаю):

Запустить главный Unity-клиент в виде мастер-хоста - он как раз таки и будет обеспечивать (отслеживать) махачь в комнатах (так как всё остальное работает и без него)...
Естественно, этот Unity-клиент в виде мастер-хоста будет запускаться в первую очередь на моей отдельном мощном компе и при его выключении (или при выключении многопоточного сервака) игра будет останавливаться у всех.
Мне необходимо обеспечить достойный махач в комнатах с физикой, с разрушениями, с ботами, с лутом, презентами и другими фичами...
То есть, грубо говоря, клиенты, при входе в игру, должны подключаться и к многопоточному серваку и к Unity-клиенту мастер-хоста (если что-то отцепится, игра прекращается) - первый обеспечивает данными, второй комнатами и махачом.

Вопросы:

Что мне выбрать для реализации такого варианта?
Насколько я понял, UNet умирает и он исключается...
Photon предоставляет какие-то свои хосты для серверов - но они мне, вроде как бы, и не нужны - мне нужна лишь синхронизация боёв в комнатах в реальном времени с физикой и прочей чушнёй...

Может я чего-то не понимаю?
Пожалуйста, наставьте на путь истинный - а то уже голова лопается...

Может ли Photon обеспечить такую реализацию через PUN, BOLT, QUANTUM или ещё как?

Спасибо!
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Tolking 06 авг 2019, 15:00

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

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 15:26

Tolking писал(а):Просто проверить: Ты понимаешь что Unity-клиент в виде мастер-хоста это тот-же клиент только главный? Т.е. графика, физика - все как на обычном клиенте? И для 2 комнат нужно 2 мастер-клиента?


Хорошо, я это понимаю... Комната создаётся тогда, когда первый игрок стал мастер-хостом...
Комната пропадает, если последний игрок из неё вышел (по сути последний игрок тоже в момент выхода являлся мастер-хостом)...

Это замечательно! И меня устраивает.
Значит только мастер-хост в комнате будет общаться напрямую со сторонним серваком и читерства...

Может ли Photon обеспечить это?
Для Photon'а неважно разделение на комнаты или важно (ведь каждая комната - это отдельный мастер-хост с несколькими подченёнными клиентами, как я понял)?
Или Photon'у пофиг сколько мастер-хостов, сколько комнат и сколько клиентов - любой из этих типов он считает как одно подключение?

Хранение данных мне от Photon ненадо - нужна лишь вот такая схема...

Спасибо!
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение IDoNotExist 06 авг 2019, 16:00

Volkodav писал(а):Для Photon'а неважно разделение на комнаты или важно (ведь каждая комната - это отдельный мастер-хост с несколькими подченёнными клиентами, как я понял)?
Или Photon'у пофиг сколько мастер-хостов, сколько комнат и сколько клиентов - любой из этих типов он считает как одно подключение?

Комната - это серверная сущность, она живёт, только когда в ней есть хотя бы один клиент, хотя там есть и асинхронное лобби с долгоживущими комнатами, но это уже другой разговор.

Схема жизни комнаты и мастер-клиентов следующая:
"Клиент 1" создаёт "Комната 1" сразу подключается к ней и становится мастер - клиентом.
"Клиент 2" подключается к "Комната 1" и становится обычным клиентом
"Клиент 3" подключается к "Комната 1"и становится обычным клиентом

"Клиент 1" выходит из комнаты и "Клиент 2" становится мастер - клиентом
"Клиент 2" выходит из комнаты и "Клиент 3" становится мастер - клиентом
"Клиент 3" выходит из комнаты и комната уничтожается на сервере.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Tolking 06 авг 2019, 16:53

Ага... Если "первый игрок стал мастер-хостом", то тогда мастер-хост, все таки, запускается не на твоем сервере, а у пользователя, и тогда, в общем случае, фиг фаерволы/роутеры позволят другим пользователям подключиться к мастер-клиенту из интернета... Это тоже понятно?

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

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 20:13

IDoNotExist писал(а):
Volkodav писал(а):Для Photon'а неважно разделение на комнаты или важно (ведь каждая комната - это отдельный мастер-хост с несколькими подченёнными клиентами, как я понял)?
Или Photon'у пофиг сколько мастер-хостов, сколько комнат и сколько клиентов - любой из этих типов он считает как одно подключение?

Комната - это серверная сущность, она живёт, только когда в ней есть хотя бы один клиент, хотя там есть и асинхронное лобби с долгоживущими комнатами, но это уже другой разговор.

Схема жизни комнаты и мастер-клиентов следующая:
"Клиент 1" создаёт "Комната 1" сразу подключается к ней и становится мастер - клиентом.
"Клиент 2" подключается к "Комната 1" и становится обычным клиентом
"Клиент 3" подключается к "Комната 1"и становится обычным клиентом

"Клиент 1" выходит из комнаты и "Клиент 2" становится мастер - клиентом
"Клиент 2" выходит из комнаты и "Клиент 3" становится мастер - клиентом
"Клиент 3" выходит из комнаты и комната уничтожается на сервере.


Ага! Эта тема мне известна да, спасибо!
Мне интересен сам процесс - потому-что пока я непойму как это работает - то ни строчки кода не напишу...
Получается, что все клиенты в комнате, включая мастера и так и так могут общаться со сторонним сервером напрямую - ненужно это делать через мастера... Уже хорошо!
Я тогда непойму, что конкретно делает мастер и нафиг он нужен - чисто для того, чтобы синхронизировать у всех движения, столкновения, физику и так далее + минимализация нагрузки за счёт пакетообмена между мастером и другими клиентами?
Я прав?
Тогда, пожалуйста, объясните мне - что делает Photon в данном случае и за что я должен платить деньги? Он как-то создаёт эти комнаты как UNet и поддерживает весь процесс синхронизации?
По идее, мастер и так является уже сервером для комнаты и сам внутри себя может поддерживать синхронизацию - зачем ему Photon или Unet или ещё какие-либо посредники?
Или чёта недогоняю?
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 20:17

Tolking писал(а):Ага... Если "первый игрок стал мастер-хостом", то тогда мастер-хост, все таки, запускается не на твоем сервере, а у пользователя, и тогда, в общем случае, фиг фаерволы/роутеры позволят другим пользователям подключиться к мастер-клиенту из интернета... Это тоже понятно?

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


Ааааа! Отнокак! То есть Photon и UNet нужны чисто для того, чтобы небыло проблем при создании комнаты и соединении между всеми игроками в этой комнате? Иначе файрвол и всё такое - просто не дадут это сделать? Так?
Получается, мне в любом случае нужно использовать Photon/UNet или их аналог...
Но ведь получается, что любой клиент и мастер в том числе могут читерить - как сторонний сервер поймёт, что это читер - если клиент, к примеру, изменить физику при взрыве или ещё что-нибудь, что от него (от стороннего сервера) не зависит?
Последний раз редактировалось Volkodav 06 авг 2019, 20:23, всего редактировалось 3 раз(а).
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 20:21

Tolking писал(а):Ага... Если "первый игрок стал мастер-хостом", то тогда мастер-хост, все таки, запускается не на твоем сервере, а у пользователя, и тогда, в общем случае, фиг фаерволы/роутеры позволят другим пользователям подключиться к мастер-клиенту из интернета... Это тоже понятно?

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



Вот напрягает эта фраза! )) >>> Через "комнату" гонится трафик между клиентами, чтобы обойти проблему с подключением... <<<

Интересно что за трафик гонится через комнату и зачем - лишняя нагрузка чтобы тормозить синхронизацию? Или этот трафик и позволяет котролировать обход файрволов и других запретных систем? Или это просто сделано для того, чтобы бабки качать и контролировать всех тех, кто создаёт мультиплеерные решения?
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47

Re: Какую технологию выбрать для online FPS с комнатами?

Сообщение Volkodav 06 авг 2019, 20:41

А Photon обеспечивает такие события, как создание комнаты, коннект к комнате, дисконнект от комнаты, удаление комнаты?
А такие свойства как уникальный номер комнаты он тоже предоставляет?
Мне просто нужно к чему-то привязываться на стороннем сервере, так как там тоже будут создаваться и жить те же комнаты на время боя...
Volkodav
UNец
 
Сообщения: 6
Зарегистрирован: 06 авг 2019, 12:47


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

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

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