Skip to main content

意图

多人游戏会话的状态——谁在其中、角色是什么、模式是什么、地图是什么——必须在整个会话生命周期内保持准确。如果状态失同步或损坏,加入的玩家会看到错误的信息,现有玩家会被丢入错误的上下文。XR-067 要求游戏在每一次合理的干扰下维护会话状态。

适用范围

每个具有多人游戏会话状态(MPSD 或现代等效项)的游戏。

要求

您的游戏必须:
  • 在每次状态转换(成员加入、成员离开、角色变更、模式变更、主机迁移)时,使 MPSD 会话状态与运行时会话保持同步。
  • 在主机断开连接时正确处理主机迁移——选举新的主机,传输权威状态,通知剩余成员。
  • 处理成员断开连接——从会话状态中删除离开的成员,通知剩余成员,如果会话现在未满,则调整可加入性。
  • 处理网络故障——如果恢复迅速,主机上的暂时性网络丢失不得导致会话崩溃。
  • 处理平台事件——注销、快速恢复、控制器变更——而不破坏其他成员的会话。
  • 在主机迁移过程中正确地持久化会话身份,以便来自当前状态的加入仍然能找到已迁移的会话。
  • 会话自然结束时(所有成员离开、游戏完成)清理会话,以免会话在 MPSD 中变为幽灵会话。
您的游戏不得:
  • 在成员之间显示不一致的会话状态。
  • 在运行时会话结束后仍允许过时的 MPSD 会话持续存在。
  • 在主机断开连接时丢弃所有剩余成员。
  • 在会话状态中虚构实际未连接的成员。

测试场景

  • 托管 4 人会话。让主机断开(拉网线)。验证主机迁移;验证剩余 3 名成员继续。
  • 让非主机成员断开连接。验证从状态中被优雅地删除。
  • 快速加入/离开会话。验证会话状态保持一致。
  • 在大厅中期更改游戏模式。验证状态传播到所有成员。
  • 在会话中期注销。验证会话状态为剩余成员更新。

最佳实践

  • 设计权威主机仲裁会话,以便存在会话状态的单一事实来源。
  • 谨慎使用 MPSD 写入——对其进行速率限制,以避免根据 XR-132 被限流。
  • 在网络故障后进行协调——重新连接时,重新读取 MPSD 状态并与运行时进行比较。
  • 限时进行主机迁移——如果在有限时间内未选举出新主机,则干净地关闭而不是挂起。

相关 XR

  • XR-064 — 可加入的会话。
  • XR-070 — 好友列表。
  • XR-074 — 连接丢失。
  • XR-115 — 游戏中添加/删除用户。
  • XR-124 — 游戏邀请。
  • XR-132 — 服务访问限制。

如果您的游戏未通过 XR-067

请参阅 FMA:XR-067 维护多人游戏会话状态

相关

最后修改于 2026年8月13日