Considerazioni essenziali sulla progettazione

Quando implementi il supporto del gamepad, tieni presente i seguenti requisiti essenziali per aiutare i giocatori a godersi un gameplay fluido e senza interruzioni.

Fai sapere agli utenti del Play Store che il tuo gioco supporta i controller

La dichiarazione della funzionalità del gamepad nel file manifest Android mostra un'icona e un tag che indicano che il gamepad è supportato su Google Play. Utilizza questa dichiarazione per aiutare più utenti a scoprire e giocare al tuo gioco. Per istruzioni dettagliate sulla configurazione ed esempi di manifest, consulta Visibilità sul Play Store e Funzionalità hardware del gamepad.

Consenti ai giocatori di passare facilmente da un dispositivo di input all'altro

Quando i giocatori passano da un dispositivo di input all'altro, assicurati che il passaggio sia fluido. Evita di richiedere ai giocatori di attivare manualmente il metodo di immissione in un menu delle impostazioni o di riavviare il gioco.

Schermate di un gioco di corse affiancate: i pulsanti touch per lo sterzo e il nitro vengono visualizzati durante il gioco su dispositivo mobile e scompaiono automaticamente quando viene collegato un gamepad fisico.
Figura 1. Passaggio fluido tra i metodi di input senza interrompere il gameplay.

Cambio automatico e supporto dell'hot-plugging

Mantieni attivi contemporaneamente tutti i dispositivi di input supportati in modo che i giocatori possano passare da uno all'altro rapidamente. Ascolta le modifiche ai dispositivi di input in fase di runtime in modo che i gamepad funzionino immediatamente dopo la connessione senza riavviare l'app e passa senza problemi ad altri metodi di input disponibili se un controller attivo si disconnette durante il gameplay. Per rilevare le connessioni e le disconnessioni del controller, consulta Verifica che un controller per videogiochi sia connesso (Kotlin o Java) o Registra o rimuovi un callback di stato del controller (libreria Game Controller C++). Su Android 16 (livello API 36) e versioni precedenti, dichiara anche android:configChanges="keyboard|keyboardHidden|navigation" nel manifest in modo che la connessione o la disconnessione di un controller non riavvii l'attività (vedi Gestisci le modifiche alla configurazione).

Selezione sconsigliata Consigliato
Sconsigliato: una finestra di dialogo modale che richiede al giocatore di cambiare manualmente la modalità di input nelle Impostazioni e di riavviare il gioco quando viene rilevato un controller. Consigliato: un banner non invasivo che conferma che il controller è connesso e che l'input è stato cambiato automaticamente con i prompt del gamepad.

Aggiorna l'iconografia dei pulsanti e le guide di testo in modo che corrispondano al dispositivo attivo

Cambia dinamicamente le icone dei pulsanti sullo schermo e le guide di testo in base al dispositivo di input attivo. Ad esempio, passa da una guida ai controlli touch come "Tocca per saltare" a "Premi B per saltare" (o il pulsante equivalente della piattaforma) quando il gioco rileva l'input del gamepad.

Schermate di un gioco di avventura affiancate: i prompt "Tocca per saltare" e "Tocca il baule per aprirlo" diventano "Premi B per saltare" e "Premi A per aprire il baule" quando viene collegato un gamepad.
Figura 2. Aggiornamento dinamico delle icone dei pulsanti sullo schermo e del testo della guida in base al controller attivo.

Nascondi i controlli touch virtuali quando è attivo un gamepad

Per evitare confusione sullo schermo e per il giocatore, nascondi tutti gli elementi UI touch virtuali, come i joystick virtuali e i pulsanti sullo schermo, quando un gamepad è attivo. Ripristina immediatamente la UI touch se il player tocca lo schermo.

Schermate di un gioco di avventura affiancate: il joystick virtuale e il pulsante di attacco con la spada sono visibili durante il gioco con il tocco e nascosti per una visuale senza ostacoli quando viene collegato un gamepad.
Figura 3. Nascondere i controlli touch virtuali quando l'input del gamepad è attivo.

Fornisci il supporto completo del gamepad per tutta la logica in-game

Evita di fare affidamento sul tocco come meccanismo di riserva. L'utilizzo del tocco per uscire dai menu o eseguire parti specifiche del gioco può interrompere l'immersione. Implementa tutte le interazioni in-game in modo che i giocatori possano eseguirle interamente utilizzando un gamepad.

Mappa tutti gli elementi HUD e le finestre di dialogo agli input del controller

Consenti ai giocatori di aprire, interagire e chiudere tutti gli elementi, i menu e le finestre di dialogo del display a sovrimpressione (HUD) sullo schermo utilizzando il controller tramite pulsanti di scorciatoia dedicati, bumper o navigazione con il D-pad, in modo che non debbano toccare lo schermo.

Selezione sconsigliata Consigliato
Non consigliato: una finestra di dialogo modale e icone dell'interfaccia sullo schermo senza scorciatoie del controller, che costringono il giocatore a toccare il pulsante di chiusura sullo schermo. Consigliato: icone dell'interfaccia sullo schermo e pulsanti delle finestre di dialogo modali mappati agli input del controller con prompt chiari per i pulsanti A e B.

Contesti di input di gameplay e UI separati

Quando un menu o una finestra di dialogo si apre sopra il gameplay, cambia contesto o blocca i controlli in background in modo che il gamepad interagisca solo con l'UI attiva. Questa separazione impedisce che la navigazione direzionale o la pressione dei pulsanti in un menu attivino accidentalmente movimenti o azioni dei personaggi in background.

Selezione sconsigliata Consigliato
Non consigliato: la navigazione in un menu dell'inventario aperto fa sì che il personaggio si muova e agiti l'arma in background. Consigliato: l'apertura del menu dell'inventario blocca l'input del gameplay in background, in modo che la pressione del D-pad e dei pulsanti sposti solo lo stato attivo della griglia degli elementi mentre il personaggio rimane fermo.

Assegna lo stato attivo iniziale immediatamente all'apertura di una schermata

A differenza dell'input tocco, in cui i giocatori toccano direttamente i pulsanti, la navigazione con il gamepad si sposta dall'elemento attualmente attivo a uno adiacente. Se si apre un nuovo menu o una nuova finestra di dialogo senza un target di selezione iniziale, gli input del D-pad e di conferma potrebbero non rispondere o rimanere bloccati sugli elementi in background. Assegna lo stato attivo iniziale a un pulsante predefinito non appena si apre una schermata.

Selezione sconsigliata Consigliato
Sconsigliato: si apre un menu di pausa senza alcun pulsante attivo, lasciando il giocatore senza un punto di partenza per la navigazione con il D-pad. Consigliato: il menu di pausa evidenzia immediatamente il pulsante Continua predefinito con un bordo di selezione chiaro e un prompt del pulsante A.