活动
此主题说明如何向其他玩家广告可加入的多玩家体验。 然后他们可以加入体验。
使用活动
当玩家开始或加入多人游戏体验时,游戏应通过创建活动在多人游戏活动 (MPA) 中播发此内容。 与基于会话的模型不同,活动是按玩家进行的。 每个玩家都应创建自己的活动,即使他们一起玩也是如此。
只要有玩家处于多人游戏体验,游戏就应创建此活动。 在该体验中,如果玩家数量增加或减少,游戏应该修改活动。 当玩家结束或离开多人游戏体验后,游戏应删除该活动。 如果游戏崩溃或因其他原因而无法删除活动,则 MPA 将在检测到玩家已停止玩游戏时尝试删除该活动。 如果活动没有更新,会在 24 小时后自动删除。
活动内容
活动包含显示在以下表格中的信息。
字段 | 用途 | 说明 |
---|---|---|
xuid |
创建活动的用户的 XboxUserId 。 |
仅限查询活动时使用。 用户只能为自己设置活动。 |
connectionString |
对 MPA 不透明的游戏定义字符串。 包含游戏可用于连接到其他玩家的信息。 | 必须少于 512 个字符。 |
joinRestriction |
表示可能在此活动中看到连接字符串的人员。 有关详细信息,请参阅本主题中稍后给出的“隐私”部分。 | 必须为 Public 、Followed 、InviteOnly 。 |
maxPlayers |
此活动中允许的最大玩家人数。 | 可选。 如果要指定,它必须大于 1 并且小于或等于 100。 |
currentPlayers |
此活动中当前的玩家人数。 | 可选。 如果要指定,它必须大于 0 并且小于或等于 100。 |
groupId |
游戏定义的 ID。 在 MPA 中,具有相同 groupId 的玩家被认为是在一起玩游戏。 |
必须少于 128 个字符,并且仅用于组标识。 |
platform |
当设置到特定平台时,限制通过邀请的 Crossplay 且仅加入到该平台。 如未设置,则允许所有定义平台间的 Crossplay。 | 有关详细信息,请参阅本主题后面的支持 Crossplay 活动部分。 |
隐私
游戏可能希望仅允许其社交图上的一部分玩家加入该玩家。 joinRestriction
字段确定其他玩家在查看此活动时是否收到连接字符串。 下表展示了值及它们的含义。
值 | 含义 |
---|---|
Public |
所有玩家均可加入此活动。 |
Followed |
如果活动创建者关注了另一位玩家,则该玩家可以加入。 |
InviteOnly |
除非回复邀请,否则任何玩家都不能加入此活动。 |
支持 crossplay 活动
在 Microsoft 游戏开发工具包 (GDK) 中创建活动时,游戏可指定 allowCrossplay
标志。
如果为 false
,Microsoft 游戏开发工具包 (GDK) 将自动用当前平台填充邀请的平台字段。 如果为 true
,Microsoft 游戏开发工具包 (GDK) 将使平台字段为 null
,表明此邀请是跨平台的。 允许 Crossplay 的平台列表由游戏配置所定义。 在此情景中,不同主机代系也视为 Crossplay。
检索活动
检索其他玩家的活动时,有时会隐藏连接字符串。 这表示该用户不允许加入此活动。 例如,由于活动的 joinRestriction
— 该活动已满员,可能会隐藏连接字符串。