Creare un gioco online basato sulla demo di Google Cloud Gaming

da Redazione
0 commenti 3 minuti leggi

Creare il back-end per un gioco multiplayer competitivo e veloce è un compito complesso. Ci sono molte parti in movimento da coordinare, e il panorama dei prodotti e delle soluzioni è praticamente infinito. Esistono una miriade di prodotti gestiti, soluzioni open source di supporto e altro ancora che devono essere valutati, sperimentati e implementati, e il percorso per utilizzare tutti insieme non è spesso chiaro.

Per risolvere questo problema e dare il via al tuo viaggio nella creazione del tuo gioco multiplayer, un team multidisciplinare di esperti di Google Cloud for Games si è unito per creare una demo integrata a livello globale di un gioco multiplayer veloce. L’obiettivo di questa demo è mostrare le tecnologie e le tecniche che noi di Google Cloud abbiamo visto funzionare in produzione per ospitare, scalare e orchestrare i back-end dei giochi multiplayer – dai servizi e l’archiviazione dei dati fino ai server di gioco dedicati.

Annunci

Droidshooter: il gioco demo

image 178
Creare un gioco online basato sulla demo di Google Cloud Gaming 9

Abbiamo deliberatamente costruito un gioco multiplayer molto semplice chiamato “Droidshooter” per evidenziare e rendere facilmente scopribili le tecnologie e le tecniche server-side che abbiamo sfruttato durante lo sviluppo di questa demo. In questo gioco, piloti una piccola navicella spaziale contro altri due giocatori, cercando di ridurre a zero la loro salute sparando raffiche di energia contro le altre navi. Per ogni distruzione riuscita di una navicella spaziale rivale, ricevi un punto. Il giocatore con il maggior numero di punti alla fine di trenta secondi vince il round!

Panoramica dell’architettura

image 178
Creare un gioco online basato sulla demo di Google Cloud Gaming 10

Prima di approfondire i dettagli di ogni componente, diamo un’occhiata a una panoramica dell’architettura. Poiché questo è un gioco destinato a un pubblico globale, abbiamo anche un’infrastruttura globale. I nostri servizi back-end generali per il nostro gioco sono ospitati in us-central1, poiché non sono sensibili alla latenza, e raggrupparli in una singola regione e cluster rende la loro gestione molto più semplice. Poiché la connessione del giocatore ai server di gioco dedicati multiplayer è sensibile alla latenza, li abbiamo su più cluster Kubernetes in diverse regioni del mondo per garantire che siano vicini alle posizioni dei nostri giocatori.

Matchmaking

image 179
Creare un gioco online basato sulla demo di Google Cloud Gaming 11

Da qui, il client avrà bisogno di richiedere l’insieme globale di “posizioni di ping” in ciascuna delle regioni in cui i nostri server di gioco saranno ospitati, poiché il nostro gioco richiede una bassa latenza per un’esperienza ottimale in tempo reale. Pertanto, dobbiamo misurare attivamente le latenze del ping da ciascuna regione rispetto alla posizione del giocatore, in modo che possano essere abbinati a giocatori con una latenza simile da dove si trovano, e ignorare le regioni in cui la latenza è troppo alta.

Assegnazione di un server di gioco

Una volta formato un gruppo per giocare, il matchmaker richiede un server di gioco dedicato dal sistema di orchestrazione del server di gioco nella regione in cui ha determinato il miglior posto per posizionare questi giocatori. Poiché tutti questi giocatori devono avere la stessa esperienza, il lavoro del server di gioco dedicato è simulare lo stato del mondo di gioco e comunicare queste informazioni a tutti i giocatori connessi in tempo reale, in modo che possano tutti godere dell’esperienza divertente di giocare a Droidshooter.

Pulizia finale

Una volta completato il gioco, il server di gioco si spegne e, grazie al nostro sistema di gestione della flotta di server di gioco, ne viene avviato subito uno nuovo per i nuovi giocatori.

Si può anche come

MatriceDigitale.it – Copyright © 2024, Livio Varriale – Registrazione Tribunale di Napoli n° 60 del 18/11/2021. – P.IVA IT10498911212 Privacy Policy e Cookies

Developed with love by Giuseppe Ferrara