> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Windows Runner 示例

> 配置 PlayFab Multiplayer Servers 的 Windows Runner C# 示例，构建并部署一个集成了 GSDK 的最简 Windows 游戏服务器，用于测试 MPS 功能。

# Windows Runner C# 示例

本教程列出了将该示例配置好以供 PlayFab Multiplayer Servers 使用的步骤。

<Note>
  为了使用和查看 PlayFab Multiplayer Servers，你需要在 Game Manager 中启用该功能。相关说明请参阅 [启用 PlayFab Server 功能](/services/playfab/multiplayer/servers/enable-playfab-multiplayer-servers)。
</Note>

1. [配置 API 功能选项](#configure-api-feature-option)
2. 创建 PlayFab Multiplayer 游戏服务器构建：[服务器配置](#server-set-up)
3. [通过部署构建来创建服务器](#create-servers-by-deploying-a-build)
4. 请求多人服务器：[客户端配置](#client-set-up)。需要此请求以便启动一个连接到服务器的客户端

## 配置 API 功能选项

<Note>
  此步骤仅在运行本示例时需要。除非你的游戏需要此配置，否则无需允许客户端启动游戏。
</Note>

* 使用你的开发者账户登录 [PlayFab.com](https://developer.playfab.com) 以使用 Game Manager 门户
* 选择你的游戏
* 选择设置图标 > **API features**，如下图所示。

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/create-your-first-server/windowsrunner-api-settings.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=6dc935f952e754c3f14ff8c744c90ac7" alt="Game Manager 中的 API feature 选项卡" width="800" height="405" data-path="images/playfab/multiplayer/servers/create-your-first-server/windowsrunner-api-settings.png" />

* 在 **Options** 下，选择 **Allow client to start games**，如下图所示。

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/create-your-first-server/windowsrunner-api-settings-option.PNG?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=c6d6ad00718feb7293797b0e102875d7" alt="在 Game Manager 中选择 allow client to start games" width="374" height="177" data-path="images/playfab/multiplayer/servers/create-your-first-server/windowsrunner-api-settings-option.PNG" />

## 服务器配置

介绍如何获取 PlayFab Multiplayer 游戏服务器构建。

* 用于 Windows Runner 示例的 PlayFab Multiplayer Server Build 的 [PlayFab Game Server SDK](https://github.com/PlayFab/gsdk)。
* 如果你更倾向自行构建：

  * 使用标准 Git 方法或以 zip 文件方式下载 [Windows Runner C# 示例](https://github.com/PlayFab/MpsSamples/tree/master/WindowsRunnerCSharp)。
  * 使用 Visual Studio 2017 或更高版本打开该项目。这应会自动触发依赖项（例如最新的 [PlayFab Game Server SDK (GSDK) NuGet 包](https://www.nuget.org/packages/com.playfab.csharpgsdk)）下载。
  * 以 release x64 配置编译并构建 WindowsRunnerCSharp.csproj。你将得到一个集成了 GSDK 的游戏服务器构建，即一个有效的 PlayFab Multiplayer 游戏服务器构建。
  * 进入 bin 文件夹，将所有 x64 release 二进制文件打包成 zip。压缩包内不应有任何目录结构。zip 文件应为扁平的文件集合，如下图所示。

  <img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/gsdk-sample-output.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=ca4973938707eae40c4e869aa470c148" alt="GSDK 示例输出" width="1136" height="450" data-path="images/playfab/multiplayer/servers/tutorials/gsdk-sample-output.png" />

<Tip>
  为进行交叉核对，你可以将自己的构建输出与所提供链接中的已编译版本进行比较。
</Tip>

得到 zip 文件后，你就可以开始 [部署构建](#create-servers-by-deploying-a-build) 了。

## 通过部署构建来创建服务器

你可以使用以下任一方式部署构建。

* [使用 Game Manager 部署和配置服务器](/services/playfab/multiplayer/servers/quickstart-for-multiplayer-servers-game-manager)
* [使用 PowerShell 部署和配置服务器](/services/playfab/multiplayer/servers/quickstart-for-multiplayer-servers-api-powershell)

对于某些设置，使用 Web 界面（Game Manager）可能更方便。

接下来，[配置并运行客户端](#client-set-up) 以连接到已部署的服务器。

## 客户端配置

介绍如何让 Windows Runner 客户端程序连接到你使用 PlayFab Multiplayer Servers 创建的游戏服务器。仅当你已有处于待机状态的服务器时才能完成此配置。

* 在 [部署构建](#create-servers-by-deploying-a-build) 之后，等待待机服务器可用

* 获取该构建的 **titleId** 和 **buildId**

  * 使用 Game Manager：
    * 进入 **My Studios and Titles** 页面并找到你的游戏。复制其 ID 值并粘贴到方便日后访问的位置。此为 **titleId**
    * 选择该游戏以查看仪表板
    * 进入 **Multiplayer** > **Servers** > **Builds**
    * 复制你想要使用的构建的 ID 并粘贴到方便的位置。此为 **buildId**

  * 使用 PowerShell 时，此信息会在构建成功部署后的输出中出现。
    * 复制 **titleId** 和 **buildId** 并粘贴到方便的位置

* 使用标准 Git 方法或下载 zip 文件的方式获取 [Windows Runner C# 示例](https://github.com/PlayFab/MpsSamples/tree/master/WindowsRunnerCSharp)。如果之前已完成，可跳过。

* 使用 Visual Studio 2017 或更高版本打开该项目。这应会自动触发依赖项（例如最新的 [Game Server SDK NuGet 包](https://www.nuget.org/packages/com.playfab.csharpgsdk)）下载。

* 以 release x64 配置编译并构建 **WindowsRunnerCSharpClient.csproj**

* 打开命令提示符并切换到该项目的输出文件夹

* 使用以下命令行运行 WindowsRunnerCSharpClient，将 \<TitleId> 和 \<BuildID> 替换为上文获取的值：**dotnet WindowsRunnerCSharpClient.dll --titleId \<TitleId> --buildId \<BuildId>**

示例：

```sample code theme={null}
cd C:\Users\UserName\Documents\GitHub\MpsSamples\WindowsRunnerCSharp\WindowsRunnerCSharpClient\bin\Release\netcoreapp3.1

dotnet WindowsRunnerCSharpClient.dll --titleId CBE66 --buildId 36083326-3bd5-4b8f-a97d-7e82f066aa40 --verbose
```

当客户端成功连接到服务器时，命令提示符将显示一条日志消息，告知你已为其分配了一个带 IP 地址的服务器。

## 另请参阅

* [创建你的第一个服务器](/services/playfab/multiplayer/servers/create-your-first-server)
* [资源和示例](/services/playfab/multiplayer/servers/server-samples-resources)
* [PlayFab Multiplayer Server SDK](/services/playfab/multiplayer/servers/server-sdks/overview)
* [API 参考](xref:titleid.playfabapi.com.multiplayer.multiplayerserver)


## Related topics

- [Multiplayer Servers 示例和资源](/zh-CN/services/playfab/multiplayer/servers/server-samples-resources.md)
- [Wrapper 示例](/zh-CN/services/playfab/multiplayer/servers/wrapper-sample.md)
- [演练:使用 PowerShell/API 部署构建](/zh-CN/services/playfab/multiplayer/servers/quickstart-for-multiplayer-servers-api-powershell.md)
- [Party 示例](/zh-CN/services/playfab/multiplayer/networking/party-samples.md)
- [示例](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/samples/index.md)
