Übersicht über Game Servers

Game Servers ist ein verwalteter Spieldienst, der für Spielinfrastrukturen entwickelt wurde, um dedizierte globale Gameserver bereitzustellen und zu verwalten. Game Servers ermöglicht die Verwaltung von Gameserver-Clustern mit Kubernetes für die Containerorchestrierung und Agones für die Flottenorchestrierung und die Lebenszyklusverwaltung von Gameservern. Sie können Cluster jederzeit der Verwaltung durch Game Servers hinzufügen oder diese aufheben, ohne dass sich dies auf bestehende Spielesitzungen auswirkt. Nachdem Sie die Verwaltung des Clusters aufgehoben haben, können Sie die Open-Source-Installation von Agones weiterhin ausführen.

Sie steuern Gameserver-Cluster mithilfe von globalen Gameserver-Konfigurationen, die Regeln für den Standort und die Anzahl der einzurichtenden Server definieren und festlegen, welche Gameserver-Binärdatei bereitgestellt werden soll. Game Servers erstellt automatisch Agones-Fleets auf Basis zentral verwalteter Rollouts, um sicherzustellen, dass sie automatisch und sicher für alle verwalteten Cluster bereitgestellt werden. Insbesondere laufende Spielesitzungen werden niemals unterbrochen, da ein laufender Gameserver niemals abrupt angehalten wird.

Game Servers-Ressourcen

In diesem Abschnitt werden die Hauptressourcen beschrieben, mit denen Sie interagieren, um Game Servers zu verwalten. Die folgende Abbildung zeigt, wie diese Ressourcen verwendet werden, um ein Spielprojekt bereitzustellen.

Bereitstellung eines Beispiel-Spieleprojekts
Abbildung 1. Bereitstellung von Beispiel-Spieleprojekten auf Game Servers

Game Servers-Projekt

Eine einzelne Umgebung, wie die Produktions- oder Testumgebung, und ein Google Cloud-Projekt, für das Game Servers aktiviert ist. Zur Verbesserung der Isolation und Sicherheit verwalten Sie normalerweise ein einziges Spiel mit mehreren Google Cloud-Projekten, z. B. My Game Production und My Game Testing.

Standort

Der Standort definiert den Bereich einer Ressource und standardmäßig den Wert global, der die höchste Verfügbarkeit bietet und wo Daten in mehreren Google Cloud-Regionen redundant sind. Sie können den Standort für eine Ressource manuell auf eine bestimmte Google Cloud-Region festlegen (nicht alle Regionen werden unterstützt). Wenn Sie steuern möchten, wo Daten gespeichert werden oder was Ihre Failover-Domains sind, überschreiben Sie die Standardeinstellung global mit einem der folgenden unterstützten Standorte:

Unterstützte Standorte

  • 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

Bereich

Game Servers ist für die Unterstützung von Kubernetes-Clustern ausgelegt, die in Google Kubernetes Engine ausgeführt werden. Game Servers führt das Konzept der Metaregion für Bereiche ein und baut auf dem Konzept der Regionen und Zonen von Google Cloud auf. Ein Bereich ist eine benutzerdefinierte Gruppierung von Gameserver-Clustern, die auf den Latenzanforderungen des Spiels für die Anzahl an Spielern basiert. Bereichen ist eine Zeitzone zugewiesen, die es ermöglicht, zeitbasierte Skalierungskonfigurationen auf Clustern innerhalb des Bereichs zu verwenden. Bereiche befinden sich innerhalb eines Standorts.

Gameserver-Cluster

Ein Gameserver-Cluster ist eine Unterressource einer Bereichs- Ressource. Jeder Gameserver-Cluster entspricht einem Namespace in einem Kubernetes-Cluster, auf dem Agones ausgeführt werden, der einem Bereich registriert ist. Gameserver-Cluster in einem Realbereich sollten aus Sicht der Nutzerfreundlichkeit hinsichtlich der Messung der Latenz oder der Rechenleistung betrachtet werden. Wenn Sie einen anderen Namespace als default verwenden, muss der Namespace in Kubernetes erstellt und von Agones für die Verwendung konfiguriert werden.

Nachdem Sie einen Gameserver-Cluster erstellt haben, erstellt Game Servers nach Bedarf Agones Fleets und Autoscaler. Game Servers ändert die manuell erstellten Agones Fleets nicht.

Nachdem Sie einen Gameserver-Cluster gelöscht haben, werden von Game Servers keine Ressourcen im Cluster gelöscht, einschließlich Agones Fleets und Autoscaler, die von Game Servers erstellt wurden.

Gameserver-Deployment

Eine Gameserver-Bereitstellung ist eine globale Gameserver-Softwareversion, die auf einem oder allen Gameserver-Clustern weltweit bereitgestellt werden kann. Eine Gameserver-Bereitstellung ist die übergeordnete Ressource der Gameserver-Konfiguration und der Rollout-Ressourcen.

Verschiedene Konfigurationen für verschiedene Bereiche einführen
Abbildung 2. Die Konfigurationsversion 1.0 wurde für den US-Bereich eingeführt, die Version 1.1 für die Bereiche Europa und Japan.

Gameserver-Konfiguration

Eine Game Server-Konfiguration ist eine untergeordnete Ressource einer Game Server-Bereitstellungsressource. Sie gibt die Anzahl der Spieleserver, den Puffer und die Version des Game Servers an. Skalierungsrichtlinien werden in einer Game Server-Konfiguration festgelegt. Skalierungsrichtlinien können statisch oder zeitbasiert sein, wie in den folgenden Beispielen veranschaulicht:

  • Zu Spitzenzeiten sollten genügend Server vorhanden sein, um N Zuweisungen pro Minute zu verarbeiten und außerhalb der Spitzenzeiten für M Zuweisungen.
  • Für geplante Spielereignisse erhöhen Sie die reservierte Kapazität für ein bestimmtes Datum und einen Zeitraum um N %.

Roll-out

Ein Rollout ist eine untergeordnete Ressource einer , die Zielbereichen zuweist. Gameserver-Bereitstellungsressource, die Gameserver-Konfigurationen Zielbereichen zuweist. Standardmäßig weist ein Rollout allen Bereichen eine Gameserver-Konfiguration zu. Für A/B-Tests und Canary-Tests können Sie bestimmte Bereiche überschreiben, um eine alternative Gameserver-Konfiguration zu erhalten.

Architektur

Game Servers stellt eine global verfügbare API der Steuerungsebene bereit, über die Sie Ressourcen steuern können, die die Bereitstellung mithilfe von API-Aufrufen, der Google Cloud Console oder der Google Cloud CLI beschreiben. Dazu gehören:

  • Bereiche erstellen und ändern
  • Gameserver-Cluster in Bereichen erstellen, registrieren und ändern
  • Gameserver-Bereitstellungen, -Konfigurationen und -Rollouts erstellen, bereitstellen und aktualisieren

Ein Kubernetes-Dienstkonto muss vorhanden sein, damit Agones Spieleserver in dem Namespace verwalten kann, den Sie an Game Servers übergeben, wenn Sie einen Game Servers-Cluster erstellen. Wenn Sie einen anderen Namespace als den Standard-Namespace verwenden, erstellen Sie dieses Dienstkonto in der Regel als Teil der Helm-Installation.

Ein Google Cloud-Projektdienstkonto muss vorhanden sein, damit Game Servers eine Verbindung zu den Agones-Clustern herstellen kann. Dieses Dienstkonto wird automatisch erstellt, wenn Sie eine Ressource erstellen, z. B. einen Bereich oder eine Bereitstellung.

Jede Bereitstellung des Game Server beschreibt die Game Server-Parameter, die einer Agones GameServerSpec entsprechen, und gibt eine Richtlinie für die Game Server-Cluster an, auf denen die Server für verschiedene Builds ausgeführt werden sollen. Sie können auch individuelle Skalierungseinstellungen für Cluster mithilfe von Richtlinien festlegen.

Nächste Schritte