Freigeben über


Zuordnen von Spielservern und Verbinden von Visual Studio-Debugtools

Zuordnen von Multiplayer-Sitzungen

Mit PlayFab-Multiplayerservern 2.0 können Sie Instanzen Ihrer Multiplayer-Serveranwendung mithilfe der RequestMultiplayerServer-API zuordnen.

In der Regel wird diese API von Ihren eigenen Diensten (z. B. einem Matchmaking-Dienst oder Lobbydienst) aufgerufen, wobei ein für den jeweiligen Titel konfigurierter geheimer PlayFab-Entwicklerschlüssel verwendet wird. Weitere Informationen zu geheimen Schlüsseln finden Sie unter Verwaltung geheimer Schlüssel.

Ein typisches Muster für das Zusammenführen von Spielern und das Zuweisen von Servern:

  1. Clients sammeln QoS-Netzwerkinformationen.
  2. Clients interagieren mit einem benutzerdefinierten Matchmaking-Dienst oder stellen sich über Einladungen aus sozialen Netzwerken zusammen.
  3. Ein benutzerdefinierter Matchmaking-Dienst ordnet eine Sitzung für die Gruppe zu, wobei eine priorisierte Liste von Regionen verwendet wird.

RequestMultiplayerServer verfügt über mehrere Schlüsselparameter:

  • BuildID : Der spezifische Serverbuild, der zugeordnet werden soll.
  • SessionID: Ein Bezeichner für die Sitzung. Dies ist eine GUID-Zeichenfolge, die vom Aufrufer generiert wird. Wiederholungsversuche an diese API für dieselbe logische Sitzung sollten denselben Bezeichner erneut verwenden. Dadurch wird die Möglichkeit verringert, dass das Wiederholungsverhalten des Aufrufers unnötige Server erzeugt.
  • SessionCookie : Beliebige Daten, die bei der Aktivierung über das Spieleserver-SDK an die zugeordnete Sitzung übermittelt werden. Eine typische Verwendung dieses Felds ist die Kommunikation eines gemeinsam genutzten Schlüssels, den Spielserver zum Authentifizieren von Clients verwenden. Die Daten müssen kleiner als 4 KB sein.
  • PreferredRegions : Eine sortierte Liste der Regionen, die zum Zuweisen von Servern verwendet werden. Es wird empfohlen, von den Clientgeräten gesammelte Netzwerk-QoS-Messungen als primären Faktor für die Rangfolge von Regionen zu verwenden.

Eine erfolgreiche Zuordnung gibt die folgenden Informationen zurück:

Notiz

Sie können mpsAllocatorSample ( hier zu finden) für eine einfache Möglichkeit zum Zuordnen von Spielservern während der Entwicklung Ihres Spiels verwenden.

Clientzuordnung

Multiplayer-Server sind teuer und leistungsstark. Standardmäßig können Sie einen Multiplayerserver nur von Ihrem eigenen vertrauenswürdigen Dienst anfordern, indem Sie einen geheimen PlayFab-Entwicklerschlüssel verwenden.

Durch die Zuweisung von Servern direkt von Playergeräten können Sie jedoch die Kosten für die Implementierung von Dienst-zu-Dienst-Aufrufen sparen und unter bestimmten Umständen nützlich sein.

So aktivieren Sie die Clientzuordnung:

  • Wählen Sie im Menü auf der linken Seite Einstellungen aus.
  • Wählen Sie die Registerkarte API-Features aus.
  • Aktivieren Sie dann die Option Start von Spielen durch Den Client zulassen .

Game Manager – Einstellungen – API-Features – Start von Spielen durch den Client zulassen

Wenn diese Einstellung aktiviert ist, können Sie RequestMultiplayerServer mithilfe des Entitätstokens für jeden Player aufrufen, der dem Titel zugeordnet ist.

Debuggen eines bereitgestellten Multiplayerservers

Möglicherweise möchten Sie einen Spieleserver remote debuggen, während er in Azure bereitgestellt wird. Bei Visual Studio müssen Sie derzeit die Visual Studio-Remotedebugtools im Container installieren und konfigurieren.

Notiz

Das folgende Verfahren ermöglicht unsicheres, nicht authentifiziertes Debuggen.

Das folgende Verfahren sollte nur auf Serverbuilds angewendet werden, die für Entwicklung und Tests vorgesehen sind, und in einer Umgebung mit Spielerzugriff generell vermieden werden.

  1. Rufen Sie die VS2017-Remotedebugtools ab:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
  1. Fügen Sie diese Tools in Ihr Spielserver-Ressourcenpaket ein.
  2. Konfigurieren Sie port 4022 TCP im Rahmen der Erstellung Ihres Serverbuilds in Game Manager oder mit der Entitäts-API als Debugport.
  3. Sie müssen innerhalb des Containers ausgeführt msvsmon werden, um das Remotedebuggen zu aktivieren. Ein gängiges Muster besteht darin, ein CMD-Skript als Game Start-Befehl anzugeben und zusätzlich zur ausführbaren Datei ihres Spielservers ein Befehlszeilenargument zum Starten msvsmon zu verwenden.
  4. Einmal ausführen msvsmon mit:
/prepcomputer /quiet
  1. Führen Sie msvsmon mit Flags aus (siehe unten).
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022

Notiz

Es wird empfohlen, den Port speziell aufzulisten , damit Ihr Programm den Prozessausgangscode verarbeiten kann, wenn der Port bereits verwendet wird, anstatt an einen zufälligen Port zu binden, der nicht geöffnet ist.

  1. Ordnen Sie Ihren Spielserver zu.
  2. Versuchen Sie, über VS zu debuggen, indem Sie den externen Debugport verwenden, der vom Allocate-Aufruf zurückgegeben wurde.