分配游戏服务器和连接 Visual Studio 调试工具

分配多人游戏会话

通过 PlayFab 多人游戏服务器 2.0,您可以使用 RequestMultiplayerServer API 分配多人游戏服务器应用程序的实例。

通常该 API 是从你自己的服务 (也许是一个匹配服务或大厅服务) 中调用的,使用为特定游戏配置的 PlayFab 开发者密钥。 有关开发者密钥的详细信息,请参阅密钥管理

将玩家聚在一起并分配服务器的典型模式:

  1. 客户端收集网络 QoS 信息。
  2. 客户端与自定义匹配服务进行交互,或者通过社交邀请进行组装。
  3. 自定义匹配服务使用已排列优先级的区域列表为组分配会话。

RequestMultiplayerServer 有若干关键参数:

  • BuildID - 要分配的特定服务器版本。
  • SessionID- 会话的标识符。 这是由调用方生成的 GUID 字符串。 针对同一逻辑会话对此 API 的重试应重用同一标识符。 这会降低调用方创建不必要服务器的重试行为的可能性。
  • SessionCookie - 在激活时将通过游戏服务器 SDK 与已分配会话通信的任意数据。 此字段的典型用法是传递游戏服务器用于对客户端进行身份验证的共享密钥。 数据必须小于 4 千字节
  • PreferredRegions - 用于分配服务器的排序区域列表。 建议使用从客户端设备收集的网络 QoS 测量作为对区域进行排名的主要因素。

成功分配将返回以下信息:

注意

可以使用 MpsAllocatorSample(在此处找到),以一种简单的方式在游戏开发期间分配游戏服务器

客户端分配

多人游戏服务器价格昂贵但功能强大。 默认情况下,您只能使用 PlayFab 开发者密钥从自己 的受信任服务请求多人游戏服务器。

直接 从播放器设备分配服务器可节省实现服务到服务调用的成本,在某些情况下非常有用。

启用客户端分配:

  • 从左侧菜单中选择 设置
  • 选择 API Features 选项卡。
  • 然后激活 允许客户开始游戏 选项。

游戏管理器 - 设置 - API 功能 - 允许客户开始游戏

激活此设置后,可以通过将实体令牌用于与该游戏关联的任何玩家来调用 RequestMultiplayerServer

调试部署的多人游戏服务器

在 Azure 中部署游戏服务器时,可能需要远程调试游戏服务器。 如果使用 Visual Studio,当前需要在容器中安装和配置 Visual Studio 远程调试工具。

注意

以下过程将启用不安全的、未经身份验证的调试。

以下过程应 适用于开发和测试用的服务器版本,在面向玩家的环境中一般应避免 此过程。

  1. 获取 VS2017 远程调试工具:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
  1. 在游戏服务器资源包中包含这些工具。
  2. 在“游戏管理器”中或者使用实体 API 创建服务器版本时,将端口 4022 TCP 配置为调试端口。
  3. 需要在容器中运行 msvsmon 才能启用远程调试。 常见模式是将 CMD 脚本指定为“游戏开始”命令,以及使用命令行参数启动 msvsmon 以及游戏服务器可执行文件。
  4. 使用以下命令执行 msvsmon 一次:
/prepcomputer /quiet
  1. 带标志执行 msvsmon(如下所示)。
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022

注意

建议具体列出 端口,以便程序能够处理进程退出代码(如果端口已被使用),而不是绑定到未打开的随机端口。

  1. 分配游戏服务器。
  2. 尝试使用从 allocate 调用返回的外部调试端口,通过 VS 进行调试。