Многопользовательская игра в реальном времени по мобильной сети? - PullRequest
6 голосов
/ 02 мая 2011

Я только что обнаружил, что мой телефон находится за симметричным межсетевым экраном udp, что просто означает, что трафик udp невозможен. Мой провайдер 3G - T-Mobile, один из крупнейших в моей стране. Я подозреваю, что многие другие мобильные провайдеры 3G имеют ограничения по UDP.

Я планирую разработать игру в реальном времени. UDB, казалось, был правильным решением для быстрого перемещения, но я не могу использовать UDP, потому что тогда я теряю гибкость (играю где угодно, много мест без Wi-Fi) и большая аудитория (провайдеры 3g, которые блокируют UDP).

Мобильные сети, такие как umts и 3g, имеют высокую задержку, поэтому tcp (с повторной отправкой потерянных пакетов и очередями) не является идеальным решением.

Есть ли альтернатива? Или стоит отказаться от идеи игры в реальном времени за 3g?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2012

Очень трудно достичь реального времени по сети с достаточной задержкой для игровой логики (особенно если вы создаете игру, похожую на шутер от первого лица, вы можете прочитать о преодолении некоторых проблем с задержкой здесь: сетевая физика ).

Говоря о мобильной сети, ну, это становится еще сложнее: конечно, вы можете упростить свою жизнь и покрыть только соединение WIFI, НО вы потеряете всех пользователей, которые хотят играть через 3Gкогда БЕСПЛАТНОЕ подключение к WIFI недоступно (или они просто застряли с подключением 3G, потому что не знают, как перейти на WIFI).Если вы решили покрыть 3G, добро пожаловать в адский оператор: без UDP, без сокетов, без нестандартных портов, без длительных тайм-аутов и отключений приветствия, привет странных заголовков и привет странных прокси, теперь умножьте его на число различныхоператоры по всему миру и вуаля 'вы освещаете все их проблемы.

Я не пытаюсь вас напугать, просто помните эти вещи во время вашей реализации:1. Нет сокетов или использование нестандартных портов - операторы не допускают сокеты по очевидным причинам, они не хотят, чтобы вы брали их ресурсы, потому что в течение этого времени они могли бы обслуживать другого платящего клиента;) Если ваша игровая логика позволяетэто, попробуйте реализовать протокол без сокетов.2. Проверь свою игру с парой друзей в море или воспользуйся услугами массового тестирования, которые могут сделать это за тебя.Вы можете откалибровать задержку через ваши собственные протоколы.3. Распределение ваших серверов очень поможет с проблемой задержки.4. Убедитесь, что вы не отправляете много данных по сети, будьте осторожны, будьте осторожны с аккумулятором устройства.5. Сжатие ваших данных!

Для полного раскрытия информации: я работаю в Skiller, и мы предоставляем многопользовательский SDK для разработчиков Android (среди прочих) с бесплатными инструментами, такими как социальный уровень, управление пользователями, получение доходов и т. Д. Мывидел много проблем с многопользовательской игрой через 3G, и мы компенсировали это алгоритмами, которые мы написали на стороне клиента и сервера, чтобы облегчить жизнь разработчикаЕсли вы хотите попробовать нас: www.skiller-games.com

0 голосов
/ 29 сентября 2014

Существуют некоторые облачные сервисы обмена сообщениями в реальном времени, предназначенные для адаптивной работы на различных мобильных платформах. В играх вы часто хотите опубликовать / подписаться, поэтому вы можете посмотреть на http://pubnub.com Они заботятся о вашей облачной инфраструктуре с 14 центрами обработки данных, обеспечивающими низкую задержку. Их API идеально подходят для игр с API безопасности и присутствия, разработанными для этого. У них есть новый API-интерфейс для синхронизации объектных данных в бета-версии, который может сократить кодирование.

Ключевая причина, по которой они мне нравятся, заключается в том, что они работают в этом бизнесе уже много лет, и поэтому их API-интерфейсы были протестированы в большинстве всемирных сетей 3G и корпоративных сетей.

К другим, на которые вы можете обратить внимание, относятся pusher.com и realtime.co, а также новый сервис Google https://cloud.google.com/pubsub/.

...