Развитие игровой вспышки
Текущее время: Пн дек 18, 2017 4:44 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Пн июл 04, 2016 3:47 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4879
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
всё равно не понимаю нафига она надо. Что мешает сервер держать? ) Раз он нужен всё равно.... Если бы это как-то ограничило затраты на 3g инетрент - я еще понимаю...


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Пн июл 04, 2016 4:39 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2671
Откуда: Одесса
TheRabbit писал(а):
Что мешает сервер держать? ) Раз он нужен всё равно...

Если вопрос дополнить опущенными уточнениями, он становится очевидно глупым: "Что мешает держать [дорогой] сервер [которому придется херачить под полной нагрузкой], раз все равно нужен [дешевый] сервер [от которого требуется всего лишь выдрать из базы случайную запись]?"


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Пн июл 04, 2016 7:22 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср май 02, 2012 8:18 pm
Сообщений: 3231
По мелочи сервер даже держать не надо - для малых нагрузок можно бесплатно замутить.

Но. Возможность работы игры без сервера (или с возможность выбора сервера) - может существенно продлить её жизненный цикл. Ну или, в конце концов, сделать её играбельной после окончания жизненного цикла. В отличие от все этих ММОРПГ и сосалок, которые после закрытия (сервера) фактически перестают существовать в нашей реальности.

Ну это уже вопрос к искусству, а не баблу :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Пн июл 04, 2016 11:42 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4879
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
оффтов на счет закрытия сервера. Всем плевать на жизнь игры после закрытия сервера )


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Вт июл 05, 2016 12:24 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср май 02, 2012 8:18 pm
Сообщений: 3231
TheRabbit писал(а):
сем плевать на жизнь игры после закрытия сервера )


Если игра - проходное фуфлецо, которое ради прибыли - то да ) А если это не как у всех ( :D ), а произведение искуссссства?!

Пришёл в галерею, сдул пыль, заценил :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Вт июл 05, 2016 4:36 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4879
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
И умереть бедным, но известным (через 100 лет)?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Ср ноя 09, 2016 6:23 pm 
Не в сети

Зарегистрирован: Ср ноя 09, 2016 2:51 am
Сообщений: 16
Откуда: Москва
Наткнулся на этот форум случайно - заинтересовала это статья.
Накатал на коленке (в рабочее время :jokingly: ) говнокодец. Тестил его же в локальной сети на работе.

Смысл его в том чтобы автоматически найти оппонента/союзника для локальной игры, например при подсоединении нескольких устройств к общественной или не очень wi-fi сети.

Единственное решение проблемы "Как понять что кто-то еще хочет с тобой поиграть в пределах твоей локальной сети?", которое пришло мне в голову - проверять каждый IPv4 адрес на отклик сокету с использованием заранее известного порта(7777).

Т.К. IP в локальной сети это всегда 192.168.x.y. круг подозреваемых IP сузился до 256*256 = 65к IP адресов
(Но возможность указать IP адрес вручную никто не отменял, а узнать его телефону(устройству)-серверу не составит проблем)
А в домашних или просто небольших локальных сетях IP выдаются от меньшего к большему. Чуть ли не от 192.168.0.2.
Например у меня на работе ip не больше чем 192.168.3.x
Но в университете локалка использует чуть ли не всё IPv4 пространство и поиск по такому алгоритму неприменим.
Кстати, кто знает какой IP присваивается если включить передачу интернет по wi-fi со смартфона? Если по такому же принципу - вижу еще один способ применения
1-создал точку доступа с телефона
2-быстрый автопоиск и игра по локальной сети
и я не уверен что для этого даже нужен включенный моб.интернет на телефоне-сервере

при попытке создать 65к сокетов пытающихся подсоединиться одновременно к своим ip ADL вылетел) :D
поэтому код проверяет ip пачками по 256 адресов.
проверка такого набора IP занимает у меня в среднем 21 секунду. Время растет линейно с количеством таких наборов.

И всё это на флеше! AKA возможности ограничены твоей больной фантазией

ИТОГО: Проверить домашнюю локалку или точку доступа с мобилы(в теории) займет около минуты.
При этом пинг который я тестил дома(на другом говнокоде) на обычном роутере от МГТС в среднем 150ms при подключении по wi-fi. Такой же результат показывает команда ping в командной строке виндовс

P.S. я прекрасно вижу недостатки такого подхода, но я предложил одно черновое решение
Спасибо за внимание)
исходники - https://yadi.sk/d/5Jh8fTzwyJhfK


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Сб ноя 19, 2016 8:00 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср май 02, 2012 8:18 pm
Сообщений: 3231
Исходники не очень нужны, но сама концепция интересная!

Правда, в условиях глобализации и интернета, большинство игр, если хотят выжить на рынке, обязаны ориентироваться на игру через интернет, а не через локалку.
Просто потому, что общее количество желающих поиграть, особенно в новую никому не известную игру, может лишь в пределах всего мира набираться, а в локалке искать кого-то бесполезно. Плюс вечное неравенство по рейтингу/скиллу: помню, в эпоху домосеток, когда делались мелкие сетки буквально на 2-3-4-10 человек, в шутеры играть было не интересно: я всех в нуль рвал, а остальные через 5 минут такого издевательства - выходили. Потом запускали старкрафт - и разделывали уже меня. В итоге переставали играть вообще...

Для игры в компаниях и в тесных кругах - можно что-то типа дополнительной реальности мутить. Но для этого проще создать с телефона отдельную вай-фай сеть (не знаю, позволяет ли это именно флэщъ), в которую все устройства игроков подключатся.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Сб ноя 19, 2016 9:09 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср ноя 09, 2016 4:17 pm
Сообщений: 13
Откуда: Харьков
Mocosh писал(а):
Единственное решение проблемы "Как понять что кто-то еще хочет с тобой поиграть в пределах твоей локальной сети?", которое пришло мне в голову - проверять каждый IPv4 адрес на отклик сокету с использованием заранее известного порта(7777).
https://yadi.sk/d/5Jh8fTzwyJhfK

Обычно такое можно сделать гораздо проще, отправляя сообщение на широковещательный адрес локальной сети. Другие устройства в локальной сети получают это сообщение и могут узнать IP адрес отправителя. А зная IP адрес можно установить соединение по TCP/IP протоколу.

Не знаю есть ли у air отправка broadcast сообщений из коробки или нужно искать готовые решения, но для большинства языков программирования проблема поиска других игроков в локальной сети решается так.
В поиске нашел пару вариантов для air:
https://github.com/wouterverweirder/AIR-Mobile-UDP-Extension
https://lucamezzalira.com/2011/07/29/multicast-udp-socket-in-adobe-air-with-python/


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Peer to Peer air
СообщениеДобавлено: Вт ноя 22, 2016 11:16 am 
Не в сети
Аватар пользователя

Зарегистрирован: Пт окт 18, 2013 5:12 am
Сообщений: 21
Air не умеет в броадкаст: http://help.adobe.com/ru_RU/FlashPlatfo ... ocket.html

DatagramSocket - AS3 писал(а):
send()
public function send(bytes:ByteArray, offset:uint = 0, length:uint = 0, address:String = null, port:int = 0):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 2

Отправляет пакет, содержащий байты в массиве ByteArray, с помощью UDP.

Если сокет подключен, пакет отправляется на удаленный адрес и порт, указанные в методе connect(), и задать целевой IP-адрес и порт нельзя. Если сокет не подключен, пакет отправляется на заданный адрес и порт, при этом необходимо указать действительные значения для свойств address и port. Если метод bind() не вызывался, сокет автоматически связывается с локальным адресом и портом по умолчанию.

Примечание. Отправка данных на широковещательный адрес не поддерживается.


Быстрый гугол показал, что народ в основном для решения этих ограничений просто в цикле рассылает 255 пакетов, перебирая по маске x.x.x.0/24 ибо довольно часто в маленьких локалках (домашний роутер например или интернет кафе), меняются только последние цифры при присвоении ip мобилке.


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB