Основные рекомендации по дизайну

При реализации поддержки геймпада учитывайте следующие важные требования, чтобы обеспечить игрокам плавный и непрерывный игровой процесс.

Сообщите пользователям Google Play, что ваша игра поддерживает контроллеры.

Если вы укажете в манифесте Android, что ваше приложение поддерживает геймпад, в Google Play появится соответствующий значок и тег. Это поможет большему числу пользователей найти вашу игру и начать в нее играть. Подробные инструкции по настройке и примеры манифестов можно найти в статьях Видимость в Google Play и Аппаратные функции геймпада.

Позвольте игрокам легко переключаться между устройствами ввода

Переход между устройствами ввода должен быть плавным. Не заставляйте игроков вручную переключать способ ввода в меню настроек или перезапускать игру.

Два экрана гоночной игры: на одном показаны кнопки управления и нитро, которые появляются во время игры на мобильном устройстве, а на другом – эти кнопки исчезают при подключении физического геймпада.
Рисунок 1. Переключайтесь между способами ввода, не прерывая игру.

Автоматическое переключение и поддержка горячего подключения

Поддерживайте одновременную работу всех устройств ввода, чтобы игроки могли переключаться между ними на лету. Отслеживайте изменения устройств ввода во время выполнения, чтобы геймпады работали сразу после подключения без перезапуска приложения и плавно переключались на другие доступные методы ввода, если активный контроллер отключается во время игры. Чтобы узнать, как определять подключение и отключение контроллера, прочитайте статью Как проверить, подключен ли игровой контроллер (Kotlin или Java) или Как зарегистрировать или удалить обратный вызов статуса контроллера (библиотека игровых контроллеров C++). В Android 16 (уровень API 36) и более ранних версиях также объявите android:configChanges="keyboard|keyboardHidden|navigation" в манифесте, чтобы подключение или отключение контроллера не перезапускало действие (см. раздел Обработка изменений конфигурации).

Не рекомендуется. Рекомендуется
Не рекомендуется: модальное диалоговое окно, в котором игроку предлагается вручную переключить режим ввода в настройках и перезапустить игру, когда контроллер будет обнаружен. Рекомендуется: ненавязчивый баннер, подтверждающий, что контроллер подключен и ввод автоматически переключен на геймпад.

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

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

Два экрана приключенческой игры. На одном из них показаны подсказки "Нажмите, чтобы прыгнуть" и "Нажмите на сундук, чтобы открыть его". На другом экране, который появляется после подключения геймпада, эти подсказки меняются на "Нажмите B, чтобы прыгнуть" и "Нажмите A, чтобы открыть сундук".
Рисунок 2. Динамическое обновление значков кнопок на экране и текста руководства в соответствии с активным контроллером.

Скрывать виртуальные сенсорные элементы управления, когда геймпад активен

Чтобы не загромождать экран и не путать игрока, скройте все виртуальные элементы сенсорного интерфейса, такие как виртуальные джойстики и экранные кнопки, когда геймпад активен. Если игрок касается экрана, немедленно восстановите сенсорный интерфейс.

Два экрана приключенческой игры: на одном видны виртуальный джойстик и кнопка атаки мечом, а на другом они скрыты, чтобы не мешать обзору при подключении геймпада.
Рисунок 3. Скрывать виртуальные сенсорные элементы управления, когда активен геймпад.

Обеспечьте полную поддержку геймпада для всей игровой логики

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

Сопоставьте все элементы HUD и диалоговые окна с кнопками контроллера.

Позвольте игрокам открывать, использовать и закрывать все элементы окна мониторинга (HUD), меню и диалоговые окна на экране с помощью контроллера, используя специальные кнопки быстрого доступа, бамперы или крестовину (D-pad), чтобы им не приходилось касаться экрана.

Не рекомендуется. Рекомендуется
Не рекомендуется: модальное диалоговое окно и экранные значки интерфейса без сочетаний клавиш на контроллере, из-за чего игроку приходится нажимать кнопку закрытия на экране. Рекомендуется: значки интерфейса на экране и кнопки модальных диалоговых окон сопоставлены с кнопками контроллера, а на экране показываются подсказки с кнопками A и B.

Разделение контекстов ввода для игрового процесса и интерфейса

Когда поверх игры открывается меню или диалоговое окно, переключайте контекст или блокируйте фоновые элементы управления, чтобы геймпад взаимодействовал только с активным интерфейсом. Это предотвращает случайные действия персонажа или его перемещение на заднем плане при нажатии кнопок или навигации в меню.

Не рекомендуется. Рекомендуется
Не рекомендуется: при навигации по открытому меню инвентаря персонаж случайно перемещается и размахивает оружием на заднем плане. Рекомендуется: при открытии меню инвентаря блокируется ввод данных в фоновом режиме, поэтому нажатия кнопок D-pad и кнопок перемещают только фокус сетки элементов, пока персонаж стоит на месте.

Назначайте начальный фокус сразу после открытия экрана

В отличие от сенсорного ввода, когда игроки нажимают кнопки напрямую, навигация с помощью геймпада перемещает фокус с текущего элемента на соседний. Если новое меню или диалоговое окно открывается без начальной цели фокуса, вводы с помощью D-pad и подтверждения могут не реагировать или оставаться заблокированными на фоновых элементах. Назначьте начальный фокус на кнопку по умолчанию, как только откроется экран.

Не рекомендуется. Рекомендуется
Не рекомендуется: меню паузы открывается без фокуса на кнопке, поэтому у игрока нет начальной точки для навигации с помощью d-pad. Рекомендуется: в меню паузы сразу выделяется кнопка "Продолжить" с четкой рамкой фокуса и подсказкой кнопки A.