Panoramica dei server di gioco

Game Servers è un servizio di gioco gestito creato per i team di infrastruttura di gioco per eseguire il deployment e gestire gruppi di server di gioco dedicati globali. Game Servers offre la gestione dei cluster dei server di gioco utilizzando Kubernetes per l'orchestrazione dei container e Agones per l'orchestrazione del parco giochi e la gestione del ciclo di vita dei server di gioco. Puoi connettere e scollegare i cluster dalla gestione dei server di gioco in qualsiasi momento, senza alcun impatto sulle sessioni di gioco esistenti. Dopo aver disconnesso un cluster, puoi continuare a eseguire un'installazione open source di Agones.

Puoi controllare i cluster dei server di gioco utilizzando le configurazioni dei server di gioco globali, definendo le regole relative alla posizione e al numero di server da avviare, nonché il programma binario del server di gioco di cui eseguire il deployment. Game Servers crea automaticamente i parchi risorse Agones in base a implementazioni gestite centralmente, garantendo che vengano implementati in modo automatico e sicuro in tutti i cluster gestiti. In particolare, le sessioni di gioco in corso non vengono mai interrotte perché un server di gioco in uso non viene interrotta improvvisamente.

Risorse Game Servers

In questa sezione vengono descritte le risorse principali con cui interagisci per la gestione dei Game Servers. La figura seguente mostra come queste risorse vengono utilizzate per il deployment di un progetto di gioco.

Esempio di deployment di un progetto di gioco
Figura 1. Esempio di deployment di un progetto di gioco sui server di gioco

Progetto Game Servers

Un singolo ambiente, come production o testing, è un progetto Google Cloud con Game Servers abilitati. Per migliorare l'isolamento e la sicurezza, in genere gestisci un singolo titolo di gioco utilizzando più progetti Google Cloud, come My Game Production e My Game Testing.

Posizione

La località definisce l'ambito di una risorsa ed è impostata per impostazione predefinita su global, che fornisce la disponibilità più elevata e dove i dati sono ridondanti in più regioni di Google Cloud. Puoi impostare manualmente la località di una risorsa su una regione Google Cloud specifica (non tutte le regioni sono supportate). Se vuoi controllare la posizione di archiviazione dei dati o i domini di failover, sostituisci l'impostazione global predefinita con una delle seguenti località supportate:

Località supportate

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • global
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west2

Regno

Game Servers è progettato per supportare i cluster Kubernetes in esecuzione su Google Kubernetes Engine. Per sviluppare i concetti di regioni e zone di Google Cloud, Game Servers introduce il concetto di meta-regione dei regni. Un regno è un raggruppamento definito dall'utente di cluster di server di gioco basati sui requisiti di latenza del gioco per gli utenti. Ai aree di autenticazione è assegnato un fuso orario che consente l'utilizzo di configurazioni di scalabilità basate sul tempo nei cluster all'interno dell'area di autenticazione. I reami esistono all'interno di una località.

Cluster di server di gioco

Un cluster di server di gioco è una risorsa secondaria di una risorsa realm. Ogni cluster di server di gioco corrisponde a uno spazio dei nomi su un cluster Kubernetes che esegue Agones registrato in un regno. I cluster di server di gioco all'interno di un'area di autenticazione devono essere considerati equivalenti dal punto di vista dell'esperienza utente per quanto riguarda le misurazioni, come la latenza o le prestazioni di calcolo. Per utilizzare uno spazio dei nomi diverso da default, lo spazio dei nomi deve essere creato su Kubernetes e Agones configurato per utilizzarlo.

Dopo aver creato un cluster di server di gioco, Game Servers crea i flori di Agones e i scaler automatici in base alle necessità. Game Servers non modifica manualmente i parchi risorse Agones.

Dopo aver eliminato un cluster di server di gioco, Game Servers non elimina le risorse nel cluster, inclusi i parchi risorse Agones e i gestori della scalabilità automatica creati da Game Servers.

Deployment del server di gioco

Il deployment di un server di gioco è un record globale di una versione software del server di gioco che può essere implementato in uno o tutti i cluster di server di gioco in tutto il mondo. Il deployment di un server di gioco è la risorsa principale di entrambe le risorse di configurazione del server di gioco e di implementazione.

Implementazione di configurazioni diverse in aree di autenticazione differenti
Figura 2. La configurazione 1.0 è stata implementata per il regno degli Stati Uniti e la versione 1.1 per i regni in Europa e Giappone.

Configurazione server di gioco

Una configurazione del server di gioco è una risorsa secondaria di una risorsa di deployment del server di gioco che specifica il conteggio, il buffer e la versione del server di gioco del server di gioco. Puoi definire i criteri di scalabilità in una configurazione del server di gioco. I criteri di scalabilità possono essere statici o basati sul tempo, come illustrato nei seguenti esempi:

  • Nelle ore di punta dovrebbe essere disponibile un numero di server sufficiente per supportare N allocazioni al minuto, durante le ore di picco al minuto.
  • Per gli eventi dei giochi pianificati, aumenta la capacità riservata di N% per un intervallo di date e ore.

Implementazione

Un'implementazione è una risorsa secondaria di una risorsa di deployment del server di gioco che mappa le configurazioni del server di gioco per scegliere come target i reami. Per impostazione predefinita, un'implementazione assegna una configurazione del server di gioco a tutti i domini. Per i test A/B e i test canary, puoi sostituire aree di autenticazione specifiche per ricevere una configurazione alternativa del server di gioco.

Architettura

Game Servers espone un'API del piano di controllo disponibile a livello globale, tramite la quale puoi controllare le risorse che descrivono il deployment utilizzando le chiamate API, Google Cloud Console o Google Cloud CLI, tra cui:

  • Creazione e modifica delle aree di autenticazione.
  • Creazione, registrazione e modifica dei cluster di server di gioco nei domini.
  • Creazione, deployment e aggiornamento di deployment, server e configurazioni di server di gioco.

Affinché Agones possa gestire i server di gioco nello spazio dei nomi trasmesso ai server di gioco durante la creazione di un cluster di server di gioco, deve essere presente un account di servizio Kubernetes. Se utilizzi uno spazio dei nomi diverso dallo spazio dei nomi predefinito, in genere viene creato questo account di servizio come parte dell'installazione helm.

Affinché i server di gioco possano connettersi ai cluster Agones, è necessario che sia disponibile un account di servizio di progetto Google Cloud. Questo account di servizio viene creato automaticamente quando crei una risorsa, ad esempio un'area di autenticazione o un deployment.

Ogni deployment dei server di gioco descrive i parametri dei server di gioco, equivalenti a un Agones GameServerSpec, e specifica un criterio per scegliere come target i cluster dei server di gioco in cui dovrebbero essere create flotte di server di gioco che eseguono una determinata build. Puoi anche impostare preferenze di scalabilità individuali per il cluster utilizzando i criteri.

Passaggi successivi