注意
对 XDK 和 Windows 7 平台的支持将于 2023 年 8 月 1 日结束。 不会为这些平台发布新的 PlayFab Party 库更新。 PlayFab Party 网络和语音服务将继续运行,不会影响当前使用 Windows 7 或 XDK 版 PlayFab Party 库的任何游戏。
有关详细信息,请参阅我们的论坛文章。
注意
对 32 位 Android 平台(arm7 和 x86)的支持已于 2023 年 10 月 19 日结束。 不会为这些平台发布新的 PlayFab Party 库更新。 PlayFab Party 网络和语音服务将继续运行,不会影响当前在 32 位 Android 平台上使用 PlayFab Party 库的任何游戏。
1.10.9
2025 年 3 月 11 日
- Nintendo Switch:修复了在加载库的交付变体的 DLL 并启用日志记录时出现崩溃的 Bug 修复。
1.10.8
2025 年 1 月 24 日
- PlayStation®4 和 PlayStation®5:解决了与 PlayStation 平台上的不雅内容掩码相关的崩溃。
1.10.6
2024 年 12 月 10 日
- PlayStation®4 和 PlayStation®5:解决了与 C++14 及更高版本集成的生成警告和错误。
1.10.5
2024 年 11 月 18 日
- 修复了在其他用户重新加入并多次离开后,语音聊天有时不适用于留在群网络中的用户的问题。
- 修复了当与直接对等连接一起使用时 ,PartyLocalEndpoint::GetEndpointStatistics 报告 PartyEndpointStatistic::CurrentlyQueuedSendMessages 和 PartyEndpointStatistic::CurrentlyQueuedSendMessageBytes 的错误值的问题。
- 修复了 macOS 上框架断开的符号链接。
- 改进了在收集 SDK 日志期间处理非 Windows 平台的日志异常。
1.10.4
2024 年 11 月 12 日
- PlayStation®4 和 PlayStation®5:解决了与创建和销毁期间互斥作和终结点状态更改相关的崩溃。
1.10.3
2024 年 10 月 14 日
- 添加了对每个网络最多 128 台设备的支持。 有关详细信息,请参阅 可缩放网络。
- 从 32 增加到
c_maxNetworkConfigurationMaxDeviceCount
128。 - 更新了内部诊断。
- 更新了用于安全强化的生成设置。
- 修复了 macOS 平台上公开的 OpenSSL 符号的问题。
1.10.2
2024 年 9 月 18 日
Bug 修复
- 修复了在具有三个或更多设备的网络中建立直接对等连接时,库可能会崩溃的问题。
1.10.0
2024 年 8 月 5 日
- 添加了对game_server实体的支持,使服务器可以通过 SDK 连接到 Party 网络,并由游戏客户端安全标识。 通过 AuthenticateGameServerWithCustomId 对实体进行身份验证
game_server
后,可以通过 PartyManager::CreateLocalUserWithEntityType 将其添加为本地用户。 - 添加了用于确定与库中每个实体关联的实体类型的方法。 有关详细信息,请参阅 PartyLocalUser::GetEntityType、 PartyEndpoint::GetEntityType 和 PartyChatControl::GetEntityType。
- 添加了直接对等连接选项,该选项在 和
game_server
实体之间title_player
启用直接对等连接,同时禁止实体与其他title_player
实体之间的title_player
直接对等连接。 有关详细信息,请参阅 PartyDirectPeerConnectivityOptions::OnlyServers。 - 添加了方法,用于基于筛选器检索便捷的终结点列表。 有关详细信息,请参阅 PartyNetwork::GetEndpointsByUserType。
- 在 PlayStation®4 和 PlayStation®5 上使用默认分配器的 PlayFab Party 中使用的第三方库的内存分配已更新为使用 Party 的内存回调。 使用 PartyManager::SetMemoryCallbacks 配置特定于游戏的内存分配函数分配的游戏现在会看到并控制这些分配。
Bug 修复
- 修复了进程终止时库可能会在 Windows 或 Xbox 上崩溃的问题。
- 解决了非 Windows 平台的上一次连接尝试失败后出现的虚假直接对等连接失败问题。
- 修复了在重复的 Party 网络创建和销毁过程中未触发 DestroyNetwork 事件的问题。
已知问题
- 在具有三个或更多设备的网络中建立直接对等连接时,库偶尔可能会崩溃。
1.9.5
(2024 年 5 月 3 日)
- 解决了 PartyRegionsChangedStateChange 中报告的间歇性致命错误,以及 Windows 设备使用连接共享等功能进行的其他操作。
- 修复了在开始使用 Party 后进程关闭很快,Windows 和 Xbox 上可能出现的崩溃问题。
- 修复了调用 PartyLocalDevice::DestroyChatControl 后,有时无法释放
PartyChatControl
资源,并且仅在调用 PartyManager::Cleanup 后才会释放的 bug。 - Android:解决了在同一应用中使用 Party 和 Multiplayer 时出现的重复类错误。
1.9.4
2024 年 3 月 20 日
- 修复了以下 bug:将乌克兰语设置为主机语言时,
PartyLocalDevice::CreateChatControl
在 PlayStation®4 和 PlayStation®5 上会失败。
“PlayStation”是索尼互动娱乐公司的注册商标或商标。
1.9.3
2024 年 3 月 14 日
- 修复了启用语音转文本时潜在的“释放后使用”bug。
- 修复了启用直接对等连接时潜在的崩溃问题。
- 改进了内部诊断体验。
1.9.2
2024 年 3 月 5 日
- 修补了 Linux 平台上的音频渲染错误。 Linux 客户端现在可以完全听到其他平台客户端的声音。
1.9.1
2024 年 2 月 5 日
- 添加了
PartyOption::RegionUpdateConfiguration
和PartyOption::RegionQualityMeasurementConfiguration
,用于高级控制参与方库执行自动区域发现和连接质量度量的时间和方式。
1.8.11
2023 年 11 月 13 日
- 修复了客户尝试在任天堂 Switch 上退出网络时可能发生崩溃的 bug。
1.8.10
2023 年 10 月 19 日
此版本更新 PlayFab Party Apple 和 Android 平台的最低 SDK 版本控制和目标 SDK 版本控制。
对于 Apple 平台,我们遵循 Apple 的 Xcode 指南和 Xcode 15 版本。
iOS
- 最小部署目标已从 iOS 10 增加到 iOS 12。
- 目标部署版本已从 iOS 16 增加到 iOS 17。
macOS
- 目标部署版本已从 macOS 13.3 增加到 macOS 14。
- 在版本 v.1.8.8 中,最小部署目标已从 macOS 12.3 降低到 macOS 10.13。
对于 Android 平台,我们遵循 Google 的目标 API 准则。
- Android
- 最低 SDK 版本已从 Android API 19 增加到 Android API 21。
- 目标 SDK 版本已从 Android API 28 增加到 Android API 34。
- 编译 SDK 版本已从 Android API 28 增加到 Android API 34。
- 对 32 位 Android 平台(arm7 和 x86)的支持已于 2023 年 10 月 19 日结束。 不会为这些平台发布新的 PlayFab Party 库更新。 PlayFab Party 网络和语音服务将继续运行,不会影响当前在 32 位 Android 平台上使用 PlayFab Party 库的任何游戏。
如果集成这些包时遇到任何问题,请提交 PlayFab 支持票证。
1.8.9
2023 年 10 月 20 日
- 已实现终结点的共享属性。 通过
PartyNetwork::CreateEndpoint
创建终结点时,可以设置共享属性。 可以使用PartyEndpoint::GetSharedProperty
检索共享属性。 - 改进了音频数据包队列,以减少在某些情况下感知到的聊天音频延迟。
- 升级了 Opus 编解码器的内部版本。
- 修复了低频率崩溃问题。
- 改进了内部诊断体验。
- 删除了对 Windows 7 的支持。
此版本的 NuGet 包在编译时添加 PartyWin.dll 上的依赖项,而不是在运行时动态加载特定于平台的 DLL 版本。 NuGet 中不再包含 PartyWin7.dll,不应再作为游戏的一部分进行分发。
1.8.5
2023 年 6 月 28 日
Bug 修复
- 修复了任天堂 Switch、PlayStation®4 和 PlayStation®5 无法正常工作的 bug
PartyLocalChatControl::SetAudioRenderVolume
。
“PlayStation”是索尼互动娱乐公司的注册商标或商标。
1.8.3
2023 年 6 月 2 日
- 自上次任天堂 Switch 版本(版本 1.7.15)以来,为任天堂 Switch 发布了 PlayFab Party 版本 1.8,其中包含所有 bug 修补程序和新功能。
1.8.2
2023 年 5 月 30 日
Bug 修复
- 修复了 PlayFab Party 库要求 macOS 版本至少为 13.1 的 bug。 新版本将最低 macOS 版本设置为 12.3。
1.8.0
2023 年 5 月 8 日
- 添加了一个选项,用于配置设备尝试与其他设备建立的最大直接对等连接数。 有关详细信息,请参阅
PartyOption::LocalDeviceMaxDirectPeerConnections
。 - iOS、Android:添加了对从本地聊天控件捕获的音频启用噪声抑制的支持。 有关详细信息,请参阅
PartyLocalChatControl::SetVoiceAudioOptions
。
Bug 修复
- 修复了当用户的实体令牌过期时,库可能会由于内部诊断跟踪而泄漏内存的 bug。
1.7.23
2023 年 4 月 1 日
- 添加了对 PlayStation®5 平台上的实时音频操作的支持。
1.7.22
2023 年 3 月 30 日
Bug 修复
- 修复了在主机进程开始退出之前未清理 Party 可能会崩溃的 bug。
- 更改了对等连接的行为,如果链接意外断开,则回退到中继连接。 上述行为会断开两台设备与网络的连接。
1.7.20
2023 年 2 月 8 日
Bug 修复
- 修复了以下 bug:44.1 kHz 麦克风中的音频可能听起来失真。
- 改进了 PartyManager::GetErrorMessage() 报告的网络错误的诊断错误消息。
1.7.19
2022 年 11 月 11 日
Bug 修复
- 修复了在 Linux 上的某个时间点后无法打开 Web 请求的 bug。
1.7.17
2022 年 10 月 7 日
Bug 修复
- 修复了当聊天控件连接到 iOS 上的网络时可能发生崩溃的 bug。
- 修复了启用 iOS 日志时可能发生崩溃的 bug。
1.7.16
2022 年 9 月 27 日
适用于 macOS 的新捆绑包版本
- 为 Unity 插件加载和本机 macOS 开发添加了 .bundle。
Bug 修复
- 修复了启用 macOS 日志时可能发生崩溃的 bug。
1.7.14
2022 年 8 月 12 日
适用于 Linux 和 macOS 的新 SDK
- 添加了对 Linux 和 macOS 上的 PlayFab Party 的本机支持,使游戏开发人员能够在更多平台上创建跨平台或多平台实时多人游戏体验。 有关这些版本和其他 SDK 版本的链接,请参阅 Azure Playfab Party SDK。
2022 年 8 月 11 日
- 介绍适用于 Linux 的 PlayFab Party
1.7.11
2022 年 6 月 24 日
Bug 修复
- 修复了在调用
PartyManager::Cleanup()
后仍保留单个内存分配的问题。
1.7.8
2022 年 4 月 21 日
Bug 修复
- 修复了调用
PartyManager::Cleanup()
时内存未完全清理的问题。 - 修复了调用
PartyLocalChatControl::SetAudioInput()
或PartyLocalChatControl::SetAudioOutput()
选择相同音频设备会导致库重新初始化音频设备的问题。
1.7.7
2022 年 3 月 16 日
Bug 修复
- PlayStation®4、PlayStation®5:修复了删除音频设备后没有音频设备时发生的崩溃。
- Switch:修复了触发多个 PlayFab 交易时导致 Web 请求失败的问题。
“PlayStation”是索尼交互娱乐公司的注册商标或商标。
1.7.6
2022 年 2 月 8 日
性能提升
- Windows、XDK、任天堂 Switch、PlayStation 4、PlayStation 5: 删除了两个工作线程,并在预先存在的低频率工作线程上执行相关工作。 库的 Microsoft Game Development Kit (GDK) 版本已具有这种合并的工作行为。
Bug 修复
- iOS、Android、Switch、PlayStation 4、PlayStation 5 和 Stadia: 修复了初始化过程中分配的少量内存,在清理过程中未正确释放的问题。
- 当文本节制未启用时,避免在 PartyChatTextReceivedOptions::FilteredDueToError 标志中报告 PartyChatTextReceivedStateChange。
1.7.5
2021 年 9 月 30 日
Bug 修复
- 修复了某些 16kHz 麦克风无法工作的问题。
- 修复了 Windows 上未处理麦克风权限更改的问题。
- 修复了某些失败情况中的内存泄漏
PartyManager::CreateNewNetwork()
。 - 修复了
PartyLocalEndpoint::GetEndpointStatistics()
偶尔崩溃的问题。
1.7.0
2021 年 6 月 29 日
新的分析挂钩和聊天控制指示器
- 对在内部库函数中花费时间感兴趣的开发人员现在可以配置可选方法进入和退出回调,以挂钩到其首选的高性能检测方法。 有关详细信息,请参阅
PartyManager::SetProfilingCallbacksForMethodEntryExit
。 在此版本中,仅 Windows、Xbox One XDK 和 Microsoft Game Core 平台支持回调。 - 新的 NoRemoteInput 和 RemoteAudioInputMuted 聊天控制指示器为当前无提示音频状态提供了更精细的粒度。 有关详细信息,请参阅
PartyChatControlChatIndicator
。
终结点消息行为改进
- 如果由于网络条件不同或远程目标的响应能力不同而强制在转发之前将消息排入队列,则“PartySendMessageQueuingConfiguration”
timeoutInMilliseconds
字段现在也由透明云中继进行评估。 - 在网络中完全进行身份验证时,发送到 0 条目数组将正确定位库当前在网络中报告的所有远程终结点的确切集合。 消息在传输过程中所创建的终结点不再可能包含在内。
1.6.1
Bug 修复
- 修复了聊天控件连接到网络时当同一聊天控件与其他网络断开连接时可能会出现崩溃的 bug。
1.6.0
2021 年 4 月 12 日
新的线程控制和文本审核功能
- 该库的工作现在可以在规则控制线程上手动运行。 有关详细信息,请参阅
PartyManager::SetWorkMode
。 - 现可选择筛选攻击性文本聊天。 有关详细信息,请参阅使用文本审核。
页眉中的显式数字编号
- 页眉中的数字值现在具有显式编号。
1.5.13
2021 年 3 月 26 日
Bug 修复
- 修复了使用蓝牙耳机在 iOS 设备上录音被剪切的 bug。
- 修复了应用没有激活 Windows 平台麦克风权限时生成错误代码的 Bug。
- 修复了异常设备无法刷新(除非其他内容强制刷新)的 bug。
- 修复了在与该频道关联的源终结点无效后取消引用发送频道的用户数据后可能会出现崩溃的 bug。
- 修复了当远程聊天控件没有语言代码时,客户端遇到无提示失败的 bug。
1.5.10
Bug 修复
- 修复了由于进程处理器进程与库的默认线程线程不匹配导致某些 Windows 设备上无法初始化库的 bug。
- 修复了因内部 Web 请求失败而操作失败时库可能不会提供错误的 bug。
- 修复了在启用直接对等连接且库尝试建立到另一台设备的直接对等连接时可能会出现崩溃的 bug。
- 修复了可能导致语音崩溃或变形的 bug。
1.5.1
2020 年 9 月 5 日
Bug 修复
- 修复了库可能无法在 iOS 上激活麦克风的 bug。
1.5.0
新增点对点直接连接、延迟和语音到文本功能
- Windows 10 和 Microsoft Game Core 版本的库现在支持直接点对点连接。 有关详细信息,请参阅 使用直接点对点连接。
- 现在可以通过库来查询本地设备和远程设备之间的往返延迟。 有关详细信息,请参阅
PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds
- 现在可以禁用“屏蔽语音转文本的猥亵语言”功能了。 有关详细信息,请参阅
PartyVoiceChatTranscriptionOptions::DisableProfanityMasking
。
Android 和 iOS 音频 Bug 修复
- Android:首次调用蓝牙管理器
PartyLocalDevice::CreateChatControl()
初始化,而不是在PartyManager::Initialize()
初始化。 - iOS:修复了调用"声音
PartyManager::Initialize()
时出现的声音项目。
1.4.13
Windows 8.1 相关性问题
此版本删除了对 api-ms-win-core-version-l1-1-1.dll 的不必要的依赖,此依赖曾阻止早期版本在 Windows 8.1 上工作
1.4.8
2020 年 4 月 30 日
TLS1.2
- 脚本堆栈已更新,在 Windows 7、Android 和 iOS 设备上使用 TLS1.2。 如果使用这些平台,请升级,因为从 2020 年 9 月开始,Azure 语音服务弃用了 TLS1.1 支持。 所有其他平台已支持 TLS1.2,无需升级。
Bug 修复
- 修复了未填充
PartyCreateChatControlCompletedStateChange
结构中的languageCode
字段的错误。 - 修复了一个错误,此 bug 会过度放大由
PartyManager::GetRegions()
报告延迟。 - 修复了曾允许在不安全情形下调用
PartyManager::SetMemoryCallbacks()
的 bug。 - 修复了在
PartyNetwork
中调用带PartyLocalUser
的PartyManager::DestroyLocalUser()
将生成具有已删除Reason 字段PartyLocalUserRemovedReason::RemoveLocalUser
值不正确的PartyLocalUserRemovedStateChange
的 的 bug,而不是正确的值PartyLocalUserRemovedReason::DestroyLocalUser
。
其他更改
- 聊天数据使用的带宽已减少。
- 现在,在 Xbox 上遇到沙盒问题时,提供了更具描述性的错误代码和错误消息。
- 如果 PlayFab 游戏 ID 为空,则
PartyManager::Initialize()
现在失败。 - 现在,对于依赖于有效令牌的操作,将无效的 PlayFab 实体令牌传递到
PartyManager::CreateLocalUser()
将导致状态更改结果中显示更具描述性的错误消息。 - 标题文档中的拼写错误已修复。
- 现在,在将无效区域传递给
PartyManager::CreateNewNetwork()
时,提供了更具描述性的错误代码和错误消息。 - 已为 Party.h 中的结构和接口澄清了
PartyString
值生命周期的文档。 -
PartyManager::Cleanup()
的文件,解释这不是一个线程式呼叫。 - 当 Internet 连接错误异步失败时,
PartyManager::ConnectToNetwork()
描述性的错误代码和错误消息。
1.3.0
聊天 API 更改
- 为 Windows 和 Xbox 实施了实时音频操作函数,这些函数可用于修改传出或传入语音聊天音频。 有关详细信息,请参阅 使用实时音频操作来应用自定义语音效果。
- 聊天权限选项提供了更多选项,可选择性地单独配置文本到语音和麦克风音频权限。 有关详细信息,请参阅
PartyChatPermissionOptions
。 - 这断开了与以前版本的 Xbox Live 帮助程序库的兼容性。 此版本与 Xbox Live 帮助程序库的版本 1.2.0 兼容。 有关详细信息,请参阅 Xbox Live 助手库发行说明。
- 现将更改每个脚本状态,指示其代表文本到语音或麦克风音频。 有关详细信息,请参阅
PartyVoiceChatTranscriptionReceivedStateChange
。
1.2.2
iOS 更改
- 增加了对批量控制 API 的支持。
1.2.0
Android 更改
- 增加了对批量控制 API 的支持。
- 从库中删除音频焦点处理。 现在,主机应用程序应该实现自己的焦点处理逻辑。
1.0.2
- 修复了背景遥测中的崩溃
1.0.1
群 API 更改
PartyManager::SetMemoryCallbacks 更改
此版本的"方"添加了对 PartyManager::SetMemoryCallbacks()
的修补程序,并包含有关此 API 何时可安全调用的限制。 查看 Party.h API 参考文档了解详细信息。
删除 PartyStateChangeResult::TitleCreateNetworkThrottled
已从 API 中删除 PartyStateChangeResult
值TitleCreateNetworkThrottled
,因为 Party 库将永远不会生成它。
0.7.0 预发行版
Windows 包装更改
此版本的方引入了新的 NuGet 包 ( Microsoft.PlayFab.PlayFabParty.Cpp.Windows,该包会替换和弃用特定于 Windows 10 和 Windows 7 的 NuGet 包 (分别用于 Microsoft.PlayFab.PlayFabParty.Cpp.Win10 和 Microsoft.PlayFab.PlayFabParty.Cpp.Win7)。 新的统一 Windows NuGet 包包含两个新的 DLL,即 PartyWin.dll(支持 Windows 8.1 及更新版本)和 PartyWin7.dll(仅适用于 Windows 7)。 使用新的 Windows 统一 NuGet 包,基于 OS 版本的运行时检测加载正确的方 DLL,因此游戏分发包中应同时包含 PartyWin.dll 和 PartyWin7.dll。
Android 更改
Android 风格现在使用用于群 (libparty.so) 的共享对象而不是静态库 (libparty.a)。
此版本还包含音频设备选择特定于 Android 的 bug 修复。
iOS 更改
iOS 风格组织现在包含用于动态加载libparty 框架包,而不是静态构建的同一部分。a。
API 更改
UpdateEntityToken API
此版本群对处理 PlayFab 实体令牌做出相关更改。 在上一版本中,游戏在 PartyManager::CreateLocalUser()
API 中向群提供了用户实体令牌。 此后,群会内部刷新实体令牌,并保持该令牌为最新。
在此版本中,内部令牌刷新行为已被删除,并替换为新的 API、PartyLocalUser::UpdateEntityToken()
。 呼叫方现在负责监视提供给 PartyManager::CreateLocalUser()
和 PartyLocalUser::UpdateEntityToken()
。 当令牌接近或超过过期时间时,应通过执行 PlayFab 登录操作获取新令牌,并且通过调用 PartyLocalUser::UpdateEntityToken()
将其提供给 Party 库。 建议在先前提供的令牌的有效期已经过半时获取一个新令牌。 在可能进入低功耗状态或长时间暂停应用程序执行的平台上,令牌可能会在过期之前被阻止刷新。 继续执行后,应检查令牌是否过期。
粗略流程如下所示:
- 游戏调用了
LoginWith*
Fab API - PlayFab 的响应包含实体令牌以及到期时间
- 与之前一样,通过
PartyManager::CreateLocalUser()
API 向群提供令牌信息 - [新建]记下到期日期,以便知道何时刷新
- [新建]在令牌的到期日期(或该日期后最早的机会)中一半时间,再次调用令牌
LoginWith*
并跟踪新令牌的过期时间,获取新的令牌 - [新建]呼叫
PartyLocalUser::UpdateEntityToken()
以将新令牌传递给群
其他说明:
- 获取实体令牌的行为不会使以前获取的任何实体令牌无效。 在到期之前,这些保留期保持有效。
- 删除了内部刷新功能,因为大多数游戏都应进行自己的 PlayFab 调用。 同时使用游戏和 Party 库提取实体令牌会导致不必要的服务负载来管理两组令牌。
聊天 API 更改
现 PartyVoiceChatTranscriptionReceivedStateChange
包括一个 languageCode
域,用于指示脚本语言。
现在 PartyChatTextReceivedStateChange
包括一个 languageCode
域,可指示聊天文本的语言的字段。 当通过 PartyLocalChatControl::SetTextChatOptions()
启用聊天文本翻译时,将填充 languageCode
字段。
0.6.0 预发行版
增加了对 iOS、Android 和 Nintendo Switch 平台的支持。
有关详细信息,请参阅以下链接:
0.5.0 预发行版
API 更改
无障碍聊天
- 添加了对文本到语音转换讲述的支持。 (请参阅
PartyLocalChatControl::SetTextToSpeechProfile()
) - 添加了更多用于控制语音到文本转换发生时间的选项。 (请参阅
PartyLocalChatControl::SetTranscriptionOptions()
) - 向 API 添加了文本到文本转换,尽管它尚不受支持。 (请参阅
PartyLocalChatControl::SetTextChatOptions()
) - 减少了文本到语音转换的带宽和内存使用量。
网络访问控制
-
PartyNetwork::SetAccessControlList()
以及相关方法已从 API 中删除。 使用新的PartyInvitation
类和相关方法创建公开邀请,或者向特定 PlayFab 用户授予对 Party 网络的访问权限。
0.4.6 预发布
API 更改
已添加新的公共 API PartyLocalUser::UpdateEntityToken()
。
0.2.0 预发行版
API 更改
-
PartyManager::Initialize
现在需要传入有效的 PlayFab 游戏 ID。