Является ли Bluetooth жизнеспособным вариантом для многопользовательской пошаговой игры?
Поэтому я сейчас разрабатываю многопользовательскую пошаговую карточную игру. Я выполнил всю основную игровую логику и пользовательский интерфейс, и просто пытаюсь найти лучший способ сделать из него мультиплеер с подключением к нескольким телефонам. Прямо сейчас, похоже, мой единственный вариант - это Bluetooth, который из того, что я исследовал, является очень плохим вариантом, особенно из-за того, что его нет в эмуляторах. Поэтому мне интересно, есть ли альтернативы. Альтернативы необходимо следующее:
- Возможность иметь то, что по сути является "игровым лобби", где игроки могут присоединяться к "комнатам" (аналогично многим многопользовательским играм, таким как Call of Duty)
- Поддерживает API уровня 8 и выше
- Подключается максимум до 6 игроков
- Не требует интернет для игры (это самый важный)
- Не требует никакой оплаты с моей стороны (без серверов)
- Предпочтительно легко тестировать на эмуляторах
Я также рассмотрел прямой WIFI, но он требует API 14, что делает игру недоступной для более чем половины рынка Android.
Кроме того, если нет никакой другой опции, есть ли SDK или учебник для многопользовательских пошаговых игр по Bluetooth? И возможно ли вообще иметь возможность иметь "Игровые лобби", использующие Bluetooth, без сопряжения устройств?
3 ответа
Использование Bluetooth соответствует вашему списку требований, и я не вижу другого способа, кроме Wi-Fi, который вы исключили.
Насколько я знаю, связь Bluetooth должна быть реализована с использованием модели клиент-сервер. Например, один игрок должен начать игру, он будет вести ваше игровое лобби, а другие игроки могут подключиться к нему. Хозяин, вероятно, также хочет играть, поэтому вы должны реализовать его таким образом, чтобы основной "движок игры" мог общаться с двумя типами игроков: удаленным по Bluetooth и локальным (сам хост). Это, наверное, немного сложно, но выполнимо.
Я не уверен, есть ли ограничение на количество активных подключений Bluetooth. 3 устройства одновременно работали нормально на довольно старом телефоне (версия API 4). Тем не менее, батарея разрядилась намного быстрее.
О сопряжении... Устройства, с которыми я работал (не телефоны), использовали Bluetooth в режиме сервера, и мне пришлось подключиться к ним для использования. По той же логике, я думаю, что все игроки должны будут соединиться с сервером (телефоном, который запускает игру).
Информацию о сети для игр можно найти по этой ссылке.
как сделать многопользовательскую игру
Обсуждение о том, какую платформу следует использовать, находится здесь. https://gamedev.stackexchange.com/questions/19642/best-solution-for-multiplayer-realtime-android-game
Следующая ссылка имеет хорошую информацию о подключении Bluetooth. http://developer.android.com/guide/topics/connectivity/bluetooth.html
Надеюсь, что приведенные выше ссылки могут быть полезны.
Учитывая ваши требования, я бы сказал, что вы можете выбрать Bluetooth и Wi-Fi Direct. Ни один из них не должен быть легким / поддерживаться эмуляторами (никогда не пробовал Wi-Fi Direct).
Следует отметить, что для работы Bluetooth требуется мастер-устройство, которое подключает до 7 удаленных устройств. Wi-Fi direct, на мой взгляд, является более децентрализованным подходом (что, если мастер решит покинуть игру?).
Оба подхода позволяют извлекать обнаруживаемые устройства. Возможно, стоит подумать о гибридном подходе, когда все устройства с Android 4 используют Wi-Fi Direct. Старые устройства также используют Wi-Fi direct, подключаясь через Bluetooth к новому телефону, который передает пакеты.