Кооператив/мультиплеер
| |
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).
|
|
| |
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 Physics Puzzle [cancelled]
Сообщение отредактировал 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 Physics Puzzle [cancelled]
Сообщение отредактировал 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 Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Среда, 09 Мая 2018, 07:58 |
|
| |
|