Freigeben über


Lebenszyklus eines Multiplayerservers

Lebenszyklus des Game Server SDK (GSDK) und des Spielserverprozesses

Der Lebenszyklus von Spielservern in PlayFab Multiplayer-Servern (MPS) ist eng mit den GSDK-Methoden verbunden, die Ihr Spielserver aufruft, sowie mit dem Status des Spielserverprozesses.

Notiz

Weitere Informationen zur Integration Ihres Spieleservers in GSDK finden Sie in der Dokumentation hier.

Ihr Spieleserver kann mindestens GSDK integrieren und auf MPS hervorragend ausgeführt werden, indem einfach die ReadyForPlayers GSDK-Methode aufgerufen wird. Es wird jedoch empfohlen, auch "Start " aufzurufen, wenn der Spielserverprozess gestartet wird, damit MPS weiß, dass der Spielserver initialisiert wird. Das Aufrufen von "Start " ist wichtig im Fall eines Spielservers, der zeitauffordert, da MPS den Server heruntergefahren, wenn er beim Starten des Spielservers keine Takte empfängt.

Zustände eines Spielservers

Dies sind die Standard Zustände eines Spielservers in MPS:

  • Initialisieren: Der Spielserver wechselt in diesen Zustand, wenn er die Start() -GSDK-Methode aufruft. In diesem Zustand beginnt der Spielserver mit dem Laden der erforderlichen Ressourcen. In diesem Zustand beginnt das GSDK mit dem Senden von Heartbeats an MPS.
  • StandingBy: Der Spielserver wechselt in diesen Zustand, wenn er die ReadyForPlayers() -GSDK-Methode aufruft. Diese Methode sollte aufgerufen werden, wenn alle erforderlichen Spielressourcen geladen wurden. Im Wesentlichen signalisiert dieser Zustand MPS, dass der Spielserver bereit für die Zuordnung ist, sodass Spieler eine Verbindung mit ihm herstellen können.
  • Aktiv: Der Gameserver wechselt in diesen Zustand, wenn er mithilfe des RequestMultiplayerServer-API-Aufrufszugeordnet wird. Dieser Zustand impliziert, dass Spieler eine Verbindung mit dem Spielserver herstellen und das Spiel genießen können. Die Tatsache, dass der Spielserver aktiv ist, bedeutet, dass er nicht während potenzieller Build-Downs heruntergefahren wird (d. h. wenn die StandingBy-Zahl verringert wird).
  • Beenden: Dies ist der Zustand, den der Spielserver übergibt, wenn die ShutDownMultiplayerServer-API aufgerufen wird. Dieser Zustand bedeutet, dass der Spielserver heruntergefahren wird und nicht für Spieler verfügbar ist, mit denen eine Verbindung hergestellt werden kann.

Der Spielserverprozess kann entweder ordnungsgemäß oder durch einen Absturz beendet werden. Dies kann in jedem Zustand geschehen. MPS führt Folgendes aus:

  • Entfernen des Containers/Prozesses, in dem dieser Spielserver ausgeführt wird
  • Sammeln und Hochladen der Spielprotokolle, damit sie für die Archivierung bereit sind (weitere Informationen)
  • erstellt an seiner Stelle einen neuen Container/Prozess, um den beendeten Container/Prozess zu ersetzen.

Notiz

Ein Spielserver kann nie wieder in den Status StandingBy wechseln, wenn er sich im Aktiven Zustand befindet. Sobald der Spielzustand auf Aktiv festgelegt ist, ist die einzige Möglichkeit, einen neuen Spielserver im Status StandingBy zu erhalten, wenn Ihr Spielserverprozess beendet wird.

Maximale Serverlebensdauer

Die virtuellen Computer, auf denen MPS-Server gehostet werden, haben eine maximale Lebensdauer von 10 Tagen, sodass die Lebensdauer eines Servers durch diese Lebensdauer eingeschränkt wird. Die Lebensdauer eines Servers beträgt garantiert mindestens 23 Stunden. MPS ordnet keine Server auf einem virtuellen Computer zu, auf dem weniger als 23 Stunden verbleiben. Das GSDK löst das OnMaintenanceScheduled-Ereignis 23 Stunden vor dem erzwungenen Beenden der VM aus, sodass alle Server, die auf dem virtuellen Computer ausgeführt werden, ordnungsgemäß heruntergefahren werden können. Wenn ein Server weiterhin auf dem virtuellen Computer ausgeführt wird, wenn die maximale Lebensdauer der VM von 10 Tagen erreicht wird, wird der Server erzwungen beendet, und es werden keine Protokolle hochgeladen. Um sicherzustellen, dass Ihr Server nicht zwangshaft beendet wird, stellen Sie entweder sicher, dass die Sitzungen immer weniger als 23 Stunden dauern, oder verwenden Sie das OnMaintenanceScheduled-Ereignis des GSDK, um den Server ordnungsgemäß herunterzufahren und Spieler vor dem Stichtag zu einem anderen zu migrieren.

Beenden eines Spielserverprozesses

Wenn die Spielsitzung endet, sollten Sie den Spielserverprozess ordnungsgemäß beenden, damit Sie einen neuen Spielserver erhalten können. Wenn der Spielserverprozess abstürzt, erstellt MPS einen neuen Spielserverprozess, um den abgestürzten Prozess zu ersetzen. Für den Fall, dass der Spielserver hängen bleibt oder eingefroren ist, können Sie jederzeit die ShutDownMultiplayerServer-API aufrufen, um den Spielserverprozess manuell zu beenden. Diese API sollte nur aufgerufen werden, wenn der Spielserverprozess nicht von selbst beendet werden kann. Wenn Sie diese API aufrufen, wird der Spielserver in den Zustand "Wird beendet" und "Beendet" übergehen. Darüber hinaus werden alle Server, die im Zustand "Beenden" oder "Beendet" hängen bleiben, nach einem bestimmten Zeitraum vom System ersetzt.

Notiz

Es gibt einen Methodenaufruf für GSDK, der den Spielserver bei Verwendung als fehlerhaft markiert. Zu diesem Zeitpunkt wird es von MPS ignoriert, aber dies kann sich in Zukunft ändern. Wenn dieses Feature für Sie wichtig ist, hinterlassen Sie hier eine Notiz im GSDK-Repository.

Überprüfen der GSDK-Integration mit Ihrem Spielserver

MPS verfügt über ein Entwicklertool zum Testen der GSDK-Integration für Spieleserver. Das Tool heißt LocalMultiplayerAgent, Sie können es hier herunterladen, und Sie können die Dokumentation hier für weitere Informationen überprüfen.

GSDK-Beispiele

Um GSDK-Beispiele zur Veranschaulichung der Integration in beliebte Spiele-Engines zu überprüfen, können Sie das MpsSamples-Repository hier überprüfen.