Суббота, 17 Ноября 2018, 02:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Кооператив/мультиплеер
Кооператив/мультиплеер
malis1Дата: Понедельник, 07 Мая 2018, 16:51 | Сообщение # 1
был не раз
Сейчас нет на сайте
Конкретно хочу сделать так что-бы:
1.Один человек - хост создавал комнату , и на его пк обрабатывалась логика игры ,при этом что-бы не было проблем в том случае когда у человека закрыты порты.
2.Лобби ,как реализовать его? Должна быть какая-то БД или какой нибудь сервер?
P.S:
Дополнение к 1 пункту.
Конечно можно исхитриться и программно добавлять игру в вайтлист браундмаура ,но проблемы остаются у тех у кого роутер тк там тоже нужно открывать порт и программно порт уже открыть не получится .
P.S.PS.PS:
Мне хотя-бы сделать 1 пункт что-бы условно два друга могли играть вместе просто подключившись по ip .
(Допустим если удастся сделать 1 пункт, будет выводится этот адрес ,он сообщает его другу и тот через соответствующую менюшку просто подключится)

PSPSPSPS:
Если все выше написанное слишком тупо или непонятно,сформулирую супер коротко:

Как сделать/что сделать ,что-бы любые два друга,могли поиграть вместе без хамачи и подобных программ,при этом не используя PUN и uNet,написав свой мультиплеер :)
OrdanДата: Вторник, 08 Мая 2018, 01:10 | Сообщение # 2
Главный зомби
Сейчас нет на сайте
malis1, погугли ассеты, все уже сделано, но сам я никогда не делал такого)

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
drcrackДата: Вторник, 08 Мая 2018, 03:07 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Цитата
Как сделать/что сделать ,что-бы любые два друга,могли поиграть вместе без хамачи и подобных программ,при этом не используя PUN и uNet,написав свой мультиплеер

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


Сообщение отредактировал drcrack - Вторник, 08 Мая 2018, 03:07
Storm54Дата: Вторник, 08 Мая 2018, 10:26 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Как сказали выше: для подобной связи нужен белый IP. Далее смотреть в сторону Sockets (System.Net.Sockets).

Более 10 лет опыта разработки на разных языках высокого уровня.
Отличные знания .NET, Unity.
Разбираюсь в протоколах TCP, UDP.
Наличие выпущенных коммерческих проектов.
Занимаюсь разработкой WebGL проекта (с применением технологии WebSocket)
Пишите в Л.С.
malis1Дата: Вторник, 08 Мая 2018, 13:57 | Сообщение # 5
был не раз
Сейчас нет на сайте
drcrack, А если я арендую VDS сервер можно с помощью него?
drcrackДата: Вторник, 08 Мая 2018, 14:18 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Можно, но это задача не для джуна
Abel399Дата: Вторник, 08 Мая 2018, 16:16 | Сообщение # 7
Surpass your limits. Right now.
Сейчас нет на сайте
Как добавку-приправу вставлю пару слов:
1) Белый айпи желателен, но далеко не обязателен. Вот почему:
* в зависимости от источника (провайдер или сам роутер юзера) "серости" можно попытать удачу с UPnP (на заметку - так постоянно делает torrent)
* есть NAT Punch-through (легче всего делается UDP Hole Punching)
- Он плохо работает(вплоть до не работает вовсе) с symmetric и port-restricted nat, для них необходимы TURN / Relay серверы.
- Функционал полностью реализован в RakNet, некоторые крутые идеи можно подсмотреть в pwnat.
- Без использования ICMP(pwnat) понадобится сервер с белым ip (если не нужно автоматически устанавливать соединение, то сервер необязательно должен быть ваш == free STUN), через который можно будет узнать внешние IP и порт + нужен контроль над сокетами, т.к. использовать придется один и тот же.
2) MasterServer / STUN используются для определения внешнего IP и других характеристик клиента (например, тип NAT, приблизительное местоположение)
3) Когда не удается пробить NAT, брандмауэр (хотя здесь это глупо, т.к. проще попросить юзера разрешить соединение), firewall и использовать UPnP, то остается только:
* Proxy / TURN - прямая переадресация трафика. Используете либо VDS, либо proxy с открытым API, либо узлы пиринговых сетей (Tor, I2P и др.). Последнее имеет достаточно высокий порог входа.
* Relay Server - более модное слово, но по факту тоже, что и выше. По дефолту uNet поддерживает свои собственные relay-серверы, но стоят они довольно-таки прилично.
* Использование VPN - по факту это синоним использованию Hamachi / Tunngle. Можно поднять свой, но не всегда это рентабельно.
4) Существует IPv6:
* Приложения при первой возможности для таких целей должны использовать их.
* Сейчас они хоть и не в каждом доме, но их число верно продолжает расти (english article, статистика Google)

Все вышесказанное в большинстве случаев потребует от вас:
1) Базовые знания об устройстве компьютерных сетей (сетевые протоколы, туннелирование, маршрутизация, NAT, IP, ноды и другое)
2) Знание о том, как работать с сокетами напрямую (TCP, UDP, raw)
3) Все-таки наличие STUN/TURN / VPS / VDS / Dedicated с белым IP для bootstrap'a общения пиров (pwnat не потребует, но технология ненадежна и небезопасна)
4) Умение подключать shared-library в Unity + скорее всего умение их написания (а отсюда как правило - знание си/плюсов )))0 )

Если вы все еще полны решимости сломать свой мозг - почитайте про ENet (с ним будет попроще, если не захотите в RakNet), имплементацию WebRTC (хорошо описан принцип перехода между технологиями, да и сами технологии), MiniUPnP, DHT (ага, в итоге все такие идеи превращаются в создание своей пиринговой сети c: )

P.S> Информация не столько для автора, сколько для сообщества в целом, т.к. представляет из себя ремарку по данной теме.


Ninja Slayer - 2D puzzle game with physics

Сообщение отредактировал Abel399 - Вторник, 08 Мая 2018, 18:07
drcrackДата: Вторник, 08 Мая 2018, 16:44 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата
1) Белый айпи желателен, но далеко не обязателен.

Цитата
В любом случае понадобится сервер с белым ip

Abel399Дата: Вторник, 08 Мая 2018, 19:54 | Сообщение # 9
Surpass your limits. Right now.
Сейчас нет на сайте
drcrack, игра слов, ога )0
Имелось ввиду, что он необязателен для клиентов, а при использовании pwnat он не нужен вовсе.
Так же под отсутствием "автоматического установления соединения" понимается "подключаемся к какому-то свободному STUN, проверяем тип NAT, не закрывая соединение говорим другому клиенту наши IP:PORT если наты совместимы, благодарим великого Ктулху за коннект".
+ он нужен именно когда нет UPnP (да, ситуация, что IP на роутере белый, есть UPnP, но нет возможности настроить Bridge, существует)

P.S> Исправил для большей точности

Добавлено (08 Мая 2018, 19:54)
---------------------------------------------
Стоит добавить, что использовать Photon Server / Photon Cloud все-таки выгоднее, т.к. затраты на свой велосипед часто не окупаются.
У них хорошее API, бесплатный пакет достаточный для небольших тестов или "игры разработчика с друзьями".


Ninja Slayer - 2D puzzle game with physics

Сообщение отредактировал Abel399 - Вторник, 08 Мая 2018, 19:57
roma3fonДата: Среда, 09 Мая 2018, 00:33 | Сообщение # 10
участник
Сейчас нет на сайте
Abel399, malis1, ipv6 это конечно весело но у нас в России два с половиной провайдера поддерживают его нативно, а пробрасывать тередо или подключаться через броккера очень геморно (хотя должен признать - это захватывающе).
Фотон реально очень удобная тема, но если с деньгами лажа, то можно развернуть свое реле на впс.
Как вариант, можно развернуть что то вроде п2п сети среди всех твоих игроков и все клиенты с белыми ип выполняли бы роль реле (но врядли это можно назвать эффективным решением, за то, хоть диплом пиши)


Восприятие субъективно, реальность индивидуальна!

Сообщение отредактировал roma3fon - Среда, 09 Мая 2018, 00:34
Abel399Дата: Среда, 09 Мая 2018, 07:32 | Сообщение # 11
Surpass your limits. Right now.
Сейчас нет на сайте
roma3fon, IPv6 был только одним из пунктов ) Да, в России плохо, но все-таки не два с половиной )))0 Тенденция к распространению есть, о будущем тоже не стоит забывать.
Про p2p сеть - ну, я ведь не спроста намекнул на DHT и сказал про пиринговую сеть :) (что, кстати, синоним p2p сети).

P.S> К слову, диплом у меня на родственную тему ))0


Ninja Slayer - 2D puzzle game with physics

Сообщение отредактировал Abel399 - Среда, 09 Мая 2018, 07:58
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Кооператив/мультиплеер
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг