Uno dei vantaggi più evidenti dei dispositivi ChromeOS è rappresentato dai loro schermi grandi e bellissimi e dalla facilità con cui è possibile utilizzare monitor esterni. Tutto questo spazio sullo schermo offre molte potenzialità per i giochi, ma utilizzarlo bene può richiedere un po' di riflessione e lavoro di progettazione aggiuntivi.
Modifiche all'orientamento e alla configurazione
Alcune app mobile sono progettate specificamente per gli smartphone di piccole dimensioni e hanno l'orientamento bloccato in verticale. In questo modo si ottengono alcuni risultati apparentemente rapidi riducendo il numero di modifiche alla configurazione che il gioco è probabile che riceva e il numero di layout diversi necessari. Tuttavia, questa scelta può nascondere alcune sorprese: se scegli di non gestire le modifiche all'orientamento, molte app non saranno preparate per altre modifiche alla configurazione, come il ridimensionamento delle finestre, il collegamento della tastiera, i display esterni e così via. Queste modifiche possono causare arresti anomali e riavvii imprevisti. Per ulteriori informazioni, consulta la sezione Modifiche in fase di runtime. Sebbene queste modifiche avvengano anche sui dispositivi mobili, si verificano frequentemente sui dispositivi pieghevoli e ChromeOS e devono essere gestite correttamente.
Inoltre, sui dispositivi con schermi di grandi dimensioni con orientamento orizzontale o sui pieghevoli con proporzioni più quadrate, i giochi con orientamento verticale fisso verranno visualizzati con grandi barre nere sui lati.
Alcuni altri giochi per smartphone potrebbero scegliere di bloccare le proprie app in modalità orizzontale. Gli utenti di tablet o dispositivi convertibili saranno costretti a tenere il dispositivo in orientamento orizzontale, il che potrebbe risultare più aggressivo rispetto a uno smartphone e peggiorare l'esperienza di gioco. Per i tablet e i convertibili con schermi di grandi dimensioni, è possibile che il gioco abbia spazio sufficiente in modalità verticale. Per alcune persone, potrebbe essere più comodo tenere il dispositivo in questo orientamento, il che consente loro di interagire con il tuo gioco per periodi di tempo più lunghi.
A seconda dell'ambito e della maturità dei tuoi giochi, esistono diversi modi per risolvere il problema. Idealmente, il tuo gioco potrebbe adattarsi dinamicamente a diverse dimensioni dello schermo, offrendo un'esperienza immersiva e migliorata per gli utenti con schermi più grandi. Un altro approccio consiste nel trovare modi creativi per riempire lo spazio nero vuoto con informazioni utili come statistiche, mappe o finestre di chat oppure per includere immagini pertinenti al gioco come sfondo al posto del nero, in modo da fornire un'inquadratura migliore per il gameplay principale.
Se possibile, consenti agli utenti di utilizzare la tua app in entrambi gli orientamenti, se le dimensioni dello schermo lo consentono.
Esempio 1

Un puzzle game è un gioco Android per adulti progettato per smartphone in formato verticale. Sugli schermi grandi in formato orizzontale, viene riprodotto con barre nere sui lati. Poiché il gioco aveva una base di utenti ampia e attiva e lo sviluppatore si sta concentrando sul suo prossimo titolo, ha scelto di aggiungere un'immagine con messa a fuoco morbida allo sfondo di ogni livello e menu per inquadrare il gioco, senza richiedere una riscrittura della UI. Poiché sono in fase di sviluppo attivo per il prossimo gioco, lo sviluppatore sta includendo il supporto orizzontale nel nuovo titolo.
Esempio 2

Un gioco di corse automobilistiche progettato per il mobile è bloccato in modalità orizzontale per ottimizzare lo spazio sullo schermo degli smartphone. Di recente, gli utenti di tablet e ChromeOS si sono lamentati della difficoltà di giocare e hanno chiesto il supporto della modalità verticale. Lo sviluppatore include un controllo delle dimensioni dello schermo nel codice e, se lo schermo è abbastanza grande, la modalità verticale è consentita. Per consentire comunque la visuale grandangolare richiesta per il gioco, i contenuti vengono posizionati al centro dello schermo, mentre nella parte inferiore dello schermo viene visualizzata una barra aggiuntiva dell'interfaccia utente dell'autoradio che consente agli utenti di cambiare facilmente la stazione radio. Le statistiche di mappe e corse vengono spostate nella parte superiore dello schermo, liberando la visuale del parabrezza e migliorando il gameplay.
Consulta anche le linee guida per gli schermi di grandi dimensioni di Android e la documentazione sulle dimensioni dello schermo di Android.
Funzionalità multi-finestra
I giochi spesso offrono agli utenti un'esperienza immersiva a schermo intero. Alcuni utenti su computer o dispositivi pieghevoli, tuttavia, preferiscono avere servizi di chat, musica o streaming video aperti e visibili contemporaneamente in una finestra separata. Se sta registrando o condividendo il proprio schermo, può essere utile anche avere altre finestre aperte e visibili.
La funzionalità multi-finestra è il comportamento predefinito per app e giochi per Android, che si applica ai desktop ChromeOS, nonché a smartphone e tablet in modalità Split Screen. Se vuoi impedire il ridimensionamento del gioco, dichiara che non è ridimensionabile in AndroidManifest.xml.
android:resizeableActivity="false"
Se il tuo gioco è ridimensionabile, ci sono alcuni aspetti importanti da considerare:
- Quando la finestra viene ridimensionata, per impostazione predefinita Android "distrugge" e "ricrea" il gioco (vedi ciclo di vita di Android). Il gioco deve tenere traccia dello stato durante queste ricreazioni (consulta la documentazione di Jetpack ViewModel) oppure gestire manualmente queste modifiche alla configurazione e impedire la ricreazione, in modo che il motore di gioco gestisca le nuove dimensioni dello schermo. Per saperne di più, guarda questo video della Game Developer Conference 2019.
- Gestione corretta di
onPausenel caso in cui la tua app sia visibile eSTARTED, ma nonRESUMED. Vedi Ciclo di vita della funzionalità Multi-finestra. - Considera proporzioni diverse per le finestre ridimensionate (ritaglio rispetto al ridimensionamento degli asset)
Scopri di più sulla gestione delle finestre.
Modalità a schermo intero
Quando il gioco è in esecuzione in una finestra a schermo intero, potresti volerlo mettere in modalità immersiva per rimuovere i bordi della finestra e altri elementi dello schermo che distraggono. Per saperne di più, consulta la documentazione a schermo intero di Android.
private fun hideSystemUI() { // Enables regular immersive mode. window.decorView.systemUiVisibility = ( View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) }