Ao implementar o suporte a gamepads, considere os seguintes requisitos essenciais para que os jogadores tenham uma experiência de jogo tranquila e sem interrupções.
Informe aos usuários na Google Play Store que seu jogo é compatível com controles
Declarar o recurso de gamepad no manifesto do Android mostra um ícone e uma tag de suporte a gamepad no Google Play. Use essa declaração para ajudar mais usuários a descobrir e jogar seu jogo. Para instruções de configuração detalhadas e exemplos de manifesto, consulte Visibilidade da Google Play Store e Recursos de hardware do gamepad.
Permitir que os jogadores alternem facilmente entre dispositivos de entrada
Quando os jogadores alternarem entre dispositivos de entrada, faça com que a transição seja perfeita. Evite exigir que os jogadores alternem manualmente o método de entrada em um menu de configurações ou reiniciem o jogo.
Alternar automaticamente e oferecer suporte à conexão automática
Mantenha todos os dispositivos de entrada compatíveis ativos simultaneamente para que os jogadores possam alternar
entre eles rapidamente. Detecte mudanças no dispositivo de entrada durante a execução para que os gamepads
funcionem imediatamente após a conexão sem reiniciar o app e faça a transição
para outros métodos de entrada disponíveis se um controle ativo for desconectado
durante o jogo. Para detectar conexões e desconexões de controles, consulte
Verificar se um controle de jogo está conectado (Kotlin ou Java) ou
Registrar ou remover um callback de status do controle (biblioteca de controle de jogo
em C++). No Android 16 (nível 36 da API) e versões anteriores, declare também
android:configChanges="keyboard|keyboardHidden|navigation" no manifesto para que
a conexão ou desconexão de um controle não reinicie a atividade (consulte
Processar mudanças de configuração).
| Não recomendado | Recomendado |
|---|---|
|
|
Atualizar a iconografia dos botões e os guias de texto para corresponder ao dispositivo ativo
Alterne dinamicamente os ícones de botões na tela e os guias de texto com base no dispositivo de entrada ativo. Por exemplo, mude um guia de controle por toque, como "Toque para pular", para "Pressione B para pular" (ou o botão equivalente da plataforma) quando o jogo detectar a entrada de um gamepad.
Ocultar controles por toque virtuais quando um gamepad estiver ativo
Para evitar que a tela fique cheia e confunda o jogador, oculte todos os elementos virtuais da interface de toque, como joysticks virtuais e botões na tela, quando um gamepad estiver ativo. Restaure a interface de toque imediatamente se o jogador tocar na tela.
Ofereça suporte total ao gamepad para toda a lógica do jogo
Evite usar o toque como um mecanismo substituto. Usar o toque para sair de menus ou realizar partes específicas do jogo pode quebrar a imersão. Implemente todas as interações no jogo para que os jogadores possam realizá-las usando um gamepad.
Mapear todos os elementos e caixas de diálogo do HUD para entradas do controle
Permita que os jogadores abram, interajam e fechem todos os elementos, menus e caixas de diálogo dos avisos na tela (HUD, na sigla em inglês) usando o controle com botões de atalho dedicados, botões superiores ou navegação por botão direcional (D-pad) para que eles não precisem tocar na tela.
| Não recomendado | Recomendado |
|---|---|
|
|
Separar os contextos de entrada de jogabilidade e da interface
Quando um menu ou uma caixa de diálogo for aberta sobre o jogo, mude de contexto ou bloqueie os controles em segundo plano para que o gamepad interaja apenas com a interface ativa. Essa separação evita que a navegação direcional ou o pressionamento de botões em um menu acionem acidentalmente movimentos ou ações de personagens em segundo plano.
| Não recomendado | Recomendado |
|---|---|
|
|
Atribuir o foco inicial imediatamente quando uma tela é aberta
Ao contrário da entrada por toque, em que os jogadores tocam diretamente nos botões, a navegação por gamepad se move do elemento em foco para um adjacente. Se um novo menu ou caixa de diálogo for aberto sem um destino de foco inicial, as entradas do botão direcional e de confirmação poderão não responder ou ficar presas em elementos de segundo plano. Atribua o foco inicial a um botão padrão assim que uma tela for aberta.
| Não recomendado | Recomendado |
|---|---|
|
|