Sviluppare con l'emulatore per sviluppatori di Google Play Giochi su PC

L'emulatore per sviluppatori di Google Play Giochi su PC è un emulatore incentrato sugli sviluppatori per Google Play Giochi su PC. A differenza dell'esperienza del giocatore, puoi installare ed eseguire il debug dei tuoi pacchetti. Puoi anche simulare varie configurazioni del giocatore, come proporzioni, emulazione del mouse e backend grafici, per assicurarti che il gioco funzioni come previsto in una serie di configurazioni del PC.

Avvio dell'emulatore

Una volta installato, avrai un elemento del menu di avvio "Google Play Games Developer Emulator" e una scorciatoia sul desktop per avviare l'emulatore. L'emulatore rimarrà nella barra delle applicazioni quando chiudi la finestra.

Accedi.

Ti viene chiesto di accedere al tuo Account Google la prima volta che esegui l'emulatore. Utilizza le stesse credenziali di accesso che prevedi di utilizzare per lo sviluppo.

Puoi uscire facendo clic con il tasto destro del mouse sull'icona della barra delle applicazioni, selezionando Opzioni per sviluppatori e poi facendo clic su Forza disconnessione. In questo modo, l'emulatore si riavvia immediatamente e ti chiede di accedere di nuovo.

Dopo l'avvio, vedrai una normale schermata Home di Android. I clic del mouse sinistro vengono tradotti direttamente in tocchi con le dita come nella modalità di emulazione del mouse. I giochi caricati lateralmente per lo sviluppo vengono visualizzati nell'elenco delle applicazioni, a cui puoi accedere facendo clic e trascinando verso l'alto sul desktop (emulando uno scorrimento verso l'alto su uno smartphone o un tablet).

Oltre alla traslazione del mouse, l'emulatore per sviluppatori di Google Play Giochi su PC fornisce scorciatoie da tastiera per migliorare la navigazione:

  • Ctrl + H: premi il tasto Home
  • ctrl + b: premi il pulsante Indietro
  • F11 o Alt + Invio: alternare la modalità a schermo intero e quella in finestra
  • Maiusc + Tab: apre la sovrapposizione di Google Play Games on PC, inclusi i mapping dei tasti correnti per l'SDK Input

Installare un gioco

L'emulatore per gli sviluppatori di Google Play Giochi su PC utilizza Android Debug Bridge (adb) per installare i pacchetti.

compatibilità ADB

Le versioni attuali di adb sono compatibili con l'emulatore per gli sviluppatori di Google Play Giochi su PC. Inoltre, quando installi l'emulatore, viene installata una versione compatibile in C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

Per seguire queste istruzioni, adb deve essere disponibile in $PATH. Puoi verificare che adb sia configurato correttamente con il comando adb devices

adb devices
List of devices attached
localhost:6520  device

Installare il gioco

  • Avvia Google Play Games for PC Emulator
  • Digita adb devices nel prompt dei comandi. Dovresti vedere:

    adb devices
    List of devices attached
    localhost:6520 device
  • Risoluzione dei problemi:

    • Se ricevi un errore, verifica di aver seguito le istruzioni riportate in Compatibilità di ADB.
    • Se non vedi un dispositivo, prova a riconnetterti tramite la porta 6520:
    adb connect localhost:6520
  • Digita adb install path\to\your\game.apk per installare il gioco. Se hai generato un Android App Bundle (aab), consulta le istruzioni per bundletool e utilizza bundletool install-apks.

  • Esegui il gioco in uno dei seguenti modi:

    • Digita adb shell monkey -p your.package.name 1 per eseguire il gioco, sostituendo your.package.name con il nome del pacchetto del gioco.
    • Nell'emulatore per sviluppatori di Google Play Giochi su PC, fai clic sull'icona per eseguire il gioco. Proprio come su uno smartphone Android, devi scorrere verso l'alto sulla schermata Home per visualizzare l'elenco dei giochi installati.

Eseguire il debug di un gioco

Utilizza Android Debug Bridge (adb) per eseguire il debug come faresti per qualsiasi altro gioco. L'emulatore viene visualizzato come dispositivo connesso tramite localhost:6520.

adb logcat funziona come previsto, così come gli strumenti che aiutano a formattare o filtrare l'output di logcat, incluso Android Studio.

Oltre a adb, i log sono accessibili nella directory %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. Il più utile qui è AndroidSerial.log, che rappresenta tutto ciò che adb logcat riprodurrebbe dal momento in cui l'emulatore si avvia.

Impostazioni di sviluppo

L'emulatore per sviluppatori di Google Play Giochi su PC si concentra sull'efficienza degli sviluppatori piuttosto che sull'esperienza degli utenti finali. Ciò significa che hai accesso senza ostacoli al sistema Android, incluso l'utilizzo dell'avvio app Android standard anziché dell'esperienza Google Play Giochi su PC, e controlli sulle funzionalità che altrimenti vengono attivate e disattivate automaticamente per i giocatori.

Test dell'input del mouse

Durante lo sviluppo, l'emulatore per sviluppatori di Google Play Giochi su PC utilizza l'emulazione del tocco anziché l'input diretto del mouse. Puoi attivare l'input diretto del mouse facendo clic con il tasto destro del mouse sull'icona della barra delle applicazioni, selezionando Opzioni sviluppatore e poi Modalità PC (KiwiMouse).

Google Play Giochi su PC ha due modalità mouse: una modalità emulata che traduce i clic del mouse in singoli tocchi e una modalità passthrough "PC" che consente ai giochi di gestire le azioni del mouse in modo nativo ed eseguire l'acquisizione del puntatore. Per informazioni sull'input del mouse in Google Play Giochi su PC, consulta Configurare l'input del mouse.

Nel client del player, l'emulazione viene disattivata aggiungendo quanto segue al manifest:

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

Questo flag funzionalità non ha effetto nell'ambiente di sviluppo.

Test delle proporzioni

L'emulatore per sviluppatori viene avviato con proporzioni 16:9, a differenza del client del player, che deriva le proporzioni dal display principale. Facendo clic con il tasto destro del mouse sull'icona della barra delle notifiche, selezionando Opzioni sviluppatore e poi qualsiasi opzione nella sezione Rapporto di visualizzazione, puoi testare l'aspetto del gioco sugli schermi di diversi giocatori.

Il metodo preferito per configurare le proporzioni è utilizzare android:minAspectRatio e android:maxAspectRatio.

Ad esempio, un gioco verticale avrebbe proporzioni 9/16 o 0.5625, quindi potresti voler impostare un rapporto di aspetto massimo di 1 per impedire che il gioco diventi più largo del quadrato:

<activity android:maxAspectRatio="1">
 ...
</activity>

Allo stesso modo, un gioco in formato orizzontale avrebbe un rapporto di 16/9 o circa 1.778, quindi potresti impostare un rapporto di aspetto minimo di 1 per evitare che diventi più stretto di un quadrato:

<activity android:minAspectRatio="1">
 ...
</activity>

Cosa testare

Se il tuo gioco supporta solo le modalità verticale nel manifest, puoi selezionare 9:16 (verticale) nel menu a discesa per vedere come appare sui PC dei giocatori. In caso contrario, verifica che il tuo gioco funzioni con le proporzioni orizzontali più ampie e più strette che supporti nel manifest, ricordando che 16:9 (predefinita) (o 9:16 (verticale) se il tuo gioco è solo verticale) è obbligatoria per la certificazione completa.

Test dei backend di rendering

Google Play Giochi su PC utilizza Vulkan per il rendering dei giochi, una tecnologia comune sia agli ambienti Android che a quelli PC. Viene utilizzato un livello di sandbox per isolare gli ambienti PC e Android. Poiché molti giochi utilizzano ancora OpenGL ES per il rendering, ANGLE convertirà i comandi OpenGL ES in comandi Vulkan compatibili con il PC host.

Allo stesso modo, Google Play Giochi su PC massimizza la compatibilità dei giochi e riduce al minimo lo sforzo degli sviluppatori convertendo automaticamente i formati delle texture compatibili con i dispositivi mobili come ETC1 ed ETC2 in formati compatibili con i PC in fase di runtime. Per ottenere risultati ottimali, evita questa conversione utilizzando formati supportati dalle GPU per PC, come DXTC o BPTC.

Cosa testare

Se il tuo gioco presenta artefatti di rendering imprevisti, esamina la grafica di origine e valuta la possibilità di passare a un formato compatibile con il PC. Presta particolare attenzione alle texture utilizzate per gli effetti più avanzati, poiché i problemi relativi alle mappe normali o cubiche sono spesso più difficili da individuare rispetto a quelli relativi all'albedo.

La conversione dei comandi OpenGL ES in Vulkan da parte di ANGLE aggiungerà un po' di overhead. Verifica di rispettare i target di rendimento previsti e valuta la possibilità di passare a un renderer basato su Vulkan.

Profilazione del gioco per PC

Poiché l'emulatore utilizza la stessa tecnologia del client consumer, è un ambiente adatto per la profilazione delle prestazioni.

Perfetto è uno strumento per analizzare le prestazioni su Android. Puoi raccogliere e visualizzare una traccia Perfetto seguendo questi passaggi:

  1. In un prompt di PowerShell, avvia una traccia utilizzando adb

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. Il flag --time specifica la durata della traccia da raccogliere. In questo esempio, la traccia dura 10 secondi.
    2. Gli argomenti dopo il flag --time indicano gli eventi da tracciare. In questo esempio, gfx indica la grafica, wm la gestione delle finestre e sched le informazioni sulla pianificazione dei processi. Questi sono flag comuni per la profilazione dei giochi ed è disponibile un riferimento completo.
    3. Il flag --out specifica il file di output, che viene estratto dall'emulatore sulla macchina host nel passaggio successivo.
  2. Recupera la traccia dall'host

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. Apri la traccia nell'interfaccia utente di Perfetto

    1. Apri ui.perfetto.dev.
    2. Seleziona Apri file di traccia nell'angolo in alto a sinistra in Navigazione.
    3. Apri il file example.trace che hai scaricato nel passaggio precedente nella directory Downloads/.
  4. Ispeziona la traccia nella UI di Perfetto. Ecco alcuni suggerimenti:

    1. Ogni processo ha una propria riga, che può essere espansa per mostrare tutti i thread al suo interno. Se stai profilando un gioco, il suo processo è probabilmente la prima riga.
    2. Puoi aumentare e diminuire lo zoom tenendo premuto Controllo e utilizzando la rotellina del mouse.
    3. Quando utilizzi l'evento sched, è presente una riga per ogni thread che mostra quando lo stato del thread è in esecuzione, eseguibile, in sospensione o bloccato.
    4. Quando attivi un evento come gfx, puoi visualizzare le varie chiamate grafiche effettuate da vari thread. Puoi selezionare singole "fette" per vedere quanto tempo hanno impiegato oppure puoi trascinare una riga per aprire una sezione "fette" in basso e mostrare quanto tempo hanno impiegato tutte le fette nella finestra temporale selezionata.

Profilazione grafica

È possibile eseguire alcuni profili grafici con RenderDoc.

  1. Imposta la variabile di ambiente ANDROID_EMU_RENDERDOC su una stringa non vuota (ad esempio "1").
  2. Imposta la variabile di ambiente TMP su %USERPROFILE%\AppData\LocalLow. In questo modo, Renderdoc posiziona i file di log in una posizione raggiungibile all'interno della sandbox dell'emulatore.

  3. Se utilizzi il backend Vulkan. Seleziona Impostazioni grafiche > Livelli impliciti dell'istanza Vulkan e assicurati che VKLAYER_RENDERDOC_Capture sia selezionato.

  4. Avvia l'emulatore per sviluppatori di Google Play Giochi su PC. Una sovrapposizione RenderDoc viene disegnata in alto finché il supporto è attivo.

  5. Avvia RenderDoc in qualsiasi momento prima o dopo l'avvio dell'emulatore per sviluppatori di Google Play Giochi su PC.

  6. Fai clic su File > Allega a istanza in esecuzione e seleziona crosvm.

Specifica le variabili di ambiente

Affinché Renderdoc funzioni, devi aggiungere o modificare le variabili di ambiente in Windows. Puoi modificare le variabili di ambiente utilizzando la UI, PowerShell o cmd.exe.

Utilizzare l'interfaccia utente
  • Premi Win+R per aprire la finestra di dialogo Esegui.
  • Digita sysdm.cpl per aprire la finestra Proprietà del sistema.
  • Se non è già attiva, seleziona la scheda Avanzate.
  • Fai clic sul pulsante Variabili di ambiente.

Da qui puoi fare clic sul pulsante Nuova per creare una nuova variabile di ambiente o selezionare una variabile e fare clic sul pulsante Modifica per modificarla.

Utilizzare PowerShell

In una finestra di PowerShell, digita:

$Env:VARIABLE_NAME=VALUE

Sostituisci VARIABLE_NAME e VALUE con i valori che vuoi impostare. Ad esempio, per impostare ANDROID_EMU_RENDERDOC sul tipo "1":

$Env:ANDROID_EMU_RENDERDOC="1"
Utilizzare cmd.exe

In una finestra cmd.exe, digita:

set VARIABLE_NAME=VALUE

Sostituisci VARIABLE_NAME e VALUE con i valori che vuoi impostare. Ad esempio, per impostare ANDROID_EMU_RENDERDOC sul tipo "1":

set ANDROID_EMU_RENDERDOC="1"

Suggerimenti per Android 11 (livello API 30) o versioni successive

Google Play Giochi su PC viene aggiornato con le ultime versioni di Android. Ecco alcuni suggerimenti per lavorare con l'ultima versione di Android.

Mantenere aggiornati gli strumenti

Android Studio installa una versione di adb compatibile con l'emulatore per sviluppatori; tuttavia, alcuni motori di gioco includono una versione precedente di adb. In questo caso, dopo aver installato l'emulatore per sviluppatori, puoi trovare una versione compatibile di adb all'indirizzo C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

Se avvii una versione di adb, l'altra viene chiusa. Ciò significa che se il tuo motore di gioco avvia automaticamente la propria istanza di adb, potresti dover riavviare e ricollegare la versione di adb fornita con l'emulatore per sviluppatori ogni volta che esegui il deployment.

Se utilizzi un Android App Bundle, devi installare l'ultima versione di Bundletool dal repository GitHub.

Archiviazione mirata

Android 11 (livello API 30) o versioni successive include l'archiviazione isolata, che offre una migliore protezione dei dati delle app e degli utenti sull'archiviazione esterna. Oltre a rendere il tuo gioco compatibile con i requisiti di archiviazione con ambito, devi eseguire passaggi aggiuntivi per caricare i file di espansione APK (obb) o i dati degli asset nell'emulatore per sviluppatori di Google Play Giochi su PC. Segui questi passaggi se riscontri problemi di accesso a questi file dal gioco:

  1. Crea una directory che la tua app possa leggere.
  2. Trasferisci i file di espansione all'emulatore.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

Visibilità dei pacchetti

A causa delle nuove regole di visibilità dei pacchetti, le app che hanno come target Android 11 (livello API 30) o versioni successive non possono eseguire query per informazioni sulle altre app installate su un dispositivo. Ciò significa che il tuo gioco non può accedere a Google Play Services se viene installato tramite sideload tramite adb anziché tramite il Play Store. Per testare IAP con un gioco caricato lateralmente, devi aggiungere una query al pacchetto "com.android.vending" nel tuo file AndroidManifest.xml come segue:

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

Installare il gioco nel client consumer

Non puoi installare un gioco sul client consumer finché non è stato elencato nel catalogo dei servizi per i giochi di Play. Dopo che il gioco ha una singola release, puoi creare un track di test interno per convalidare gli aggiornamenti futuri prima della release.

Il client del giocatore non supporta le funzionalità incentrate sugli sviluppatori dell'emulatore per sviluppatori di Google Play Giochi su PC. Questo è il modo migliore per eseguire il controllo qualità del gioco prima del rilascio per testare l'esperienza end-to-end del giocatore dopo il rilascio iniziale.