Compatibilità e ottimizzazione con PC per Google Play Giochi su PC

Google Play Giochi su PC richiede che tu apporti modifiche di compatibilità e ottimizzazione per PC al tuo gioco. Queste modifiche assicurano che il gioco possa essere eseguito su un PC e che l'esperienza utente sia ottimizzata per la piattaforma.

Inoltre, Google Play Giochi su PC ha requisiti di grafica, input del dispositivo e gioco su più dispositivi. Per maggiori informazioni, consulta la guida introduttiva.

Quando apporti le modifiche di compatibilità e ottimizzazione per PC (diverse dal supporto x86-64 ), puoi configurare il gioco in modo che rilevi Google Play Giochi su PC e poi disabiliti o abiliti le funzionalità specifiche della piattaforma. In questo modo puoi utilizzare lo stesso APK o app bundle per le release Android mobile e PC.

Ecco un riepilogo dei requisiti e dei consigli in questa pagina:

Includi l'architettura ABI x86-64

Se possibile, assicurati che tutte le librerie incluse nel gioco siano create per x86-64. In questo modo puoi garantire le migliori prestazioni e stabilità evitando eventuali livelli di traduzione.

Compilazione della libreria

Per garantire la massima compatibilità con il processore x86-64, non utilizzare il set di istruzioni atom quando compili le librerie. Ad esempio, quando utilizzi gcc, evita di utilizzare -march=atom e utilizza invece -march=x86-64.

Architettura di destinazione in Unity

Alcune versioni di Unity 2019 e 2020 non supportano l'architettura x86-64 su Android. Assicurati di utilizzare Unity 2019.4.31f1, 2020.3.19f1 o versioni successive.

Se il tuo gioco utilizza una versione compatibile del motore grafico Unity, procedi nel seguente modo per abilitare le destinazioni Android x86-64:

  1. Vai a Impostazioni player > Altre impostazioni > Configurazione > Backend di scripting e seleziona IL2CPP dal menu a discesa per abilitare il backend di scripting IL2CPP.

  2. Abilita le destinazioni Android x86-64 per la tua versione di Unity:

    • Unity 2018 e versioni precedenti: vai a Impostazioni player > Altre impostazioni > Architettura di destinazione e seleziona la casella di controllo x86. Poiché Unity 2018 supporta solo le destinazioni x86, non potrai creare x86-64. Questa build richiederà un'eccezione dal team di revisione. Contatta il tuo referente Google per richiedere un'eccezione x86.

    • Unity 2019 Long Term Support (LTS) e versioni successive: vai a Impostazioni player > Altre impostazioni > Architetture di destinazione e abilita x86-64 (ChromeOS).

Rileva Google Play Giochi su PC

Puoi rilevare la piattaforma Google Play Games su PC in fase di runtime, il che ti consente di abilitare o disabilitare le funzionalità specifiche della piattaforma nel gioco.

Controlla la funzionalità di sistema com.google.android.play.feature.HPE_EXPERIENCE per determinare se il gioco è in esecuzione sulla piattaforma Google Play Giochi su PC:

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

Gestisci gli eventi del ciclo di vita di Android

È importante gestire l'evento onPause (c++) nell'ambiente Google Play Giochi su PC. Il gioco è visibile quando un giocatore attiva la sovrapposizione dell'emulatore, quindi se non ascolti l'evento onPause l'esperienza utente potrebbe essere scadente.

Aggiorna l'interfaccia utente

Alcuni elementi e gesti dell'interfaccia utente non sono adatti per PC e devono essere aggiornati.

Obbligatorio:

  • Sostituisci le azioni dell'interfaccia utente che richiedono due o più dita (gesti multi-touch). Ad esempio, devi sostituire il gesto di pizzicamento per lo zoom e altri gesti multi-touch con l'input corrispondente di mouse e tastiera. Per maggiori dettagli sulle modifiche dell'input del dispositivo, consulta la sezione Supporto dell'input.

Consigliato:

  • Tutto il testo visibile all'utente deve indicare "fai clic" anziché "tocca".
  • Gli elenchi scorrevoli devono avere barre di scorrimento.
  • Le aree che gli utenti possono spostare devono avere barre di scorrimento o un altro modo per spostarsi rapidamente su lunghe distanze.
  • Non visualizzare una tastiera cliccabile sullo schermo per l'inserimento di testo.
  • Tutti gli inserimenti di testo devono rientrare nei limiti del campo di testo.
  • I clic sugli elementi visibili devono:
    • Accettare un clic ovunque entro i limiti visibili dell'elemento.
    • Non accettare un clic nell'area esterna all'elemento visibile.
  • Le finestre di dialogo devono avere un pulsante di chiusura visibile. Non rilevare un clic al di fuori dei limiti della finestra di dialogo.

Disattiva la maggior parte delle finestre di dialogo delle autorizzazioni

Ad eccezione delle autorizzazioni per microfono e notifiche, Google Play Giochi su PC non visualizza le finestre di dialogo delle autorizzazioni, quindi non devi tentare di visualizzarle o richiedere le autorizzazioni in fase di runtime. Se in precedenza hai visualizzato le finestre di dialogo delle autorizzazioni, devi aggiornare il gioco in modo che non le visualizzi più sui PC.

Funzionalità e autorizzazioni Android non supportate

Richiesto dalla procedura di release

Alcune funzionalità hardware comuni su smartphone e tablet non sono disponibili su PC. Sono incluse funzionalità hardware come la fotocamera o la posizione di un giocatore. Qualsiasi gioco che richieda funzionalità mancanti non può essere scaricato e installato sul PC di un giocatore. Le richieste di funzionalità mancanti su un PC non vanno a buon fine automaticamente.

Puoi visualizzare un elenco completo delle funzionalità disponibili digitando:

adb shell pm list features

Per rendere il gioco compatibile con i PC, sono necessarie le seguenti modifiche:

  • Devi contrassegnare le funzionalità come facoltative nel manifest dell'app aggiungendo android:required="false" alla dichiarazione <uses-feature>. Questo vale solo per le funzionalità già dichiarate nel manifest dell'app.

  • Non devi tentare di utilizzare le funzionalità mancanti in fase di runtime. Se utilizzi lo stesso APK sia per le tracce mobile che per PC, rileva l'ambiente PC in fase di runtime ed evita i percorsi di codice pertinenti.

  • Non devi richiedere autorizzazioni Android non supportate in fase di runtime. Se utilizzi lo stesso APK sia per le tracce mobile che per PC, rileva l'ambiente PC in fase di runtime ed evita i percorsi di codice pertinenti. Non devi aggiornare il manifest.

Per maggiori informazioni sulla compatibilità del manifest dell'app, consulta la guida alla compatibilità del manifest dell'app per Chromebook.

Requisiti per i test funzionali

Rimuovi queste funzionalità hardware prima di inviare la prima build di test a Google Play Console:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

Alcune di queste funzionalità potrebbero essere elencate come supportate quando esegui pm list features per motivi di compatibilità, ma non sono completamente implementate. Per maggiori informazioni su come rimuovere la funzionalità android.hardware.wifi, consulta la sezione Monitorare lo stato della connettività e la misurazione della connessione. Per un elenco completo delle funzionalità non supportate, consulta la guida alla compatibilità del manifest dell'app per Chromebook.

Requisiti per i test di qualità

Queste funzionalità hardware di uso comune non sono compatibili con i PC, quindi devi rimuoverle prima dell' invio finale a Google Play Console:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

Autorizzazioni non supportate

Le seguenti autorizzazioni di uso comune non sono supportate sui PC, quindi il gioco deve disattivarle per Google Play Giochi su PC:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

Siti web esterni e WebView

Un intent del browser viene caricato nel browser web nativo di un PC anziché in uno nell'ambiente Google Play Giochi su PC. Questa è un'esperienza ideale per i giocatori nella maggior parte delle situazioni.

Per semplificare il porting, Google Play Giochi su PC supporta WebView. Poiché si apre nell'ambiente Google Play Giochi su PC, non avrà il tipico browser desktop. Se in precedenza utilizzavi WebView per condividere i Termini di servizio, le Norme sulla privacy o altri contenuti simili, devi invece richiamare un intent del browser.

Disattiva le API di Google Play Services non supportate

Richiesto dalla procedura di release

Google Play Giochi su PC include una propria variante di Google Play Services che contiene solo un sottoinsieme delle API di Google Play Services. Devi verificare che la tua applicazione non dipenda fortemente da moduli omessi o non supportati su PC. Tieni presente che alcuni moduli potrebbero essere disponibili, ma la loro funzionalità non è supportata in ogni momento. Ad esempio, Firebase Cloud Messaging non funzionerà quando Google Play Giochi su PC è chiuso.

Moduli supportati

Questi moduli sono attualmente disponibili e supportati da Google Play Giochi su PC, con piani per il supporto di funzionalità aggiuntive:

Assistenza limitata

I seguenti moduli sono parzialmente funzionali. Faremo del nostro meglio per supportarli su Google Play Giochi su PC, ma non possiamo garantirne la funzionalità.

Non supportato

Questi moduli non sono supportati in Google Play Giochi su PC, ma non causano problemi in Google Play Giochi su PC quando non vanno a buon fine:

Non funzionante

Richiesto dalla procedura di release

Non devi utilizzare questi moduli sui PC perché possono causare un comportamento imprevisto in Google Play Giochi su PC.

Abilita l'archiviazione mirata

Richiesto dalla procedura di release

Questa sezione si applica se il gioco legge o scrive nell'unità di archiviazione esterna. L'applicazione dell'archiviazione mirata è obbligatoria come modo alternativo per leggere e scrivere nell'unità di archiviazione. In questo modo non è necessario chiedere al giocatore queste autorizzazioni sensibili:

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

Per maggiori informazioni sull'archiviazione mirata, consulta:

Analytics

I prodotti Google Analytics legacy non funzionano in Google Play Giochi su PC. Se questo vale per i tuoi giochi, devi eseguirne la migrazione a Google Analytics 4.

Questo dovrebbe influire sul gioco solo se attualmente utilizzi Google Analytics 360. Se utilizzi l'SDK Firebase per monitorare gli eventi di analisi nel gioco e puoi visualizzare il gioco come proprietà nella console Google Analytics, non devi intraprendere ulteriori azioni.