建议的采用顺序
- 登录与身份 —— XUser 与 PlayFab 登录。
- 成就与统计 —— XSAPI Achievements 与 玩家统计。
- 云存档 —— XGameSave。
- 社交 —— 好友与最近玩家 以及 富存在感。
- 多人游戏 —— 大厅、匹配、多人玩法、邀请 与 聊天。
- 商务 —— XStore、游戏内购 与 DLC。
- 服务端集成 —— S2S 身份验证、用户生成内容 与 运营。
可选服务主题
下表每一行对应源 PC E2E 指南中的一个主题。详细集成指南在链接的功能文档中。聊天
在 PC 和 XBOX 上使用 PlayFab Party 提供同步语音与文字聊天。关键步骤:- 配置 PlayFab Party SDK。
- 让玩家同时在 XBOX 服务与 PlayFab 中完成身份验证。
- 使用
PartyManager::CreateNewNetwork()创建或加入一个 Party 网络。 - 为每个本地用户创建
PartyLocalChatControl,并用PartyNetwork::ConnectChatControl()连接。 - 通过
PartyLocalChatControl::SetAudioInput/Output和PartyAudioDeviceSelectionType选择音频输入/输出设备。 - 配置聊天权限以及两两聊天控件之间的静音状态。
- 通过
SendText增加文字聊天,并可选择通过SetTextChatOptions启用翻译。 - 通过 Azure Speech Services 增加无障碍功能 —— 语音转文字转录以及文字转语音合成。
- 对采集到的麦克风音频启用降噪。
游戏内购
使用 XStore(通过XGameRuntime.h)在 Microsoft Store 上实现游戏内购流程:
- 查询商店目录、关联产品(附加包、消耗品、耐用品)以及用户的使用权集合。
- 通过
XStoreShowPurchaseUIAsync显示购买 UI。 - 通过
XStoreReportConsumableFulfillmentAsync消费消耗品。 - 使用权变化后,通过
XStoreQueryProductForCurrentSkuAsync刷新许可证。
邀请
使用 PlayFab Lobby 在 PC/XBOX 间实现邀请与加入:- 集成 PlayFab Lobby & Matchmaking SDK。
- 在 XBOX 服务与 PlayFab 中完成身份验证。
- 选择大厅的所有者:玩家拥有(
PFMultiplayerCreateAndJoinLobby)、服务器拥有(PFMultiplayerCreateAndClaimServerLobby)或由匹配创建。 - 通过
PFMultiplayerStartListeningForLobbyInvites监听邀请。 - 通过平台的邀请 UI 发送邀请,让接收方看到原生的 XBOX/Store 通知。
排行榜
使用 XSAPI 作品管理的排行榜 在 XBOX 服务上提供社交与全球排行榜:- 在 Partner Center 中 XBOX services → Player data 下定义排行榜。
- 通过 Stats Manager 发出与排行榜挂钩的统计事件。
- 通过
XblLeaderboardGetLeaderboardAsync(全球)或XblLeaderboardGetLeaderboardForSocialGroupAsync(好友)查询排行榜。
大厅
使用 PlayFab Lobby 保存共享的会话状态(成员列表、任意属性、所有权):- 使用 PlayFab Multiplayer C SDK 创建、加入、查找与离开大厅。
- 将玩法元数据存储为大厅属性(游戏模式、地图、准备状态)。
- 与 PlayFab Matchmaking 配合,将匹配得到的一组玩家组成大厅。
- 在大厅成员之上,搭配 PlayFab Party 增加网络与语音。
匹配
使用 PlayFab Matchmaking 提供基于技能/属性的匹配,并生成共享大厅:- 在 PlayFab Game Manager 中通过玩家属性规则定义匹配队列。
- 通过
PFMatchmakingCreateMatchmakingTicket提交票据。 - 匹配成功后,玩家会被放入你所拥有的共享大厅。
多人玩法
PC/XBOX 上有两种受支持的多人游戏栈:- PlayFab Multiplayer —— 跨平台,使用 PlayFab Lobby 管理会话、PlayFab Party 作为传输层。推荐给新作品。
- XBOX 服务多人玩法 —— MPSD 会话 + Multiplayer Manager(MPM)。仍受仅 XBOX 作品支持。
网络
将 PlayFab Party 用作实时玩法流量的网络传输层:- 在已连接的端点之间发送可靠/不可靠消息。
- 在同一 Party 网络上叠加语音、文字与玩法数据。
- 在 XBOX 上,Party 自动接入平台的网络路径;在 PC 上使用 UDP 并支持回退。
玩家统计
使用 XSAPI Stats Manager 管理作品所维护的玩家统计:- 在 Partner Center 中 XBOX services → Player data 下定义统计项。
- 通过
XblStatsManagerSetStatAsNumber/SetStatAsString为玩家添加统计项。 - 根据玩法递增或覆盖统计。
- 每帧调用
XblStatsManagerDoWork刷新待更新数据。
富存在感
使用 XSAPI Presence 广播玩家当前正在做什么:- 在 Partner Center 中定义存在感枚举与字符串集合。
- 玩家进入新状态(菜单、关卡、对局)时,通过
XblPresenceSetPresenceAsync更新存在感。 - 使用
XblPresenceGetPresenceAsync或XblPresenceGetPresenceForMultipleUsersAsync查询其他玩家。
S2S 身份验证
当你的后端需要代表玩家调用 Microsoft Store API 时,使用 Microsoft Entra ID + User Store ID 进行服务到服务身份验证:- 两类 User Store ID:
UserCollectionsID—— 与 Microsoft Store Collections 服务(使用权清单)进行身份验证。UserPurchaseID—— 与 Microsoft Store Purchase 服务(交易验证)进行身份验证。
- 你的服务获取一个 Entra ID 访问令牌,并结合来自游戏客户端的 User Store ID 调用 Store REST API。
- 推荐给新作品;基于 X-token 的身份验证已是遗留方案。
用户生成内容
在自有或第三方资源管线之上,使用 PlayFab Economy v2 管理 UGC 目录:- 让玩家通过 PlayFab 完成身份验证。
- 通过
CreateUploadUrls生成签名上传 URL。 - 使用
CreateDraftItem(Type:ugc)创建草稿条目。 - 通过
GetEntityDraftItems枚举草稿条目。 - 使用
PublishDraftItem发布 —— 已发布条目会出现在公开目录中。 - 通过
GetItemPublishStatus查询状态。 - 使用
SearchItems(ODataFilter、OrderBy、Select)查询目录。
相关
相关 API 文档
- XSAPI 概览 —— 身份、存在感、社交、成就、排行榜
- XStore API 参考 —— Microsoft Store 商务
- PlayFab 概览 —— PlayFab REST + SDK 接口
