本文总结了在游戏中实现玩家邀请所涉及的步骤。 有关详细信息,请务必查看 (PlayFab) 和 另请参阅 GDK () 部分中的页面。
使用 Microsoft Azure PlayFab 大厅功能实现玩家邀请和加入
与特定于平台的 API 相比,使用 PlayFab API 和服务邀请玩家加入游戏涉及更灵活的方法,因为 PlayFab 侧重于后端逻辑。
对于邀请和联接,请确保已集成 PlayFab 大厅 构造。
下载并设置 Azure PlayFab 大厅和匹配 SDK:下载适用于平台的 C/C++ SDK,然后将提供程序标头和库文件集成到生成中。
对玩家进行身份验证:玩家必须先使用 Xbox 服务和 PlayFab 进行身份验证,然后才能在游戏中使用依赖于这些服务的功能。
选择大厅类型:
- 由玩家:这将创建一个客户端拥有的大厅。 本地玩家将成为大厅所有者。 使用 PFMultiplayerCreateAndJoinLobby 函数创建此大厅。
- 由游戏服务器:这将创建服务器拥有的大厅。 使用 PFMultiplayerCreateAndClaimServerLobby 函数创建此大厅。
- 通过匹配:这是由匹配后形成的一组玩家创建的。 这还会创建客户端拥有的大厅。
这些大厅充当玩家可以加入的游戏会话。
实现事件处理以接收有关邀请的通知。
- 对邀请接收者使用 PFMultiplayerStartListeningForLobbyInvites 以启用接收游戏内邀请。
- 使用 PFLobbyInviteReceivedStateChange 事件来处理传入邀请。
加入大厅:玩家可以通过为 PlayFab 大厅服务提供大厅的连接字符串加入大厅,这是一个向大厅授予成员身份的不透明标识符。 玩家可以通过以下方式加入大厅。
- 使用游戏内邀请:大厅的成员可以直接通过 PlayFab 大厅服务邀请另一名玩家加入该大厅。 这会与受邀玩家共享大厅连接字符串。 这些邀请跨平台工作,但仅在游戏内工作。 有关详细信息,请参阅大厅邀请。
- 使用平台提供的邀请:大厅的成员可以直接通过特定于平台的邀请机制与其他玩家共享大厅的连接字符串。 这些邀请不能跨平台工作,但可以在收件人尚未玩游戏的情况下接收。
- 使用 PFLobbySendInvite 函数通过 PlayFab 大厅服务向另一个 PlayFab 用户发送邀请。 此函数需要大厅句柄、发送方的实体键和接收方的实体键。
- 使用 FindLobbies 搜索可用的大厅,并加入可用的大厅。
- 通过任何带外自定义发现机制共享大厅的连接字符串。
当玩家收到连接字符串时,他们可以使用 PFMultiplayerJoinLobby 函数加入大厅。 此函数需要大厅连接字符串和玩家的实体键。
管理大厅状态:使用 PFLobbyUpdatedStateChange 函数管理大厅状态,包括添加或删除玩家、更新大厅属性和处理玩家就绪情况。
管理大厅事件:实现事件处理以接收有关大厅状态更改的通知。 使用 PFMultiplayerStartProcessingLobbyStateChanges 函数和 PFLobbyStateChange 事件来管理大厅中的更改,例如玩家加入或离开。
另请参阅 (PlayFab)
PlayFab 文档是最佳信息来源。 将其用作主要源。 有关详细信息,请参阅以下文章。
使用多人游戏活动实现玩家邀请和加入
使用Microsoft游戏开发工具包 (GDK) 多人游戏活动 (MPA) API 和 Xbox 服务邀请玩家加入游戏涉及使用各种 API 函数的多步骤过程。
- 初始化 Xbox 服务:确保在游戏中正确初始化 Xbox 服务。 这包括设置必要的 Xbox 服务上下文。
- 获取本地用户的 Xbox 用户 ID (
XUID
) :使用 XUserGetId 函数检索XUID
发起邀请的本地玩家的 。 这对于XUID
识别邀请者至关重要。 - 确定目标用户:确定
XUID
要邀请的玩家的。 这可以通过 Xbox 好友列表、最近的玩家列表或其他方式完成。 - 创建多人游戏活动:使用 XblMultiplayerActivitySetActivityAsync 函数创建多人游戏活动。 此活动使其他玩家能够查看玩家的活动并加入正在进行的游戏。 有关创建多人游戏活动的具体信息,请参阅 活动。
- 发送邀请:使用 XblMultiplayerActivitySendInvitesAsync 向其他玩家发送邀请,请求他们加入多人游戏体验。
- 更新活动:使用 XblMultiplayerActivitySetActivityAsync 在活动属性更改时更新信息。
- 检索活动:使用 XblMultiplayerActivityGetActivityAsync 检索其他玩家的活动,并在游戏内 UI 中显示其活动。
- 管理最近的玩家:使用 XblMultiplayerActivityUpdateRecentPlayers 更新玩家的最近玩家列表,其中包含他们与之有过有意义交互的任何玩家。
- 删除活动:当玩家结束或离开多人游戏体验时,请使用 XblMultiplayerActivityDeleteActivityAsync 删除活动。
注意
使用 MPA 大厅和邀请解决方案时, connectionString
属性很重要。 此字符串充当唯一标识符,其中包含一个玩家连接到另一个玩家所需的基本信息。 此字符串仅由游戏创建和理解,通常包含服务器 IP 地址等详细信息,但它是左自由格式,允许游戏灵活性。
当玩家启动或加入多人游戏体验时, connectionString
将传递给 XblMultiplayerActivityInfo 结构中的活动。 它作为参数传递给 XblMultiplayerActivitySetActivityAsync。 这使其他玩家能够加入正在进行的游戏。 此属性也包含在邀请中,允许玩家无缝连接。 确保 connectionString
玩家可以加入正确的会话,并促进不同多人游戏活动之间的平滑转换。
另请参阅 (GDK)
GDK 文档是最新信息的最佳来源。 有关详细信息,请参阅以下文章和示例。
-
这是一个简单的多人游戏,演示如何在游戏中使用 Microsoft Azure PlayFab 群和多人游戏C++ SDK 和 API。
-
此示例演示如何将 MPA 用于活动和邀请。