> ## 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.

# PlayFab Online Subsystem (OSS) 专用服务器设置

> 在 Unreal Engine 中设置 PlayFab Online Subsystem (OSS) 专用服务器的步骤,包括 Party 集成和服务器端配置。

# 快速入门指南:使用 PlayFab Online Subsystem 设置专用服务器

本指南旨在帮助你准备已集成 PlayFab Online Subsystem (OSS) 的游戏,并在专用服务器场景下进行验证。本指南侧重于在本地托管的专用服务器上进行验证。

在玩家托管的场景中,PlayFab OSS 默认使用 PlayFab Party 套接字进行通信。但在服务器托管场景中,PlayFab Party 套接字将无法连接,游戏需要显式调用 `ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)` 才能与服务器通信。

PlayFab OSS 会识别客户端何时正在连接到专用服务器,并回退到使用原生 `PLATFORM_SOCKETSUBSYSTEM` 进行客户端到服务器的通信。

## 先决条件

* 一款已集成 [PlayFab Online Subsystem](/services/playfab/multiplayer/networking/party-unreal-engine-oss-overview) 且能够创建客户端托管场景的游戏。
* 一台可用作游戏连接客户端的“客户端”PC。
* 一台可用作游戏托管服务器的“服务器”PC。
  * 建议使用第二台 PC,但如果你愿意,也可以使用同一台 PC、虚拟机实例或 Docker 实例。本快速入门指南将引导你使用第二台 PC 进行设置。
  * 确保第二台 PC 的 IP 地址可从第一台 PC 通过网络访问。

## 设置

### Unreal Engine (UE) 5 的专用服务器设置

UE 5 的[专用服务器指南](https://docs.unrealengine.com/5.3/en-US/setting-up-dedicated-servers-in-unreal-engine/)将引导你了解如何将游戏打包为专用服务器,并以 UE 的 Lyra Game 作为主要示例。

### Unreal Engine (UE) 4 的专用服务器设置

UE 4 的[专用服务器指南](https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/HowTo/DedicatedServers/)将引导你了解如何将游戏打包为专用服务器,并以 UE 的 Shooter Game 作为主要示例。

### 其他设置

* 配置好游戏的 `<Game>Server.Target.cs` 后,确保你能够为游戏的 `WindowsClient` 和 `WindowsServer` 版本生成二进制文件。
* 将 `<Game>Server.exe` 二进制文件从 `Binaries/Win64/` 移动到第二台 PC 上的任意位置。

## 连接

### 部署服务器

1. 在第二台 PC 上打开一个终端,进入 `<Game>Server.exe` 所在的目录。

```ps theme={null}
PS  C:\WindowsServer\ >
```

2. 启动你的专用服务器。

```ps theme={null}
PS  C:\WindowsServer\ > .\<Game>Server.exe <map> -log –NOSTEAM
```

* `-NOSTEAM` 参数会禁用游戏的默认 OSS(本例中为 OSS PlayFab)并将其替换为 `OnlineSubsystemNull`。禁用默认的 online subsystem 可确保专用服务器始终使用正确的子系统。
* `-log` 参数会打开一个单独的窗口以实时显示日志内容。
* 有关 UE 命令行参数的更多信息,请访问 [Unreal Engine 的命令行参数](https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/CommandLineArguments/)文档。

将出现一个带有 UE 日志的单独窗口,确认已生成服务器。请确保日志中包含以下几行:

```log theme={null}
LogOnline: Warning: PLAYFAB: PlayFab API disabled!
LogOnline: Display: PLAYFAB: OnlineSubsystemPlayFab::Shutdown()
LogOnline: Verbose: PLAYFAB: FOnlineSubsystemPlayFab::CleanUpPlayFab PartyInitialized 0, LobbyInitialized 0
LogOnline: Verbose: PLAYFAB: FOnlineSubsystemPlayFab::UnregisterNetworkInitCallbacks
```

这些日志表明 OSS PlayFab 已在专用服务器上正确禁用。

### 连接客户端

1. 在第一台 PC 上打开一个终端,进入 `<Game>Client.exe` 所在的目录。

```ps theme={null}
PS  C:\WindowsClient\ >
```

2. 启动你的游戏客户端。

```ps theme={null}
PS C:\WindowsClient\ > .\<Game>Client.exe <ipaddress_of_server_machine>:7777 -log
```

* 专用服务器的默认端口通常为 7777。如果遇到连接错误,请确保服务器在正确的端口上部署,或将你的连接命令更改为与该端口匹配。

将出现一个游戏客户端并连接到服务器上启动的游戏。你应能在专用服务器的日志窗口中看到指示客户端已加入的日志。


## Related topics

- [将 Linux Unreal 服务器部署到 MPS 云](/zh-CN/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab.md)
- [GSDK 项目云部署](/zh-CN/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-cloud-deployment.md)
- [PlayFab OnlineSubsystem for Unreal Engine 发行说明](/zh-CN/services/playfab/multiplayer/networking/unreal-release-notes.md)
- [PlayFab for Unreal Engine 概述](/zh-CN/services/playfab/sdks/unified-unreal/overview.md)
- [PlayFab Online Subsystem (OSS) 快速入门](/zh-CN/services/playfab/multiplayer/networking/party-unreal-engine-oss-quickstart.md)
