如何在MMORPG游戏中添加匹配系统

如何在MMORPG游戏中添加匹配系统
如何在MMORPG游戏中添加匹配系统
如何在MMORPG游戏中添加匹配系统

关键洞察

关键洞察

关键洞察

Edgegap 的 匹配系统 是一个完全托管、无限自定义的匹配系统,能够优化全球玩家的分组——在开发你的休闲多人游戏期间使用是免费的。

这也是我们所知道的 唯一 拥有 基于延迟的匹配规则 的匹配系统,能够为你的游戏提供理想的在线多人体验,无论使用何种引擎(Unity、Unreal 等)或游戏服务(EOS、UGS、PlayFab、Heroic Labs Nakama、Braincloud 等)。

由于我们的匹配系统基于参数,因此无需编写代码。集成非常简单,如果需要,我们的 入门指南 将在每一步中指导你。

当你的游戏上线时,由于我们的匹配系统是完全托管的,你无需处理基础设施、错误、停机、可扩展性或数据库管理。我们会为你处理所有的事情。将你的 DevOps 工作负载减少到几乎为零。

如何将对局配对集成到您的MMORPG多人游戏中

-> 本文基于對局配對文档。如果您遇到问题或不一致,请确保参考原始指南,因为它们更频繁地更新。

以下示例将帮助您测试核心对局配对玩家流程,即:

  • 在共享的托管集群上创建对局配对实例,

  • 在您的对局配对配置中定义规则和设置,

  • 最后,使用我们的玩家票API测试玩家流程并管理。

实施我们的对局配对到您的游戏中共有五个步骤

  1. 第一步是创建一个账户并使用我们的MMORPG游戏示例。好了,你(技术上)已经完成一半了!您只需在游戏中集成对局配对(参见步骤5)。

  2. 现在,您不应该盲目遵循在互联网上找到的JSON示例,因此强烈建议根据上面的规则调整到您的回合制游戏。步骤2 (“探索配置”) 是我们的“如何阅读”指南,详细介绍了每个对局配对规则功能(“探索配置”)。

  3. 步骤3 (“审查实例详情”) 涉及您的个人,特定于对局配对的细节以确保其部署并与您的游戏设计配合。

  4. 步骤4,顾名思义(“4. 测试票API”),全部是关于测试玩家的对局配对请求是否被对局配对接受,称为

  5. 步骤5 (“在您的游戏中集成对局配对”) 强调如何在引擎项目中集成对局配对。

如果您有故障排除问题,我们的深入学习中心有更多故障排除提示。

1. 设置免费层

注册您的免费Edgegap账户,并导航到 对局配对仪表板页面

从那里,首先点击 创建对局配对器 然后输入:

  • 您的对局配对器的名称 - 仅供参考,例如 quickstart-dev

  • 然后,上传以下简单示例作为您的MMORPG游戏的JSON配置:

{
  "version": "2.1.0",
  "inspect": true,
  "max_deployment_retry_count": 3,
  "ticket_expiration_period": "5m",
  "ticket_removal_period": "1m",
  "profiles": {
    "custom-lobby-example": {
      "application": {
        "name": "my-game-server",
        "version": "2024.01.30-16.23.00-UTC"
      },
      "rules": {
        "initial": {
          "match_size": {
            "type": "player_count",
            "attributes": {
              "team_count": 1,
              "team_size": 4
            }
          },
          "lobby_id": {
            "type": "string_equality"
          }
        },
        "expansions": {}
      }
    }
  }
}

(温馨提示,请确保将应用程序的 名称 和 版本 更改为符合您的 应用程序和版本!)

如果没有验证错误出现,点击 创建并启动 并等待过程完成。这将导致启动一个新的免费集群,搭配上您的简单示例对局配对器。

您现在可以进行下一个步骤。

2. 探索配置&​>

独特的多人MMORPG游戏规则

自定义大厅(私人大厅,沙盒关卡)是沙发多人游戏的非常受欢迎的选项,同时也在竞争或合作游戏中测试新功能,进入主要游戏模式之前。通常这些游戏需要最少的限制,但目的是确保玩家可以组队加入

回填票可能使用自定义大厅配置文件,以支持可靠邀请好友,只要回填票是有效的。

  • 技巧:将custom-lobby-example配置文件添加到您的配置除了其他配置文件以支持自定义大厅。

语义版本控制

随着我们发布对局配对的更新,每个新版本使用 语义版本控制 通过解释格式 major.minor.patch来明确传达更改的影响:

  • major 版本包括破坏性更改,需要集成评审,

  • minor 版本包括实质性的向后兼容的改进,

  • patch 版本包括错误修复和小的改进。

一些 部署可能会导致错误。我们尝试通过自动重试部署最多 max_deployment_retry_count 次来解决此问题(无需客户端确认)。

为了确保意外的客户端崩溃或遗弃的票不会长期存在并占用您的对局配对资源,票将在 票过期期 后被取消,从而使其状态更改为 取消 ,并在 票移除期 后永久删除。

我们对局配对逻辑的核心配置在 对局配对配置文件中。每个配置文件是一个完全隔离的对局配对队列,指向 应用程序版本,具有预定义的所需CPU和内存(RAM)资源的数量。

 对局配对规则在初始规则集中必须满足,以便将玩家组合在一起,每个由三个属性定义:

  • 您选择的名称,例如 - 匹配大小

  • 规则类型,也称为操作符,例如 - 玩家数量

  • 最后是操作符属性,例如 团队数量 或 团队大小

玩家数量规则

这是一个特殊的规则,定义了需要多少玩家才能开始分配:

  • 团队数量 指的是团队数量,1个团队可用于合作或全体自由模式,

  • 团队大小 指的是每个团队的 玩家数量。

我们的简单示例演示了一个拥有2名玩家的合作游戏。

请注意“玩家数量”规则是必需的,并且只能在您的初始配置规则中定义一次

延迟规则

使用此规则为所有玩家提供最低可能的延迟。一旦客户端测量并提交他们相对于所有可用信标的往返时间(延迟),Gen2将仅考虑在特定 差异内的匹配,较之于 延迟信标。这提供了一种“软”的解决方案以分裂您的玩家基础,使得能够与邻近地区进行匹配,特别是提高较不发达地区的匹配速度。使用 最大延迟以防止与距离较远的玩家配对。

您现在可以进行下一个步骤。

我们的示例 信标 规则设置为 "difference": 50, "max_latency": 200最初:

  • 艾丽斯和鲍勃将匹配,因为北京被丢弃(>200),其余在 | A-B | < 50范围内:

    • 艾丽斯 {蒙特利尔: 12.3, 纽瓦克: 45.6, 达拉斯: 59.9, 北京: 264.4}; 和

    • 鲍勃 {蒙特利尔: 27.3, 纽瓦克: 32.4, 达拉斯: 23.1, 北京: 252.2}。

  • 查理和戴夫不会匹配,因为对达拉斯信标 | C-D | > 50:

    • 查理 {蒙特利尔: 5.7 纽瓦克: 44.2, 达拉斯: 59.5, 北京: 263.2}; 和

    • 戴夫 {蒙特利尔: 57.8, 纽瓦克: 32.0, 达拉斯: 24.2, 北京: 272.3}。

请注意“延迟规则”仅可在您的初始配置规则中定义一次

3. 审查实例详情

在初始化后,请在我们的仪表板中审查您的新对局配对器的详细信息:

状态 指示服务健康状况,可能是在线,离线,或错误。

  • 标识符 帮助Edgegap工作人员快速找到您的对局配对器,如果您需要帮助进行故障排除。

  • 开始时间 可用于追踪最后更新时间。

  • 大小 对应我们的一个 定价层

  • API URL 将由游戏客户端和游戏服务器用于与Gen2通信。

  • Swagger URL 是我们提供的一个方便的openAPI规范GUI,用于探索API架构。

  • 授权令牌 是由游戏客户端和游戏服务器用于身份验证的一个唯一秘密令牌。

要使用API测试您的新对局配对器,您将需要Swagger URL,API URL和授权令牌

您现在可以进行下一个步骤。

4. 测试票API

首先,打开您的Swagger URL来检查您的openAPI架构在swagger GUI中

点击标题下的/...swagger.json URL以打开原始JSON架构:

将此页面保存为文件到您的硬盘中(CTRL/CMD+S)。

打开您的 Postman应用程序 并登录您的免费账户。

导入您之前步骤中的 swagger.json 文件:

  • 保持 Postman集合 选择,

  • 选择 查看导入设置 并将「参数生成」设置改为 示例

确认导入,这将导致一个新的集合出现在左侧集合列表中,标题为对局配对器。

查看更多操作,打开发授权选项卡并选择:

  • 授权类型 - API键

  • 键 - “授权

  • 值 - 在此处插入您的 AuthToken 值,

  • 添加到 - 头部

按(CTRL/CMD+S)或保存图标以 保存更改。在您的Postman选项卡中,橙色点应消失。

在您的对局配对器集合中,选择  和 创建对局配对票,打开一个新选项卡。

选择 主体选项卡以预览您的 玩家票请求

请注意 玩家IP 设置为 null- 这将导致使用自动添加到您请求中的IP地址(参见 服务器到服务器集成 了解替代方案),

  • 配置文件 指的是您的 对局配对配置文件

  • 属性 包括对局配对规则的值,在这种情况下是 延迟规则,

    • 规则 玩家数量 是唯一不需要在玩家票中添加任何属性的规则。

注意:确保查看示例的Swagger的导入配置。 

点击 发送 并查看您的玩家票请求的响应:

  • id 是您的独特的对局配对票ID,保存它以便稍后检查您的票,

  • 配置文件 确认对局配对配置文件选择,

  • 组ID 被分配给每个票一个独特的组ID,单玩家表示为一个1人组成的组,

    • 参见 组队加入 了解与您的朋友或大厅进行对局配对,

  • 玩家IP 是无论使用何种识别方法,玩家的已解析公共IP地址,

  • 分配 设置为 null 以指示尚未被匹配或分配给服务器,

  • 创建于 提供关于玩家票何时创建的信息以供游戏UI使用,

  • 状态 指示票的当前状态,所有票开始于 搜索中 (参见 对局配对过程 了解详情)。

点击 发送 以创建第二张票,因此我们的两位玩家匹配,并启动一个服务器。

在您的对局配对器集合中,选择 {ticketId} 和 读取对局配对票

输入上一步骤响应中的票ID并点击 发送

查看您的玩家票的更新分配:

  • 状态首先更改为 找到匹配 ,同时保持 分配 设置为 null 以指示玩家已匹配,并正在分配一个服务器,

再次点击 发送 检查您的票,并查看您的玩家票的更新分配:

  • 状态变更为 主机已分配 ,并且 分配 包含已分配服务器的详细信息。

 在我们的仪表板中检查您新的部署

  • 注意每个部署都标记为所有票ID和配置文件,以增加可追溯性。

尝试从您的游戏客户端连接到被分配的服务器。

一旦您验证能够连接到您的部署没有问题并且测试完毕,停止您的部署 以释放您帐户中的容量为下一个构建。

您现在可以进行下一个步骤。

5. 在您的游戏中集成对局配对

Edgegap的对局配对集成:

  • 与 游戏客户端,管理 玩家票

  • 与 游戏服务器集成,以:

    • 处理通过票传递的玩家偏好,

    • 可选支持 回填 在启动后添加或替换玩家。

在 游戏客户端中,我们建议在 对局配对过程中 向玩家提供票状态更新,以提供最佳的玩家体验。参阅:

在 游戏客户端中,确保您正在处理不可重试的错误:

  • HTTP 404未找到 - 票已被删除,

  • HTTP 500内部服务器错误 - 临时服务中断。

在 游戏服务器中,处理玩家偏好和初始服务器上下文。无需API集成:

  1. 阅读 注入的环境变量(Gen2) 以检索初始玩家的对局配对数据。

  2. 阅读 注入的环境变量(应用程序版本) 获取版本特定参数、设置(玩家容量)和密钥。

  3. 阅读 注入的环境变量(部署) 获取部署信息,例如IP地址、位置或更多。

一旦玩家连接,游戏服务器和游戏客户端 启动加载场景以执行同步步骤(例如选择和加载地图/场景/关卡)。我们建议使用一个完善的3D场景,类似大厅的社交UI,或带进度条的加载屏幕,以指示初始化正在进行。

一旦 游戏客户端 完全加载,玩家加载/传送到主游戏场景。

可选的,游戏服务器 可以创建和管理 回填 和玩家容量(添加或替换离开的玩家)。

确保您的 部署将被正确停止 使用 注入的删除URL,如果:

  • 没有玩家加入匹配,

  • 所有玩家已离开匹配,

  • 匹配正确结束。

恭喜,您已完成Edgegap对局配对集成!如果您想了解更多,请阅读我们的学习中心中的所有信息。

书写者

Edgegap团队

Get your Game Online Easily & in Minutes

Get your Game Online Easily & in Minutes

Get your Game Online Easily & in Minutes