View a markdown version of this page

GAMEREL03-BP01 Überwachen Sie Störungen des Spieleservers und verwenden Sie die Daten, um die Hosting-Architektur zu verbessern und so die Zuverlässigkeitsziele zu erreichen - Linse für die Spieleindustrie

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

GAMEREL03-BP01 Überwachen Sie Störungen des Spieleservers und verwenden Sie die Daten, um die Hosting-Architektur zu verbessern und so die Zuverlässigkeitsziele zu erreichen

Überwachen Sie die Spielserver-Metriken und die Auswirkungen von Ausfällen oder Leistungseinbußen, wie z. B. einer erhöhten Latenz unter Last, auf das Spielerverhalten im Laufe der Zeit, sodass Sie Ihre Hosting-Strategie für Spieleserver an die Zuverlässigkeitsanforderungen Ihres Spiels anpassen können. Die Spielserverinfrastruktur, die herabgesetzt werden soll, sollte sofort außer Betrieb genommen werden, wenn sie sich negativ auf die Spieler auswirkt, oder proaktiv ersetzt werden, wenn keine aktiven Spielersitzungen auf dem Server gehostet werden.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch

Implementierungsleitfaden

In Szenarien, in denen Spiele als REST gehostet werden APIs, kann die Systemzuverlässigkeit wie bei herkömmlichen Webanwendungsarchitekturen verwaltet werden, bei denen der Datenverkehr verteilt auf mehrere Server verteilt verteilt werden kann, um das Risiko von Serverausfällen zu minimieren.

Bei synchronem Echtzeit-Gameplay wird eine Spielsitzung normalerweise auf einem Spieleserverprozess gehostet, der auf einer virtuellen Maschine oder einer Spielserverinstanz ausgeführt wird, da der Gameplay-Status performant aufrechterhalten und auf verbundene Spieleclients repliziert werden muss. Diese Implementierung bedeutet, dass das Spielerlebnis eng mit der Leistung und Zuverlässigkeit des Gameserverprozesses verknüpft ist, der die Spielsitzung hostet. Diese Art von Architektur macht die Verwaltung der Zuverlässigkeit von Spieleservern komplexer als bei herkömmlichen Ansätzen.

Um die Auswirkungen eines Spielserverausfalls zu minimieren, konfigurieren Sie Ihr Spiel so, dass der Spielstatus eines Spielers kontinuierlich asynchron in einem hochverfügbaren Cache oder einer Datenbank wie Amazon ElastiCache (Redis OSS) oder Amazon MemoryDB aktualisiert wird. Wenn ein Serverausfall auftritt, kann der zuletzt gespeicherte Spielstatus des Spielers aus dem externen Datenspeicher abgerufen werden, und seine Sitzung kann auf einer neuen Spielserver-Instanz wiederhergestellt werden.

Dieser Ansatz verursacht jedoch zusätzliche Kosten und Komplexität bei der Verwaltung dieses externen Zustands und ist möglicherweise nicht für schnelle oder wettbewerbsorientierte Spiele geeignet, bei denen die Statusänderungen so häufig und in einem so großen Umfang auftreten, dass selbst die Einführung eines leistungsfähigen In-Memory-Cache-Datenspeichers zu einer Replikationsverzögerung führen würde, die zu groß ist, um eine Sitzung wiederherzustellen. Bei Spielen dieser Art besteht der optimale Ansatz darin, den Verlust des Servers zu akzeptieren und den Spieler zurück in eine Spielelobby zu schicken, um eine andere Sitzung zu finden, oder Sie können ihn automatisch in eine andere Spielsitzung umleiten.

Erfassen Sie möglichst viele nützliche Protokolldaten darüber, was die Serverunterbrechung verursacht hat, damit Sie das Problem später untersuchen können. Amazon GameLift bietet Anleitungen zum Debuggen von Flottenproblemen und bietet die Möglichkeit, remote auf GameLift Amazon-Flotteninstanzen zuzugreifen.

Implementierungsschritte

  • Überwachen Sie die Spielserver-Metriken auf Leistungseinbußen und entfernen oder ersetzen Sie heruntergekommene Server nach Bedarf, um die Zuverlässigkeit aufrechtzuerhalten.

  • Verwenden Sie Amazon ElastiCache oder MemoryDB für asynchrone Spielstatus-Updates, um die Sitzungswiederherstellung nach Serverausfällen zu ermöglichen, sofern dies möglich ist.

  • Erfassen Sie detaillierte Protokolldaten zu Serverunterbrechungen zur Untersuchung und zum Debuggen und nutzen Sie Tools wie Amazon GameLift für die Flottenüberwachung und den Fernzugriff.