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:
- Clients sammeln QoS-Netzwerkinformationen.
- Clients interagieren mit einem benutzerdefinierten Matchmaking-Dienst oder stellen sich über Einladungen aus sozialen Netzwerken zusammen.
- 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:
- Die IPv4-Adresse des Servers.
- Die TCP/ UDP-Portzuordnungen (siehe Verbinden von Clients mit Spielservern).
- Die Region des Servers.
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 .
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.
- Rufen Sie die VS2017-Remotedebugtools ab:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
- Fügen Sie diese Tools in Ihr Spielserver-Ressourcenpaket ein.
- Konfigurieren Sie port 4022 TCP im Rahmen der Erstellung Ihres Serverbuilds in Game Manager oder mit der Entitäts-API als Debugport.
- 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 Startenmsvsmon
zu verwenden. - Einmal ausführen
msvsmon
mit:
/prepcomputer /quiet
- 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.
- Ordnen Sie Ihren Spielserver zu.
- Versuchen Sie, über VS zu debuggen, indem Sie den externen Debugport verwenden, der vom Allocate-Aufruf zurückgegeben wurde.