文档

支持

Matchmaker

Matchmaker

Matchplay:Matchmaker 和 Multiplay 样本

Explore the Matchplay sample project to learn how Matchmaker works with Multiplay Hosting in a complete game.
阅读时间7 分钟最后更新于 18 天前

Matchplay 样本演示如何创建 **Matchmake(匹配)**按钮:一种基本的网络化客户端-服务器游戏,匹配功能全程使用 Unity 引擎和云服务 SDK。

功能

  • Matchmaking Ticket Config(匹配工单配置):玩家根据喜好设置地图和游戏模式偏好。
  • Matchmaking(匹配):玩家单击 **Matchmake(匹配)**按钮,开始寻找匹配。
  • Matchmaker Allocation Payload(Matchmaker 分配有效负载):服务器获取匹配的相关信息并对服务器进行相应配置。
  • Multiplay Server Allocation(Multiplay 服务器分配):启动专用的云服务器并将其信息传递给玩家。
  • Client Server Netcode(客户端服务器网络代码):可在 Multiplay Hosting 上托管的轻量级服务器。

项目概况

项目可以在客户端中运行,也可以在服务器模式和本地服务模式中运行。服务器会尝试查找服务,限时 5 秒钟;如未找到,则会启动针对本地测试进行某些默认设置的服务器。客户端可以使用本地主机 IP 地址直接连接该服务器。

场景

  • bootStrap:样本必须在此场景中才能正常运行。
  • mainMenu:向用户显示 **matchmake(匹配)**和 **local connection(本地连接)**按钮。
  • game_lab:游戏场景,其中有一张桌子。
  • game_space:游戏场景,是一个球体。

以客户端形式运行

在以下场景中,项目以客户端形式运行:
  • 您在 bootStrap 场景编辑器中运行 Matchplay 项目。
  • 您在首选平台上运行非服务器版本。
  • 您在 bootStrap 场景中运行 ParrelSync 克隆项目,参数字段为“client”。
客户端既可以通过 Matchmaker,也可以通过本地连接来连接 UI。 服务未经设置前,Matchmaker 无法运行。请遵循样本设置指南对其进行设置。

以服务器形式运行

在以下场景中,项目以服务器形式运行:
  • 您在首选平台上运行服务器版本。
  • 您在 bootStrap 场景中运行 ParrelSync 克隆项目,参数字段为“server”。
  • Multiplay Hosting 会在 Matchmaker 找到匹配后自动运行服务器。
根据运行环境,服务器可能会从 Matchmaker 获取其配置,也可能使用默认值。

使用 ParrelSync 在本地测试 Netcode

要使用 ParrelSync 在本地测试 Netcode,请执行以下操作:
  1. 转到顶部栏并选择 ParrelSync > Clones Manager(克隆管理器)> Add new Clone(添加新的克隆)。此操作会复制项目文件夹并同步其内容,以便迭代测试。
  2. 在参数字段中输入“server”,以便克隆项目以本地服务器模式运行。
  3. 服务器启动后,返回到基础项目并选择 Play(运行)
  4. 加载 mainMenu 场景后,选择 local(本地)和 Play(运行),以连接本地服务器。

云项目和组织

要使用 Unity Multiplayer 服务,您需要为项目设置云 Organization ID。遵循如何创建新组织指南来创建组织。 要了解如何将项目连接到服务,请按照设置项目服务指南中的步骤操作。

服务

身份验证

Matchmaker 和 Multiplay 通过 Unity Authentication 2.0 进行凭据验证。该样本使用 Unity Authentication 的匿名登录功能为每位玩家创建唯一的半永久凭据,而不需要开发者维护永久帐户。

Matchmaker

Matchmaker Service 支持玩家搜索偏好设置相同的玩家并与其匹配。 Matchmaker 文档包含代码样本以及该服务的其他信息,其中包括有关如何将 Matchmaker 与其他代码样本搭配使用的完整详情,可以帮助您更好地了解 Matchplay 样本。 Unity Dashboard 中管理 Matchmaker Service。

Multiplay Hosting

Multiplay Hosting Service 在云中托管游戏服务器,借助出色的 ping 性能让世界各地的玩家能够轻松互联。 Multiplay Hosting 文档包含代码样本以及该服务的其他信息,其中包括有关如何将 Multiplay Hosting 与其他代码样本搭配使用的完整详情,可以帮助您更好地了解 Matchplay 样本。 Unity Dashboard 中管理 Multiplay Hosting Service。

样本设置指南

  1. 根据云项目和组织中的说明,将编辑器项目链接到云项目。
  2. 要构建服务器,请转到 Matchplay 项目并选择 BuildTools > Linux Server(Linux 服务器) 这样可以自动将项目构建为服务器版本并输出:
    <project root>/Builds/Matchplay-<platformBuildType>_<dateTime>
  3. 将服务器上传到 Multiplay 并配置服务器托管。转到 Unity Dashboard > Multiplay Setup Guide(Multiplay 设置指南)> Create a build(创建版本)
  4. 填写 **Details(详细信息)**字段并转到 Upload Files(上传文件)。将您的 Linux Headless 版本拖到拖动框中,然后选择 Upload Files(上传文件)
  5. 接下来设置版本配置。填写字段,在游戏服务器可执行文件字段中输入 Matchplay.x86_64
  6. 选择 SQP 查询类型,并填写以下自定义启动参数:
    -ip 0.0.0.0 -port $$port$$ -queryPort $$query_port$$ -logFile $$server_log_dir$$/matchplaylog.log
  7. 要创建机群,请输入机群名称并选择之前创建的版本配置。对于扩展设置,请选择 1 作为最小值,5 作为最大值。这样,Multiplay Hosting 机群就准备就绪了。

Unity Matchmaker

服务器机群准备就绪后,我们可以选择 Matchmaker Setup Guide(Matchmaker 设置指南),以便设置 Matchmaker。由于样本已集成到该项目,单击 **Integrate Matchmaker(集成 Matchmaker)**即可获取该指南。
  1. 选择 **Create Queue(创建队列)**并为队列输入名称。队列名称必须包含 1 - 36 个字符,且仅可使用字母、数字和连字符。
  2. 将队列命名为“casual-queue”并将工单中玩家人数最大值设置为 10。
  3. UDash 中定义的确切字符串队列名称必须要与以下 SDK 样本中的输入字符串匹配。
  4. 要创建池,请选择之前创建的 Multiplay Hosting 机群和版本配置。将超时时间设置为 15 秒。

匹配规则

匹配规则是指在样本中用来根据偏好设置匹配玩家的过滤器。在池和队列中,每位玩家的设置都会对照其他玩家进行评估。 要设置匹配定义规则,请执行以下步骤:
  1. 设置玩家所在地区。该地区应该与服务器机群所在的地区一致。
  2. 设置基础队伍定义并跳过高级规则。
  3. 选择 Finish(完成),完成对 Matchmaker 的配置。
现在您应该可以在 Unity 编辑器中运行项目并使用 **Matchmake(匹配)**按钮查找匹配,连接到 Multiplay Hosting 服务器,然后等待更多玩家加入。 借助 **Matchmake(匹配)**按钮,您可以使用 ParrelSync 或多个版本将多人连接到相同服务器。