Convertire un gioco esistente in un gioco istantaneo

I passaggi per configurare le app da eseguire Google Play Instant, come spiegato in Crea la tua prima app istantanea. si applicano anche ai giochi. Questa guida evidenzia alcuni passaggi di configurazione specifici dei giochi.

Puoi sviluppare giochi per Google Play Instant utilizzando Unità (con o senza Google Play Instant Unity plug-in), Cocos2D Android Studio o il tuo motore personalizzato.

Questa guida presuppone che tu conosca già il tipo di esperienza di gioco che troveresti che desideri fornire. Se desideri vedere idee e best practice per realizzare di alta qualità, leggi le best practice relative all'UX per i giochi su Google Play Instant.

Inoltre, prima di pubblicare un gioco eseguibile su Google Play Instant, consulta i requisiti tecnici elenco di controllo.

Un'attività che include il seguente filtro per intent diventa il punto di ingresso per l'esperienza Google Play Instant:

<activity android:name=".GameActivity">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Questa attività viene avviata quando un utente tocca il pulsante Prova ora nella sezione di Google Play Store o Gioca subito nell'app Google Play Giochi. Puoi anche avviare questa attività direttamente utilizzando API per i link diretti.

Definisci i codici di versione corretti

Il codice di versione dell'app istantanea del tuo gioco deve essere inferiore a del gioco installabile. Il controllo delle versioni dell'app in questo modo consente giocatori per passare dall'esperienza Google Play Instant al download e installando il gioco sul loro dispositivo. Il framework Android considera questo aspetto diventerà un aggiornamento dell'app.

Per assicurarti di seguire lo schema di controllo delle versioni consigliato, segui una delle queste strategie:

  • Riavvia i codici di versione per l'esperienza Google Play Instant da 1.
  • Aumenta di un numero elevato il codice di versione dell'app installabile, ad esempio 1000, per assicurarti che ci sia spazio sufficiente per la versione dell'app istantanea. numero da aumentare.

È consentito sviluppare il tuo gioco istantaneo e il tuo gioco installabile in due parti separate progetti Android Studio. In questo caso, però, devi seguire questi passaggi per pubblica il tuo gioco su Google Play:

  1. Utilizza lo stesso nome di pacchetto in entrambi i progetti Android Studio.
  2. In Google Play Console, carica entrambe le varianti nella stessa applicazione.
di Gemini Advanced.

Per maggiori dettagli sull'impostazione della versione del gioco, vedi Eseguire la versione del tuo gioco Google Cloud.

Supportare l'ambiente di esecuzione

Come altre app, i giochi su Google Play Instant vengono eseguiti entro un periodo limitato la sandbox sul dispositivo. Per supportare questo ambiente di esecuzione, completa i passaggi mostrato nelle sezioni seguenti.

Disattiva il traffico di testo in chiaro

I giochi su Google Play Instant non supportano il traffico HTTP. Se il tuo gioco ha come target Android 9 (livello API 28) o versioni successive; Android disattiva il supporto del testo in chiaro nel gioco per impostazione predefinita.

Se il tuo gioco ha come target Android 8.1 (livello API 27) o versioni precedenti, devi Crea un file Network Security Config. In questo file, imposta cleartextTrafficPermitted su false, come mostrato in seguente snippet di codice:

res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Aggiorna la versione sandbox di destinazione

Aggiorna il file AndroidManifest.xml del tuo gioco istantaneo in modo che abbia come target la ambiente sandbox supportato da Google Play Instant. Puoi completare questo aggiornamento aggiungendo l'attributo android:targetSandboxVersion al tuo elemento <manifest> dei giochi, come mostrato nello snippet di codice seguente:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Per ulteriori informazioni, consulta la documentazione sul targetSandboxVersion .

Non fare affidamento sulla presenza di una cache o dati dell'app

Il download dell'app istantanea rimane sul dispositivo di un utente fino al la cache dell'app istantanea viene svuotata in uno dei seguenti modi situazioni seguenti:

  • La cache dell'app istantanea viene garbage collection perché il dispositivo sta esaurendo la memoria disponibile.
  • L'utente riavvia il dispositivo.

In uno dei due casi, l'utente deve scaricare di nuovo l'app istantanea per interagire.

Se lo spazio di archiviazione del sistema sta per esaurirsi, è possibile che i dati utente dell'app istantanea vengono rimossi dalla memoria interna. Pertanto, ti consigliamo di sincronizzare periodicamente i dati utente con il server del tuo gioco, in modo che l'avanzamento dell'utente viene mantenuto.

Riduci le dimensioni dell'app

A differenza di altri tipi di app, i giochi su Google Play Instant hanno un dimensioni massime di download di 15 MB. Per creare un gioco di queste dimensioni, potresti dover ridefinire la logica del gioco. In questa sezione vengono descritti alcuni strumenti tecniche per ottimizzare le dimensioni del gioco.

Strumenti

Il seguente elenco di strumenti può aiutarti a determinare cosa contribuisce al dimensioni del gioco:

  • Strumento di analisi APK: offre una visione olistica dei contenuti di un APK compilato. Utilizzando questa visualizzazione, è possibile determinare il numero byte che ogni elemento contribuisce alla dimensione complessiva. Usa questo strumento per controllare rapidamente le dimensioni delle risorse, degli asset, della logica e delle librerie native che usato dal gioco.
  • Bloaty McBloatface: mostra il del profilo delle dimensioni dei file binari.
  • GPU Inspector Android: consente di visualizzare l'effetto sulle dimensioni del file. di ridurre le dimensioni della texture senza dover ricompilare il gioco.

Tecniche

Di seguito è riportato un elenco di tecniche che puoi utilizzare per ridurre le dimensioni il tuo gioco:

  • Estrai parte della logica del tuo gioco e posizionala in una o più funzionalità moduli, che non vengono conteggiate ai fini del limite di dimensioni.
  • Riduci la risoluzione delle texture del gioco.
  • Valuta l'uso della classe WebP soprattutto se utilizzi texture non compresse sulla GPU. WebP crea immagini della stessa qualità delle immagini JPEG, ma con una 30% più piccola. Sebbene la decompressione delle immagini WebP richieda più tempo, questo il tempo di decompressione è comunque molto più breve di quello di download del tuo texture del gioco. Google ha anche integrato questo formato in un gioco open source di ricerca.
  • Comprimi o riutilizza suoni e musica.
  • Usa diversi flag di compilazione per ridurre le dimensioni del tuo file binario:
    • -fvisibility=hidden: la più importante. In cmake, puoi specificare come segue:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – Importante anche per ridurre le dimensioni. Se compili usando gcc, usa -Os in alternativa.
    • -flto – A volte riduce le dimensioni del file.
    • Flag linker: usa --gc-sections insieme ai flag del compilatore, ad esempio come -ffunction-sections e -fdata-sections.
  • Utilizza ProGuard per ridurre il codice e le risorse.
  • Utilizza Gradle 4.4 o versioni successive per generare file DEX più piccoli.
  • Implementa la distribuzione degli asset su cloud.

Dividere un gioco di grandi dimensioni in più APK

Può essere difficile ottimizzare l'esperienza Google Play Instant per per inserire il tuo gioco in un singolo APK da 15 MB, anche dopo aver applicato i consigli per ridurre le dimensioni degli APK. Indirizzo di destinazione questa sfida, puoi dividere il tuo gioco in più APK. I giocatori iniziano per scaricare l'APK principale di base; mentre giocano, le restanti suddivise Gli APK vengono resi disponibili per il gioco in background.

Ad esempio, l'APK di base può contenere il motore di gioco principale e gli asset necessaria per visualizzare una schermata di caricamento. All'avvio, l'APK di base viene visualizzato schermata di caricamento e richiede immediatamente un APK diviso aggiuntivo che contenga i dati di gioco e livello. Una volta che l'APK diviso diventa disponibile, può caricare i relativi asset nel motore di gioco e fornisci al giocatore i contenuti di cui ha bisogno per iniziare al gioco.

Adotta le best practice sull'esperienza utente

Dopo aver configurato il gioco in modo che supporti le app istantanee, aggiungi la logica mostrata nelle sezioni seguenti per fornire un buon utente un'esperienza senza intervento manuale.

Supporto di architetture a 64 bit

Le app pubblicate su Google Play devono supportare architetture a 64 bit. L'aggiunta di un La versione a 64 bit della tua app migliora le prestazioni e ti configura per i dispositivi con hardware solo a 64 bit. Scopri di più sul supporto del formato a 64 bit.

Controlla se il gioco è in esecuzione nell'esperienza istantanea

Se parte della logica del tuo gioco dipende dal fatto che l'utente sia coinvolto o meno nel tuo istantanea, richiama isInstantApp() . Questo metodo restituisce true se il processo attualmente in esecuzione è un un'esperienza istantanea.

Facendo questo controllo, puoi determinare se l'app deve essere eseguita in un ambiente di esecuzione limitato o che tu possa sfruttare funzionalità della piattaforma Google Cloud.

Mostrare una richiesta di installazione

Se hai creato un'esperienza di prova di Google Play Instant, a un certo punto il gioco dovrebbe visualizzare il player per installare la versione completa sul suo dispositivo. A questo scopo, utilizza showInstallPrompt() nelle API di Google per Android.

Per scoprire di più su come e quando richiedere l'installazione del player, consulta le best practice relative all'esperienza utente per i giochi su Google Play Instant.

Trasferisci i dati a un'esperienza installata

Se un giocatore apprezza l'esperienza di prova, potrebbe decidere di installare la versione completa del gioco. Per offrire una buona esperienza utente, è importante che i progressi del giocatore vengano trasferiti dall'app istantanea all'app la versione completa del gioco.

Se il tuo gioco specifica un targetSandboxVersion di 2, i progressi del giocatore verranno trasferiti automaticamente alla versione completa del gioco. In caso contrario, dovrai trasferire manualmente i dati relativi all'avanzamento del player. A questo scopo, utilizza l'API Cookie (app di esempio)

Risorse aggiuntive

Puoi trovare ulteriori informazioni su Google Play Instant nelle seguenti risorse aggiuntive:

Codelab: crea la tua prima app istantanea
Aggiungi il supporto di Google Play Instant in un'app esistente.
Codelab: creare un'app istantanea con più funzionalità
Modularizza un'app multifunzionalità.