Considerações essenciais sobre design

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.

Telas de jogos de corrida lado a lado: os botões de direção por toque e de nitro aparecem durante o jogo em dispositivos móveis e desaparecem automaticamente quando um gamepad físico é conectado.
Figura 1. Alternância perfeita entre métodos de entrada sem interromper 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
Não recomendado: uma caixa de diálogo modal que exige que o jogador mude o modo de entrada manualmente nas configurações e reinicie o jogo quando um controle é detectado. Recomendado: um banner não intrusivo confirmando que o controle está conectado e que a entrada foi trocada automaticamente com as solicitações do gamepad.

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.

Telas de jogos de aventura lado a lado: as instruções "Toque para pular" e "Toque no baú para abrir" mudam para "Pressione B para pular" e "Pressione A para abrir o baú" quando um gamepad é conectado.
Figura 2. Atualização dinâmica dos ícones de botões na tela e do texto de orientação para corresponder ao controle ativo.

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.

Telas de um jogo de aventura lado a lado: o joystick virtual e o botão de ataque com espada ficam visíveis durante o jogo por toque e ocultos para uma visão desobstruída quando um gamepad é conectado.
Figura 3. Ocultar os controles por toque virtuais quando a entrada do gamepad estiver ativa.

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
Não recomendado: uma caixa de diálogo modal e ícones de interface na tela sem atalhos de controle, forçando o jogador a tocar no botão de fechar na tela. Recomendado: ícones de interface na tela e botões de caixa de diálogo modal mapeados para entradas do controle com comandos claros para os botões A e B.

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
Não recomendado: navegar em um menu de inventário aberto faz com que o personagem se mova e use a arma em segundo plano. Recomendado: abrir o menu de inventário bloqueia a entrada de jogabilidade em segundo plano para que o botão direcional e os botões pressionados movam apenas o foco da grade de itens enquanto o personagem fica parado.

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
Não recomendado: um menu de pausa é aberto sem nenhum botão em foco, deixando o jogador sem um ponto de partida para a navegação com o botão direcional. Recomendado: o menu de pausa destaca imediatamente o botão "Continuar" padrão com uma borda de foco clara e um comando do botão A.