О мультиплеере в unity

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

О мультиплеере в unity

Сообщение desetfall 11 мар 2019, 00:23

Вообщем возникла идея сделать простейшую игрушку(прятки) с одной локацией, поиграть с друзьями. Как возможно реализовать мультиплеер? В гугле наткнулся на множество материала, в т.ч. Photon, unet, пока не разбирался что это, но судя по описаниям создается впечатление что это серьезные толстые системы для создания мультиплеера на большое кол-во игроков, так вот вопрос: что из этого (или что-то другое) можно использоваться для реализации мультиплеера посредством хамачи (то есть в локальной сети) на 4 игроков максимум? Мне бы что-то простое, без огромного количества возможностей, бесплатное и желательно с наличием русскогоязычных пособий. Заранее спасибо

(Я прошу именно кинуть ссылки или дать названия систем для реализации такого мультиплеера, рассказывать как это делать мне вовсе не нужно, мало ли кто-то подумает, что я прошу тут создать игру за меня ;) )
desetfall
UNец
 
Сообщения: 15
Зарегистрирован: 03 фев 2016, 21:29

Re: О мультиплеере в unity

Сообщение Saltant 11 мар 2019, 00:27

Unet используй, встроенный в юнити. Под твои нужны идеально подойдет. Указываешь локальную IP в настройках и всё будет хорошо, порт на роутере проверь только.

Принцип работы по сути прост, создаешь пустой префаб, кидаешь на него NetworkManager (это главный компонент сети), далее кидаешь NetworkManager GUI (вроде так называется, это визуальные настройки, создать хост, приконектиться и т.п). В менеджера указываешь пребаф игрока который будет спавниться, так же регистрируешь спавн точки (префабы с компонентом NetworkStartPosition как то так вроде), настраиваешь префаб игрока, кидаешь на него NetworkIdentity (без этого компонента объекты в сетевой игре не будут друг друга видеть) ставишь галку на Local Authority (в identity) это значит этим объектом будет управлять игрок который запустил игру. Далее настраиваешь раздельное управление (проверяешь компоненты префаба игрока через isLocalPlayer и если false то отключаешь скрипт управления). Надеюсь ничего не забыл. Удачи.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: О мультиплеере в unity

Сообщение desetfall 11 мар 2019, 00:34

Saltant, огромное спасибо!)
desetfall
UNец
 
Сообщения: 15
Зарегистрирован: 03 фев 2016, 21:29

Re: О мультиплеере в unity

Сообщение NAGIBATOR228pacan 11 мар 2019, 11:55

desetfall писал(а):Вообщем возникла идея сделать простейшую игрушку(прятки) с одной локацией, поиграть с друзьями. Как возможно реализовать мультиплеер? В гугле наткнулся на множество материала, в т.ч. Photon, unet, пока не разбирался что это, но судя по описаниям создается впечатление что это серьезные толстые системы для создания мультиплеера на большое кол-во игроков, так вот вопрос: что из этого (или что-то другое) можно использоваться для реализации мультиплеера посредством хамачи (то есть в локальной сети) на 4 игроков максимум? Мне бы что-то простое, без огромного количества возможностей, бесплатное и желательно с наличием русскогоязычных пособий. Заранее спасибо

(Я прошу именно кинуть ссылки или дать названия систем для реализации такого мультиплеера, рассказывать как это делать мне вовсе не нужно, мало ли кто-то подумает, что я прошу тут создать игру за меня ;) )

Конечно же c# System.net.sockets за день можно простенький сервер создать для локальный игры(для локальной проще ибо не надо с читерами воевать и предсказывать пинг), с unity может работать, только чуть чуть чуть в многопоточности(не корунтины) надо понимать чтобы не возникало фризов в unity
NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: О мультиплеере в unity

Сообщение Jarico 11 мар 2019, 16:18

NAGIBATOR228pacan писал(а):с unity может работать, только чуть чуть чуть в многопоточности(не корунтины) надо понимать чтобы не возникало фризов в unity


Уже всё сделали https://github.com/vis2k/Telepathy
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: О мультиплеере в unity

Сообщение AngryCat 11 мар 2019, 22:26

Saltant писал(а):Unet используй, встроенный в юнити. Под твои нужны идеально подойдет. Указываешь локальную IP в настройках и всё будет хорошо, порт на роутере проверь только.

Принцип работы по сути прост, создаешь пустой префаб, кидаешь на него NetworkManager (это главный компонент сети), далее кидаешь NetworkManager GUI (вроде так называется, это визуальные настройки, создать хост, приконектиться и т.п). В менеджера указываешь пребаф игрока который будет спавниться, так же регистрируешь спавн точки (префабы с компонентом NetworkStartPosition как то так вроде), настраиваешь префаб игрока, кидаешь на него NetworkIdentity (без этого компонента объекты в сетевой игре не будут друг друга видеть) ставишь галку на Local Authority (в identity) это значит этим объектом будет управлять игрок который запустил игру. Далее настраиваешь раздельное управление (проверяешь компоненты префаба игрока через isLocalPlayer и если false то отключаешь скрипт управления). Надеюсь ничего не забыл. Удачи.

Я думал, что его больше не поддерживают :-?
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: О мультиплеере в unity

Сообщение AngryCat 11 мар 2019, 22:27

Всю жизнь использую Photon :-bd
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: О мультиплеере в unity

Сообщение AngryCat 11 мар 2019, 22:29

AngryCat писал(а):
Saltant писал(а):Unet используй, встроенный в юнити. Под твои нужны идеально подойдет. Указываешь локальную IP в настройках и всё будет хорошо, порт на роутере проверь только.

Принцип работы по сути прост, создаешь пустой префаб, кидаешь на него NetworkManager (это главный компонент сети), далее кидаешь NetworkManager GUI (вроде так называется, это визуальные настройки, создать хост, приконектиться и т.п). В менеджера указываешь пребаф игрока который будет спавниться, так же регистрируешь спавн точки (префабы с компонентом NetworkStartPosition как то так вроде), настраиваешь префаб игрока, кидаешь на него NetworkIdentity (без этого компонента объекты в сетевой игре не будут друг друга видеть) ставишь галку на Local Authority (в identity) это значит этим объектом будет управлять игрок который запустил игру. Далее настраиваешь раздельное управление (проверяешь компоненты префаба игрока через isLocalPlayer и если false то отключаешь скрипт управления). Надеюсь ничего не забыл. Удачи.

Я думал, что его больше не поддерживают :-?

Там если не ошибаюсь, какую-то другую канитель изобрели. Разве нет?
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: О мультиплеере в unity

Сообщение Saltant 11 мар 2019, 22:53

AngryCat писал(а):
AngryCat писал(а):
Saltant писал(а):Unet используй, встроенный в юнити. Под твои нужны идеально подойдет. Указываешь локальную IP в настройках и всё будет хорошо, порт на роутере проверь только.

Принцип работы по сути прост, создаешь пустой префаб, кидаешь на него NetworkManager (это главный компонент сети), далее кидаешь NetworkManager GUI (вроде так называется, это визуальные настройки, создать хост, приконектиться и т.п). В менеджера указываешь пребаф игрока который будет спавниться, так же регистрируешь спавн точки (префабы с компонентом NetworkStartPosition как то так вроде), настраиваешь префаб игрока, кидаешь на него NetworkIdentity (без этого компонента объекты в сетевой игре не будут друг друга видеть) ставишь галку на Local Authority (в identity) это значит этим объектом будет управлять игрок который запустил игру. Далее настраиваешь раздельное управление (проверяешь компоненты префаба игрока через isLocalPlayer и если false то отключаешь скрипт управления). Надеюсь ничего не забыл. Удачи.

Я думал, что его больше не поддерживают :-?

Там если не ошибаюсь, какую-то другую канитель изобрели. Разве нет?

Новой канители пока что нет в мастер релизе, там еще старая Unet.

P.S Я тут покрутил юнет и фотон и что то пришел к выводу что в соло за неимением какого то вменяемого опыта программирования, вообще лучше не лезть в эту тему, какой то легкий проектик можно и на сокетах сделать, на вебе и т.п что легче в понимании и реализации. Мое недавнее знакомство в сетевым программированием сложилось не очень хорошо, пока что для меня это чуть ниже космоса, хотел свой проект сделать с сетью, но понял что пока что пытаюсь прыгнуть выше головы и в силах сделать "сеть" только на уровне браузерных игр. Если рассматривать юнет и фотон, то на мой нубский взгляд, Юнет более понятен чем фотон, надеюсь что когда юнитеки выпустят новую сеть, моё знакомство с ней пройдет более продуктивно, а то хочется всё же игру с сетью сделать, но нипалучаеца и знакомых нет кто бы во всем этом варился, по сути и решил сюда на форум прийти, тут хоть какое то комьюнити, а то в соло депресняки иногда бывают.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: О мультиплеере в unity

Сообщение AngryCat 11 мар 2019, 22:59

Со временем приходит опыт) если долго мучится, то что-то да получится. Вообще всем рекомендую не использовать готовые сети, а писать свою, через FTP ~o)
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: О мультиплеере в unity

Сообщение boronnikovAI 11 мар 2019, 23:29

На самом деле Photon очень прост в использовании.
По факту нужно написать компонент NetworkManager, где ты обрабатываешь "создание" комнаты при подключении игрока, если их нет. Потом выбираешь оъект, который нужно синхронизировать и накидываешь на него PhotonView. Внутри компонента просто указываешь что нужно синхронизировать(другие компоненты в виде ссылки).
Те же трансформ синхронизировать - будет более чем достаточно для совместной "бродилки-пряток".
Если какой сложный компонент синхронизировать - OnPhotonSynhronizedView() или тип того (Точно не помню)
Лучше потратить день - два на битву с фотоном и полноценно расшариться в нём, чем страдать ерундой.
Photon бесплатен, если игроков менее 20 будет
boronnikovAI
UNец
 
Сообщения: 7
Зарегистрирован: 15 ноя 2018, 16:09

Re: О мультиплеере в unity

Сообщение Saltant 11 мар 2019, 23:55

boronnikovAI писал(а):Photon бесплатен, если игроков менее 20 будет

На самом деле, вот это всё и отбивает желание изучать фотон и т.п решения, 20 игроков это как говорится ни туда ни сюда. Вот как понять сколько ccu надо? Цифра 20 не внушает доверия. Дайте 100 бесплатно и тогда уже можно более уверенно изучать фотон с целью боевого использования. Например выложил проект в паблик, менее 100 игроков, проект не взлетел = ничего не потерял, а так как щас, думаю полюбому слоты нужно докупать, 20 слотов только одни тестеры считай сожрут, это взгляд человека который ни одной сетевой игры еще не сделал, чисто вот теоретический расклад. По этому, я бы искал варианты с б0льшим кол-вом халявных ccu или вообще фреймворк без ограничений на собственной машине.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: О мультиплеере в unity

Сообщение AngryCat 12 мар 2019, 08:01

Saltant писал(а):
boronnikovAI писал(а):Photon бесплатен, если игроков менее 20 будет

На самом деле, вот это всё и отбивает желание изучать фотон и т.п решения, 20 игроков это как говорится ни туда ни сюда. Вот как понять сколько ccu надо? Цифра 20 не внушает доверия. Дайте 100 бесплатно и тогда уже можно более уверенно изучать фотон с целью боевого использования. Например выложил проект в паблик, менее 100 игроков, проект не взлетел = ничего не потерял, а так как щас, думаю полюбому слоты нужно докупать, 20 слотов только одни тестеры считай сожрут, это взгляд человека который ни одной сетевой игры еще не сделал, чисто вот теоретический расклад. По этому, я бы искал варианты с б0льшим кол-вом халявных ccu или вообще фреймворк без ограничений на собственной машине.

Если через глобал делать, то сколько угодно можно игроков. Фотон на 100 человек дается бесплатно, но не навсегда. Да и стоит тн копейки
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: О мультиплеере в unity

Сообщение Jarico 12 мар 2019, 11:34

Saltant писал(а):б0льшим кол-вом халявных ccu или вообще фреймворк без ограничений на собственной машине.


RakNet (с поддержкой мастер-сервера, была в Unity в древние времена, используется в MTA, SAMP, Rage MP (GTA V), Mafia 2 MP, Rust)
unity.network.transport (хрень - документация фуёвая, но если разобраться можно что-то дельное начиркать)
Telepathy (написана на C#, клиент сервер на TCP, на нём основывается неофициальная замена uNet'а под названием Mirror)
uNet (удалят скоро)
uLink (не знаю пойдёт ли на Unity 5)
Forge Networking (не пробовал но говорят в Москве кур доят)
DarkRift 2 (не понятный ассет, описание красочное а по факту я так и не понял что к чему, код обфусцирован)
.Net Sockets (UDP,TCP) - .Net сокеты
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 15