Мультиплеер в реальном времени для Android по локальной сети [закрыто]

9

Я разработал несколько игр для платформы Android и теперь планирую создать свою первую многопользовательскую игру. Я имею в виду всего лишь игру для двух игроков, в которую можно играть с двумя телефонами через локальное соединение / WiFi.

Оба телефона должны иметь возможность передавать 3 целых числа на другой телефон в режиме реального времени. До сих пор я думал об использовании Socket, но прежде чем углубиться в это, я хотел спросить, может ли быть лучший подход?

Спасибо!

Heigo
источник
3
Лучше подход, чем сокет ... не уверен. Однако вам не нужно использовать необработанные сокеты, поскольку уже существующие библиотеки делают это за вас. Я предполагаю, что вы разрабатываете на платформе Android с Java (вы не помечены как Java), так что вы можете посмотреть на Kryonet.
Натан
Это верно, я развиваю с Java. Я посмотрю в Крионет. Спасибо за комментарий.
Heigo
Если вы передаете только пару значений, вы можете рассмотреть Bluetooth. Вот несколько хороших ссылок: developer.android.com/guide/topics/connectivity/bluetooth.html и stackoverflow.com/questions/5619850/...
AMB
Я мог бы также рассмотреть возможность использования Bluetooth в дальнейшем развитии, но на данный момент, я думаю, люди более знакомы с WiFi.
Heigo
1
В настоящее время я также начинаю создавать многопользовательскую игру, и я думаю о создании бэкэнда службы отдыха (для регистрации игроков, организации матчей и т. Д.) И игрового сервера на основе сокетов tcp. Когда совпадение установлено и игра фактически запускается, служба отдыха отправит серверу сокет-сообщение, и будет создан фактический экземпляр игры (чтобы сделать вещи масштабируемыми). Клиенты получают ip для сервера и создают соединение, используя токен безопасности, предоставленный службой отдыха. Игровой сервер проверяет и делает все остальное.
Томас

Ответы:

-2

Один из возможных вариантов - Socket.IO .

В Stack Overflow, похоже, много обсуждается Socket.IO, в том числе:

Увы, я не мог понять, как заставить одно Android-устройство напрямую взаимодействовать с другим Android-устройством через Socket.IO, или даже один шаг косвенного обращения, когда оба разговаривали с одной точкой доступа WiFi между ними. (Я до сих пор не знаю, была ли это ошибка в моем коде, какой-то брандмауэр в чужом коде или врожденное ограничение Socket.IO). Я получил одну небольшую демонстрацию работы с одним устройством Android, отправляющим сообщения на веб-сервер, который пересылал сообщение на другое устройство Android.

Дэвид Кэри
источник
В качестве плагина для сервера Node.js Socket.IO может иметь отношение к вопросу о многопользовательском режиме в реальном времени в браузерной игре. В нынешнем контексте Java и Android , однако, его упоминание только вводит в заблуждение.
Eric
У меня есть небольшая демонстрация с одним пользовательским приложением для Android, использующим Socket.IO (косвенно) для связи с другим пользовательским приложением на другом устройстве Android через сервер Node.js. Это более-менее «работает», но если вы знаете о лучшем подходе, особенно о том, где есть более прямое общение, я (и я уверен, что оригинальный постер) хотел бы узнать об этом - пожалуйста, сообщите нам.
Дэвид Кэри
-2

Вы сказали, что оба устройства были в одной комнате?

Каждое устройство Android имеет динамик и микрофон. В принципе, одно приложение может отправить серию тонов через динамик, а затем другое приложение прослушать тоны и декодировать их обратно в строку сообщения. Вы можете (а) использовать весь аудиоспектр для отправки данных, например, акустические ответвители 60-х и 70-х годов, или (б) использовать гораздо более узкую полосу пропускания от 15 кГц до максимальной поддерживаемой вашим устройством (вероятно, 24 кГц) - - намного медленнее канал передачи данных, но большинство людей больше не могут слышать эти частоты - для них это ультразвук.

Радиолюбители Хэма разработали множество хитроумных методов вытягивания очень слабых сигналов из большого количества шума.

« Связь через аудиоразъем для телефонов Android»

Чтение звука на Android: a b c

«В программном обеспечении Narrate Zoosh используются динамики и микрофоны смартфонов для обеспечения той же передачи данных между устройствами, которые предоставляет современный NFC, но с ультразвуковыми частотами, которые не слышны для людей». - EWeek , Slashdot .

Дэвид Кэри
источник