Skip to main content
本主题介绍大型多人在线 (MMO) 游戏中的跨网络功能和流程。本主题支持 XR-007: 跨网络游戏、数据使用和伴侣应用交互 以下示例场景演示了 MMO 游戏中推荐的跨网络功能和流程。它展示了一种可能的设计和实现路径。在此场景中,游戏支持以下多人游戏功能。

开放游戏世界

游戏支持一个允许玩家之间交互的开放游戏世界。玩家能够在开放游戏世界中松散地组队,用于玩家对环境 (PvE) 体验。玩家对玩家 (PvP) 体验为一对一,并且仅在选定区域允许。

实例化游戏部分的自定义匹配

游戏为进入实例化 PvP 或 PvE 游戏部分的玩家实现自定义匹配服务。此服务将玩家和玩家队伍进行匹配。

专用服务器

该游戏的所有游戏运行在专用服务器上。所有流量都通过这些服务器路由。

聊天

游戏支持玩家之间的语音和文本聊天。所有流量都通过服务器路由。

消耗品

游戏提供带有可购买(高级)游戏内货币的游戏内商店。玩家可以使用此货币购买装饰性物品。

可下载内容 (DLC)

可购买的可下载内容 (DLC) 包括解锁新玩家角色类的新游戏区域。

游戏服务

在此示例中,玩家启动游戏后与之交互的第一个游戏服务是游戏登录服务。要玩游戏,玩家必须创建游戏账户,然后将其链接到 XBOX Live 账户。您可以在游戏内或游戏网页上创建账户。 对于账户链接,玩家的 XUID 链接到特定于游戏的账户。要执行账户链接,玩家在游戏中使用游戏账户的用户名和密码登录一次。使用 XUID 访问必须事先经过批准,并且必须与开发者账户经理 (DAM) 讨论。在游戏的网页上,已经使用游戏账户登录的玩家还必须登录 Microsoft 账户以进行账户链接。游戏账户具有唯一 ID (GUID),使所有游戏服务都能处理玩家,无论其来自哪个网络。游戏账户还存储所有玩家状态信息,例如玩家角色、进度、库存和所有玩家元数据。

游戏流程

对于 MMO 游戏,跨网络功能的合规流程取决于玩家是在开放游戏世界还是在实例化游戏中。以下步骤在所有情况下均适用。
  1. 验证特权 玩家登录后,游戏为活动玩家验证多人游戏特权(254 和 189)和跨网络特权 (185)。如果任何特权被拒绝,则玩家无法进入游戏,并显示错误对话框。此时,游戏应检查通信特权 (252) 以适当地限制语音和文本聊天功能。
  2. 跨网络通知 首次启动时,游戏通知玩家游戏中存在跨网络功能。 以下步骤适用于开放游戏世界。
  3. 进入开放游戏世界。 玩家在登录游戏时始终进入开放游戏世界,然后连接到游戏服务器。
  4. 加入开放游戏世界多人会话目录 (MPSD) 会话。 开放世界游戏的游戏服务器创建反映开放游戏世界中游戏区域的 MPSD 会话。这些 MPSD 会话中的一个或多个启用了游戏功能。所有 XBOX Live 玩家都加入其游戏区域的开放游戏世界会话。服务器维护有关 XBOX Live 玩家和不使用 XBOX Live 的玩家的信息。开放游戏世界会话允许 XBOX Live 玩家进入进行中的游戏和邀请,只有在服务器不接受来自客户端的新连接时才设置为关闭。
  5. 启用开放游戏世界游戏玩法。 与其他玩家的游戏功能可用,取决于玩家特权。对于具有通信特权设置的玩家,全球文本聊天始终启用。所有文本聊天消息使用字符串验证服务和屏蔽列表来过滤冒犯性语言和术语。玩家名称也使用相同的验证。
只有在验证所有必需的隐私和权限检查后,才允许所有玩家(XBOX Live/XBOX Live 和 XBOX Live/不使用 XBOX Live 的玩家)之间的直接文本聊天。对于不使用 XBOX Live 的好友关系,游戏使用特定于游戏的好友关系。 游戏服务跟踪 XBOX Live 玩家之间的直接交互,并用于在开放游戏世界 MPSD 会话中设置这些玩家之间的相遇 ID。这确保玩家在彼此的最近玩家列表中可见。

实例化 PvE 或 PvP 游戏玩法

以下步骤适用于实例化 PvE 或 PvP 游戏玩法。
  1. 组 MPSD 会话。 对于 XBOX Live 玩家,游戏创建 MPSD 会话来跟踪 XBOX Live 玩家。不使用 XBOX Live 的玩家通过游戏服务进行跟踪。
  2. 组邀请和进行中加入。 在此示例中,游戏设计将加入或邀请限制为玩家组。组 MPSD 会话用于支持 XBOX Live 玩家的进行中加入和邀请。游戏内跨网络邀请由游戏服务支持。
  3. 组匹配。 游戏支持组 PvP 或 PvE 匹配流程的跨网络多人游戏。在此示例中,玩家使用匹配 UI 选择 PvP 或 PvE 体验,然后与其他玩家一起分组进入实例化游戏体验。
  4. 创建并加入游戏 MPSD 会话。 组匹配的结果是由匹配服务通过服务到服务调用 XBOX Live 创建的 MPSD 大厅会话。所有 XBOX Live 玩家加入此游戏会话,并在实例化游戏期间保留在此会话中。服务使用自定义属性额外提供有关会话中不使用 XBOX Live 的玩家的提示。这些提示可供客户端逻辑在流程其余部分设置会话状态时使用。
  5. 实例化游戏玩法。 当所有玩家准备就绪时,实例化游戏开始。在此示例中,还通过专用服务器在 XBOX Live 玩家之间启用聊天。在实例化游戏期间,游戏 UI 中可见玩家列表。此列表是游戏角色名称列表,可选择查看其他多人网络玩家的玩家标签或其他网络标识符。XBOX Live 玩家被唯一突出显示。以下屏幕截图显示此组 UI 的示例。
  6. 完成游戏。 实例化游戏完成后,队伍玩家返回开放游戏世界。玩家离开 MPSD 游戏会话并将开放游戏世界 MPSD 会话设置为活动会话。

会话管理

为了遵守所有 XBOX 要求,游戏为 XBOX Live 玩家创建两个 MPSD 会话。

开放游戏世界区域游戏会话

游戏服务在启动时创建一个大型 MPSD 会话。每个游戏服务器实例通过对 XBOX Live 的服务到服务调用创建。游戏服务器实例的所有玩家加入相应的 MPSD 会话。在这些会话中,服务器为相互交互的 XBOX Live 玩家设置相遇 ID,以确保在最近玩家列表中正确显示。

实例化游戏会话

此会话由匹配服务通过对 XBOX Live 的服务到服务调用创建。它包含游戏会话中所有 XBOX Live 玩家(跨队伍)的预留。它用于正确填充 XBOX Live 玩家的最近玩家列表。

组会话

一旦玩家创建组(1 人组),就会创建此会话。它用于活动会话以支持进行中加入和邀请。根据游戏设计,玩家在某些游戏模式下无法加入。在这些模式下,使用 closed 属性禁用进行中加入和邀请。 不使用 XBOX Live 的玩家不直接作为会话成员出现在 MPSD 会话中。为了跟踪目的,游戏在自定义会话属性中反映其存在,如下面的代码示例所示。
此列表和 XBOX Live 会话成员也可用于确定服务器实例是否已满。大型 MPSD 会话必须启用游戏功能以遵守 XBOX 要求。

玩家屏蔽、静音和举报

游戏中的玩家屏蔽和静音在游戏级别支持。

XBOX Live 玩家屏蔽和静音

游戏使用 XblPrivacyBatchCheckPermissionAsync 检查与其他 XBOX Live 玩家以及不使用 XBOX Live 的玩家类别/不使用 XBOX Live 的好友进行多人游戏和聊天的特权。玩家可以在他们的玩家个人资料 UI 中执行屏蔽和静音。

屏蔽和静音不使用 XBOX Live 的玩家

游戏使用游戏内屏蔽列表来支持屏蔽或静音不使用 XBOX Live 的玩家。此列表在游戏服务上维护,并针对多人游戏权限进行检查。必须能够通过自定义游戏 UI 在游戏中静音不使用 XBOX Live 的玩家。

XBOX Live 玩家举报

游戏还允许举报玩家。对于 XBOX Live,玩家通过个人资料 UI 提交举报。XBOX Live 强制执行处理玩家举报。

举报不使用 XBOX Live 的玩家

对于不使用 XBOX Live 的玩家,游戏提供自定义举报 UI 流程。游戏相应地处理玩家举报,并根据其他多人网络的准则处理玩家举报。

Microsoft Store

XBOX Live 和其他多人网络上虚拟货币的购买在游戏服务上跟踪,该服务依赖于以下条件。

虚拟货币

玩家在所有平台上拥有合并的虚拟货币和物品钱包。

DLC

DLC 为玩家提供访问游戏新区域的方式。Microsoft Store 用于 XBOX Live 平台上的购买。玩家只能进入相应的 DLC 区域,并与其相应商店中拥有该区域权利的其他角色一起游玩。

成就

游戏成就基于开放游戏世界和实例化游戏动作。成就进度包括跨网络游戏体验。游戏不包含任何仅限于跨网络游戏的成就。

玩家进度

玩家进度在所有游戏版本之间共享。为此使用链接到多个多人网络的自定义游戏账户和自定义游戏服务。

Game DVR 和广播

游戏在开放游戏世界和实例化游戏中允许 Game DVR 和屏幕截图,但会从图像缓冲区中删除所有文本聊天。

排行榜

游戏不支持排行榜。
最后修改于 2026年8月25日