Domande frequenti

Questo documento risponde alle domande comuni su SDK e pubblicazione per Google Play Giochi su PC.

Come aggiungere una VPN?

Per gli sviluppatori che devono testare il proprio gioco nelle regioni in cui Google Play Giochi su PC non è supportato, consigliamo di utilizzare una VPN per acquisire un indirizzo IP da una regione supportata.

Assicurati di attivare la modalità TUN sulla VPN. Le indicazioni per attivare la modalità TUN e configurare il firewall sono disponibili nel manuale operativo del fornitore di VPN.

Dopo aver attivato la modalità TUN, installa Google Play Giochi su PC e l'emulatore a scopo di test.

Puoi utilizzare il flusso di acquisto senza un server di backend?

Dal punto di vista della sicurezza, l'elaborazione senza un server di backend in genere non è consigliata.

Per saperne di più, vedi Elaborazione senza un server di backend.

Come si inizia a sviluppare per Google Play Giochi su PC in Unity o UE Editor?

Quando avvii un gioco utilizzando l'app Google Play Games, i dettagli del tuo Account Google vengono sincronizzati?

Dopo aver avviato il gioco tramite il client Google Play Games, l'account viene sincronizzato automaticamente e non è necessario accedere di nuovo tramite la procedura di accesso di Google.

Quando si invia un Windows App Bundle (WAB) utilizzando un launcher di terze parti, il pacchetto del gioco è necessario per la revisione?

Puoi inviare solo il programma di installazione e non l'intero pacchetto del gioco. Il revisore potrà scaricare il pacchetto del gioco utilizzando il programma di installazione.

Se un giocatore utilizza un launcher di terze parti anziché il client Google Play, il suo account Play Games Services verrà sincronizzato automaticamente?

Affinché le funzioni dell'SDK funzionino, il gioco deve essere avviato direttamente tramite il client Google Play Games. Se un altro processo, ad esempio un programma di installazione o un'applicazione di avvio, avvia il gioco, questo processo deve essere avviato dal client Google Play Games. Il gioco deve trasferire tutti i parametri ricevuti dal client al processo client.

In che modo l'SDK gestisce l'accesso con l'Account Google per più istanze o account?

Ogni avvio di gioco in Google Play Giochi viene trattato come una "sessione di gioco" e ogni "sessione di gioco" può avere un account associato. Possono essere diversi. Quindi, se avvii il gioco con l'account A, passi all'account B e riavvii, entrambi possono essere eseguiti contemporaneamente.

Esistono limitazioni per le dimensioni dei file WAB (Windows App Bundle)?

Puoi caricare file di dimensioni massime pari a 10 GB per un WAB.

I sistemi di pagamento esistenti basati su API sono consentiti dopo l'integrazione dell'SDK Google Play Games su PC?

Tutti i pagamenti devono essere gestiti dall'SDK Google Play Giochi su PC utilizzando la Fatturazione Google Play. Non puoi utilizzare il metodo di pagamento esistente basato su API nello stesso gioco.

Esistono ambienti di test aperti o chiusi simili a quelli per il mobile?

Sebbene al momento non sia disponibile una sandbox end-to-end dedicata, riconosciamo la necessità di un ambiente di test simile alla produzione per gli sviluppatori. A breve verrà offerta una soluzione più solida.

Non possiamo utilizzare correttamente gli acquisti avviati in modalità sviluppatore?

Il consumo dell'acquisto in modalità sviluppatore deve essere effettuato entro 3 minuti, altrimenti l'acquisto potrebbe essere stato rimborsato.

Esistono differenze tra l'API (legacy) e l'SDK Google Play Giochi su PC?

  • Legacy incentrato solo sulla fatturazione
  • L'SDK supporterà Google Desktop Service (GDS) e le funzionalità complete del PC
  • Interfaccia SDK semplice da usare per gli sviluppatori
  • Non è necessario l'accesso a Google basato sul browser

Esiste un modo alternativo per inizializzare l'SDK avviando il gioco direttamente utilizzando il launcher di giochi, senza passare per Google Play Giochi su PC?

Il gioco deve essere avviato tramite il client Google Play Giochi su PC. Per maggiori dettagli, consulta il documento per gli sviluppatori.

I pagamenti o gli abbonamenti ricorrenti non sono supportati. Sono previsti piani per implementare questa funzionalità?

Non è previsto di aggiungere queste opzioni di acquisto oltre all'acquisto in-app. Ti invitiamo a inviarci il tuo feedback con casi d'uso specifici.

L'errore billingerror deriva dall'avvio di un flusso di acquisto o dal risultato del pagamento?

È la risposta del risultato del pagamento. LaunchPurchaseFlow verrà restituito immediatamente senza bloccarsi, ma devi ascoltare il callback per sapere quando è terminato e acquisire il risultato.

Esiste un modo per creare una scorciatoia per aprire direttamente il gioco?

Puoi utilizzare il seguente URI per aprire direttamente il gioco:

googleplaygames://launch/?pid=2&id=com.company.gamename

L'URI supporta il rilevamento dell'apertura del client Google Play Giochi su PC. Se il client non è aperto, si apre il client Google Play Giochi prima dell'esecuzione del gioco/launcher. Devi gestire il gioco/launcher per impedire l'esecuzione di più istanze.

QueryProductDetails Limiti delle richieste API

Il numero massimo di prodotti su cui è possibile eseguire query in una singola chiamata all'API QueryProductDetails è 50. Se superi questo limite, devi dividere la richiesta in più chiamate.

Perché il mio gioco non viene installato o visualizzato dopo aver caricato il primo Windows App Bundle (WAB)?

Se il tuo gioco viene integrato senza una versione per PC preesistente (una "prima volta WAB"), il sistema potrebbe inserirlo automaticamente in uno stato di attesa di pubblicazione gestita. Ciò accade perché non esiste una baseline da aggiornare. Per rilasciare completamente il WAB e rendere disponibile l'installazione del gioco, devi andare su Google Play Console ed eseguire manualmente l'azione di pubblicazione richiesta (ad esempio, fare clic su "Pubblica modifiche").

Come gestisci l'inizializzazione se Google Play Games avvia un launcher di giochi di terze parti?

Non è necessario integrare l'SDK direttamente nel launcher. Tuttavia, devi passare tutti gli argomenti della riga di comando ricevuti dal launcher dal client Google Play Giochi direttamente al processo secondario generato (l'eseguibile del gioco). Se l'inizializzazione non riesce (ad esempio restituendo kActionRequiredShutdownClientProcess), tutti i processi, incluso il launcher, devono essere terminati in modo che Google Play Games possa tentare di recuperare e riavviare automaticamente il gioco. Per maggiori dettagli, vedi il passaggio 5 della guida alla configurazione.

Si verifica un errore di timeout se un utente chiude il browser senza pagare durante un flusso di acquisto?

Sì, si tratta di un problema noto e del comportamento previsto nel flusso attuale basato sul browser. Google sta lavorando attivamente a una funzionalità di acquisto senza interruzioni (basata su WebView) che manterrà il flusso di pagamento all'interno del gioco e risolverà questo problema di timeout.

L'SDK nativo per PC supporta i caratteri multibyte nel file di certificazione (PEM)?

Sì, l'SDK supporta i caratteri multibyte per la certificazione.

Quali parametri sono obbligatori quando si chiama BillingClient::QueryPurchases o BillingClient::LaunchPurchaseFlow?

La funzione accetta QueryPurchasesContinuation, che è un callback di funzione con la firma std::function<void(QueryPurchasesResult)>. Il callback ti passa il risultato con tutti i ProductPurchaseDetails. Queste informazioni sono disponibili nei file di intestazione dell'SDK nel file includes/billing/models.h.

Il launch_purchase_flow_result risultante ha le funzioni ok() e code(). La funzione ok() restituisce un valore che indica se il flusso è stato eseguito correttamente. La funzione code() restituisce l'enumerazione BillingError (includes/billing/enums.h), che presenta 10 possibili casi di errore, ad esempio annullamento da parte dell'utente o errore di rete.

La chiamata a BillingClient::LaunchPurchaseFlow() supporta il passaggio di un numero d'ordine personalizzato?

Nell'attuale progettazione dell'SDK, non è possibile passare il proprio payload. Tuttavia, puoi fornire qualsiasi combinazione di obfuscated_account_id e obfuscated_profile_id. Puoi non fornire nulla, solo uno o entrambi.

Il campo offer_token è obbligatorio e specifica l'offerta di acquisto che l'utente sta tentando di acquistare nel flusso di pagamento. Per il momento, ogni SKU in Google Play ha esattamente un'offerta (ad esempio, acquista un articolo per 10 $). In futuro, il team di fatturazione di Google Play fornirà supporto per più offerte.

Per garantire che i metadati siano associati in caso di interruzioni del flusso di acquisto, memorizza i metadati sul server di backend prima di avviare la finestra di dialogo di acquisto e associali all'ID account dell'utente, allo SKU acquistato e al timestamp corrente. Per maggiori informazioni, vedi Associare un acquisto a dati interni.

L'integrazione di Play Install Referrer funziona?

L'ultima versione dell'SDK (25.5.409.0 e successive) supporta l'API Play Install Referrer. Per saperne di più, consulta l'API Play Install Referrer.

Un utente deve accedere separatamente a ogni gioco per effettuare un acquisto?

L'account in primo piano in Google Play Games viene utilizzato per ogni sessione di gioco, quindi non è necessario accedere di nuovo. L'account che utilizzi in Google Play Giochi all'inizio della sessione di gioco è l'account da cui vengono emesse le chiamate API. Quando avvii un flusso di acquisto nel browser, devi aver eseguito l'accesso e utilizzare lo stesso account della sessione di gioco. Se l'utente ha eseguito l'accesso con un altro account, il flusso web gli chiede di cambiare account.

Quali sono i prerequisiti per passare dalla fatturazione Google con OAuth alla fatturazione Google nativa con DLL?

I giochi possono continuare a utilizzare l'accesso OAuth con Google per gestire l'account con cui è stato eseguito l'accesso, ma Google consiglia di interrompere l'utilizzo delle API REST legacy per la fatturazione. Il passaggio dalle API di fatturazione REST (con accesso OAuth2) al flusso dell'SDK può essere un'operazione contrassegnata da funzionalità, quindi entrambi possono coesistere per un periodo di tempo mentre il gioco esegue il passaggio.

L'API Payment Request (LaunchPurchaseFlow) viene elaborata tramite un browser web?

Sì, per ora viene elaborato tramite un browser. Google prevede di completare l'intero flusso senza uscire dal gioco, il che è possibile tramite l'SDK.

È possibile riutilizzare più volte i parametri di inizializzazione?

Ciò è possibile finché il client Google Play Games è in esecuzione e le credenziali di accesso sono valide. Tuttavia, in scenari come quello descritto nella guida, tutti i processi avviati dal gioco devono essere terminati quando l'utente chiude il gioco o il gioco esce a causa di un errore di inizializzazione dell'SDK, ad esempio kActionRequiredShutdownClientProcess.

Puoi utilizzare le chiavi del registro di sistema in HKEY_CURRENT_USER anziché in HKEY_LOCAL_MACHINE?

Devi creare chiavi del Registro di sistema in base all'hive radice. Puoi impostare l'hive radice come HKEY_LOCAL_MACHINE o HKEY_CURRENT_USER a seconda dello scopo e della natura dei dati. L'alveare HKEY_LOCAL_MACHINE viene utilizzato come esempio nelle linee guida.

Un gioco può supportare contemporaneamente sia l'SDK nativo che i sistemi di pagamento legacy?

Il sistema di pagamento funziona secondo un modello a doppio flusso a seconda della versione binaria del gioco. Gli utenti delle build precedenti continuano a utilizzare il flusso esistente, mentre gli utenti delle nuove build passano ai pagamenti basati sull'SDK. Gli utenti di entrambi i flussi di pagamento coesistono durante il periodo di transizione.

Come si carica il WAB per i test interni?

Condividi gli account della lista consentita con Google in modo che Google possa attivarli per i test interni. Una volta ricevuto l'elenco, Google si assicura che vengano inclusi nella procedura di onboarding.

Dove si aggiungono i nuovi tester?

Il tuo punto di contatto Google crea un gruppo email per ogni progetto PC, in cui devono essere aggiunti gli Account Google dei tester. Solo i membri di questo gruppo email sono autorizzati a scaricare i pacchetti di test in Google Play Games.

Dove deve essere caricato il pacchetto PC ufficiale prima del lancio formale?

Puoi caricare il pacchetto WAB nella posizione indicata nella prima domanda. Tuttavia, non puoi pubblicarlo manualmente. Devi fornire al personale del backend di Google un orario UTC preciso (fino all'ora). Google configura quindi il programma delle pubblicazioni e ne garantisce la pubblicazione in tempo.

Come gestisci gli upgrade e la manutenzione dopo il lancio ufficiale?

Gli upgrade e la manutenzione successivi devono essere implementati tramite il launcher. Il client Google Play Games non supporta le funzioni di aggiornamento, quindi il launcher deve essere in grado di aggiornare sia il gioco sia il launcher stesso.

Quali sono i requisiti per la revisione dei pacchetti PC da parte di Google?

I pacchetti per PC vengono sottoposti a scansione malware, dopodiché i revisori testano solo l'installazione, l'avvio e la disinstallazione del gioco.

È necessario integrare tutte le API?

Altre API non sono necessarie, ma offrono vantaggi aggiuntivi. google::play::billing è necessario per gli acquisti in-app e la vendita di contenuti digitali. google::play::games::recall è necessario per monitorare i dati di referral per aiutarti a capire quali sorgenti di traffico inviano il maggior numero di utenti a scaricare la tua app. google::play::games::integrity è necessario per proteggere la tua app da malintenzionati rilevando dispositivi potenzialmente rischiosi ed emulatori sconosciuti.

Perché alcuni processi di gioco vengono terminati quando il client Google Play Games viene chiuso, mentre altri no?

Google non controlla i processi secondari o i processi del gioco in esecuzione. Il comportamento dipende dal fatto che il gioco sia un gioco emulato per Android o un gioco per PC nativo. I giochi emulati vengono installati nel proprio ambiente, quindi il loro comportamento dipende in gran parte dall'inizializzazione e dall'arresto dell'emulatore.

Devi utilizzare la funzionalità di disinstallazione di Google Play Games o un programma di disinstallazione personalizzato?

Google consiglia di utilizzare la funzionalità di disinstallazione di Google Play Giochi.