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

# PlayFab Party

> 在 GDK 游戏中使用 PlayFab Party 实现加密的语音聊天、文本聊天和数据联网，并了解 XBOX services 要求和网络初始化指南。

# Azure PlayFab Party

本主题介绍如何将 PlayFab Party 与 Microsoft Game Development Kit (GDK) 结合使用。[PlayFab Party](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking.md) 能够以灵活、包容且安全的方式，简化在游戏中添加低延迟聊天和数据通信的过程。如果不希望使用云托管的专用服务器(有时称为*对等游戏*或 *P2P 游戏*)，Party 是多人游戏实现的理想选择。即使使用云服务器作为游戏主机，Party 也能为应用内的社交体验(例如游戏内小队或赛后大厅)提供语音和文本通信支持。Party 是 Microsoft Game Development Kit (GDK) 中 XBOX One ERA 安全套接字 API 的后继产品。

Party 使用 Azure 认知服务转录用户语音聊天并将文本合成为语音，此功能主要作为辅助功能而设计。PlayFab Party 语音聊天的典型使用按分钟计费。其中最多 10% 的语音分钟数可以免费使用转录和合成功能。建议将此功能的激活与轻松使用用户设置相关联。

> [!NOTE]
>
> Party 还可以实时翻译聊天内容。在匿名匹配和国际竞技游戏中，这些转录和翻译功能可以带来更具吸引力的多人游戏体验。

PlayFab Party(以及我们的其他多人游戏服务)的一个关键目标是支持可互操作的多人游戏基础结构和跨网络游戏。请确认你的多人游戏体验符合有关多人游戏和跨网络用户活动的相关平台政策。

## PlayFab Party 功能

* **加密和身份验证：** Party 使用用户的 PlayFab 用户标识对用户设备进行身份验证，并使用类似 DTLS 的协议加密数据。
* **设备到设备的数据报网络：** Party 的核心是在 Azure 云中全球托管的中继。用户设备使用这些中继创建 Party 网络，并相互发送游戏数据。Party 网络系统包括可配置的传输功能，例如遇到数据包丢失时自动重试。
* **语音和文本聊天：** 用户设备可以将音频设备绑定到 Party 网络以进行实时语音聊天。Party 还支持用户之间的文本聊天消息。
* **语音转文本和语音合成：** Party 可以转录用户语音聊天，并为文本消息合成语音。此功能有多种用途，但主要作为辅助功能而设计。
* **实时翻译：** Party 可以理解用户语音和文本聊天，并合成实时翻译。

## Microsoft Game Development Kit (GDK) 注意事项

### XBOX services 要求

XBOX services 游戏的用户通信必须满足多项用户安全要求。将 PlayFab Party 与 PlayFab Party XBOX services 插件结合使用，可确保你的游戏满足所有 XBOX services 通信和安全要求。

> [!NOTE]
>
> *XBOX 要求* (XR) 是游戏在 XBOX 平台上发布之前必须满足的要求。

* **XR-015：** 管理玩家通信。
* **XR-045：** XBOX services 和帐户权限。XBOX services 插件仅强制执行 *XPRIVILEGE\_COMMUNICATIONS* 部分。如果你的游戏使用其他 XBOX services 功能，则需要执行必要的权限检查。
* **XR-072：** 支持语音。
* **跨网络游戏：** PlayFab Party 仅强制执行需要服务器的*跨网络游戏*部分。你的游戏负责执行必要的权限检查和 XBOX services 交互。
* **XR-064：** 可加入的游戏会话和联机游戏
* **XR-067：** 维护最近一起玩过的交互

## 网络初始化

对于 Microsoft Game Development Kit (GDK) 游戏，PlayFab Party 不会自动处理[网络初始化](https://docs.xbox.com/zh-CN/build/console-features/networking/initialization-connectivity-networking.md#ID4ETA)。请等待网络完成初始化后再调用 PlayFab Party。在网络初始化之前，Party API 调用会失败。

## 挂起和恢复

应通过 `RegisterAppStateChangeNotification` 注册挂起和恢复事件。挂起时，使用 `PartyManager::Cleanup()` 清理 Party。恢复时，应再次等待网络初始化，然后再调用 `PartyManager::Initialize()`。如果尝试跨挂起/恢复周期使用 Party API，这些 API 将会失败。

`PartyManager::Cleanup()` 可能需要几百毫秒才能完成。建议将 Party 清理与其他挂起操作并行执行，以避免挂起超时。如果以异步方式调用 `Partymanager::Cleanup()`，应确保在 Party 清理返回之前阻止挂起通知。

## 定价信息

使用 XBOX services 标识时，PlayFab Party 对 Microsoft Game Development Kit (GDK) 免费。有关定价和计费的详细信息，请参阅 [XBOX services 免费计划常见问题解答](https://learn.microsoft.com/gaming/playfab/multiplayer/networking/xbl-discount)。

## 在 PlayFab 门户中配置游戏

1. 转到 [https://developer.playfab.com/](https://developer.playfab.com/)，然后创建帐户。
2. 使用新帐户创建 PlayFab 工作室和游戏 ID。
3. 转到新创建的游戏，选择 **Multiplayer** 部分，然后选择 **Party (Preview)** 选项卡。
4. 选择 **Enable**，然后输入访问代码 **XBOX Live**。片刻之后，Party 即会启用。
5. 在 **API Features** 选项卡上，复制 PlayFab 游戏 ID 和实体 ICD。
6. 将游戏 ID 和实体 ICD 添加到客户端 PlayFab Party API 初始化函数中。现在，你可以在 Microsoft Game Development Kit (GDK) 游戏中使用 PlayFab Party 了。

有关详细信息，请参阅[快速入门：Game Manager](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/gamemanager/quickstart.md)。

## 使用 Visual Studio 将 PlayFab Party 库添加到 Microsoft Game Development Kit (GDK) 项目

1. 在 Visual Studio 解决方案资源管理器中右键单击你的项目，然后选择 **Properties**。
2. 在 **Configuration Properties** 中，转到 **XBOX One** 部分。
3. 选择 **Gaming Extension Libraries** 下拉列表，然后添加对 PlayFab Party 和 XBOX Live Helper 的引用。

> [!NOTE]
>
> 这些库默认安装在 *Program Files (x86)\Microsoft GDK\[Version]\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\Redist\x64* (2024 年 10 月或更高版本)或 *Program Files (x86)\Microsoft GDK\[Version]\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\Redist\CommonConfiguration\neutral* (2024 年 6 月或更早版本)下。

## PlayFab Party 和沙盒

无需为沙盒配置 PlayFab Party。无论部署到哪个沙盒，所有网络会话都在零售环境中分配。如果需要为测试分隔用户，请为测试环境和零售环境分别创建单独的 PlayFab 游戏 ID。PlayFab 游戏 ID 独立于 XBOX services 游戏 ID。一个 XBOX services 游戏 ID 可以使用多个不同的 PlayFab 游戏 ID。

## 另请参阅

[PlayFab Party 概述](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking.md)


## Related topics

- [Party 示例](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/party-samples.md)
- [启用 PlayFab Party](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/enable-party.md)
- [PlayFab Party 功能](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/party-features.md)
- [PlayFab Party 概览](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/index.md)
- [PlayFab Party Unity SDK](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/unity-party-api-reference/index.md)
