Questa pagina spiega come integrare Play Games Services Sign In con la tua soluzione di identità o salvataggio sul cloud esistente. Anche se questi consigli sono facoltativi, possono aiutarti a soddisfare i requisiti di salvataggio nel cloud per Google Play Giochi su PC. Utilizza le pagine Requisiti di continuità e Comportamenti previsti per verificare che la tua implementazione soddisfi questi requisiti.
Ripristina lo stato del player
Nel backend del gioco, gli account di gioco sono probabilmente rappresentati da un identificatore che ti consente di recuperare e aggiornare i progressi all'interno del gioco. Lo chiameremo ID account. Quando un giocatore accede ai servizi per i giochi di Play, puoi utilizzare questa autenticazione per ottenere un nuovo identificatore, l'ID giocatore dei servizi per i giochi di Play, che viene utilizzato per soddisfare il requisito di salvataggio nel cloud.
Quando un giocatore accede con i servizi per i giochi di Play, devi procedere nel seguente modo:
- Recupera il codice OAuth dal client e invialo al tuo server.
- Scambia il token di autenticazione e ottieni un ID servizi per i giochi di Play verificato dal server Play Games. In questo modo, l'ID è attendibile e non appartiene a qualcuno che si spaccia per un altro giocatore utilizzando un dispositivo compromesso.
- Tentativo di risolvere un problema relativo a un account di gioco in base alle condizioni del dispositivo e a eventuali identificatori collegati.
Nel gioco devono essere introdotti due nuovi scenari principali:
- Memorizzare gli ID dei servizi per i giochi di Play nel backend e assegnarli agli ID account esistenti in qualche modo, ad esempio nel seguente modo:
- Per i nuovi giocatori, i progressi dovrebbero essere collegati automaticamente a Google Play Games Services a un certo punto. ad esempio all'avvio del gioco, dopo il tutorial o un determinato numero di livelli e così via.
- Per i giocatori esistenti, i progressi attuali dovrebbero essere collegati automaticamente a Play Games Services dopo che il giocatore esegue l'aggiornamento a una versione del tuo gioco con Play Games Services V2 integrato.
- L'ID servizi per i giochi di Play può essere collegato a uno o più account e i servizi per i giochi di Play possono essere scollegati da questi account, ma deve essere collegato ad almeno un account valido.
- Ripristino automatico dei progressi di gioco su un dispositivo disconnesso/nuovo in base all'ID giocatore dei servizi per i giochi di Play.
Le modalità di archiviazione e assegnazione degli ID Play Games Services agli account esistenti sono flessibili, come illustrato negli esempi riportati di seguito. I requisiti principali da tenere presente sono che il giocatore non debba accedere manualmente o creare un collegamento con un altro sistema di identità per creare un collegamento tra il suo ID Play Games Services e i progressi di gioco e che i progressi del giocatore debbano essere ripristinati senza problemi su tutte le piattaforme.
Quando progetti la tua soluzione, inizia esaminando il sistema esistente e il modo in cui incorpora diversi provider di identità. Alcuni sistemi utilizzano un unico identificatore per account, mentre altri ne utilizzano più di uno.
Se puoi associare ogni ID account a un solo identificatore, dovrai aggiungere il supporto per associare i servizi per i giochi di Play. Le seguenti soluzioni mostrano come farlo.
Esempi di soluzioni
Le soluzioni di esempio includono soluzioni di associazione e richiamo.
Il binding è il processo di collegamento permanente o semipermanente dell'ID servizi per i giochi di Play a uno stato dell'account. Nel caso del collegamento, l'account sottostante ripristinato tramite i servizi per i giochi di Play non cambia per il giocatore senza la sua azione, anche se esce e accede con un altro account all'interno del gioco. Ne parliamo qui con il collegamento dell'account.
Con il recupero, in qualità di sviluppatore di giochi memorizzi una mappatura approssimativa dell'ID dei servizi per i giochi di Play e degli account visti per l'ultima volta per il giocatore da ripristinare quando accede con i servizi per i giochi di Play su un altro dispositivo. Ogni volta che il giocatore accede a un altro account di gioco con lo stesso ID servizi per i giochi di Play, questa associazione cambia. Ecco un esempio di diagramma di flusso, che tratteremo più nel dettaglio nell'esempio Richiama account recenti riportato di seguito:
Altri esempi di flusso utente sono allegati alle soluzioni riportate di seguito.
Collegamento dell'account
Se il tuo gioco non ha molti giocatori con più account o se vuoi incoraggiare i giocatori ad avere un solo account nel tuo gioco, il binding è probabilmente la soluzione migliore per il tuo gioco. In questo esempio, associ il primo account visualizzato durante l'accesso con i servizi per i giochi di Play (che si tratti di un account ospite o di uno associato anche a un'altra piattaforma di identità) all'ID giocatore dei servizi per i giochi di Play. Dopo questo collegamento, l'account collegato viene ripristinato automaticamente sui nuovi dispositivi. Poiché stiamo eseguendo un binding rigido, il giocatore può anche cambiare i profili dei servizi per i giochi di Play per cambiare account all'interno del gioco e tu puoi chiedere al giocatore di confermare in questo scenario.
Se ci sono account in conflitto, ti consigliamo di chiedere al giocatore di sceglierne uno. Questi casi di conflitto dovrebbero verificarsi solo per i giocatori che hanno più account nel tuo gioco, quindi probabilmente hanno le conoscenze e il desiderio di giocare con un account specifico.
Una volta risolto il problema dell'account, il gioco dovrebbe ricordare la scelta del giocatore a meno che non ci sia una modifica degli identificatori di accesso. Se il profilo di Play Games Services viene modificato o il giocatore accede a un identificatore diverso all'interno del gioco, i passaggi precedenti devono essere ripetuti perché il giocatore ha dato un segnale forte di voler cambiare account.
Svincolamento
Se vuoi offrire al giocatore la possibilità di controllare completamente le proprie associazioni, puoi offrire al giocatore la possibilità di dissociare il proprio ID giocatore dei servizi per i giochi di Play da un account di gioco. Ciò potrebbe essere importante per alcuni giocatori con più account, se hanno associato per errore il proprio ID giocatore dei servizi per i giochi di Play a un account che non è il loro account principale.
Altri esempi di collegamento degli account
Questo esempio principale mostra che un determinato ID giocatore dei servizi per i giochi di Play (1) è associato al primo account di gioco visualizzato (A) e non viene riassociato quando il giocatore esce dai progressi di gioco per giocare su un altro account.
Puoi facoltativamente consentire ai giocatori di ricollegare il proprio account, ma non è obbligatorio.
Passare da un account all'altro sul dispositivo
In questo caso, il giocatore ha cambiato manualmente gli account dei servizi per i giochi di Play e ha quindi dato al gioco un segnale forte che vuole cambiare il proprio account di gioco con un altro account. Reagire a questo cambiamento è ciò che desidera il giocatore; prendere in considerazione questo indicatore porta a una migliore esperienza di gioco.
Account collegato esistente con un altro identificatore
Questo esempio mostra che anche gli account associati a identificatori non dei servizi per i giochi di Play devono essere associati ai servizi per i giochi di Play e poi ripristinati sui nuovi dispositivi. La maggior parte dei giocatori esistenti del tuo gioco con account rientrerà in questa categoria.
Recuperare gli account recenti
Quando si pensa alle soluzioni, una cosa che spesso viene menzionata è l'esperienza multi-account. Se il tuo gioco incentiva gli utenti esperti a creare molti account (come i giochi gacha o quelli in cui si sceglie la propria avventura), il collegamento dell'ID giocatore dei servizi per i giochi di Play a un singolo account potrebbe non offrire la migliore esperienza di gioco quando si passa da un dispositivo all'altro.
Nella soluzione di recupero, memorizzi una mappatura approssimativa di un ID giocatore dei servizi per i giochi di Play e di un account di gioco e il giocatore vede semplicemente gli ultimi account che hai memorizzato quando cambia dispositivo o quando esce.
In questo esempio, un giocatore possiede tre account per un gioco e poi passa a un nuovo dispositivo:
Quando chiedi al giocatore di eseguire il ripristino, puoi anche offrire un pulsante "Annulla" o "Crea nuovo" da selezionare per creare un nuovo account.
Per semplicità, il gioco potrebbe scegliere di ricordare solo l'ultimo account visualizzato. Potrebbe essere più difficile per il caso d'uso del cambio di account, ma soddisfa comunque il requisito di continuità.
Altri esempi di richiamo
La sezione seguente include altri esempi che utilizzano il richiamo.
Smartphone non Android
Qui illustriamo il recupero di account già esistenti (account di terze parti collegato) o creati da un altro dispositivo non connesso ai servizi per i giochi di Play.
Un flusso più comune potrebbe essere quello di iniziare da un telefono non Android e passare a Google Play Giochi su PC.
Poiché lo smartphone non Android non dispone dei servizi per i giochi di Play, non è attivo alcun recupero e il giocatore deve digitare manualmente le proprie credenziali da Google Play Giochi su PC.
Più profili Play Games Services per un account
A volte potrebbero essere attivi più profili Play Games Services che hanno precedentemente "richiamato" un determinato account. In questo caso, esistono due soluzioni principali che funzionano altrettanto bene:
Salva comunque
Nel modello "Salva comunque", ignoriamo i puntatori duplicati a un determinato account.
Ignoralo
Nel modello "Ignoralo", lo sviluppatore deve ricordare le mappature degli account di Play Games Services e cancellare le mappature precedenti nelle tabelle. In questo modo, possono
mantenere una mappatura 1:1 pulita degli account ritirati e degli account Play Games Services.
Recupero sullo stesso dispositivo
Un giocatore con più account può utilizzare l'implementazione del recupero per passare rapidamente
da un account di gioco all'altro.