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”。
以服务器形式运行
在以下场景中,项目以服务器形式运行:- 您在首选平台上运行服务器版本。
- 您在 bootStrap 场景中运行 ParrelSync 克隆项目,参数字段为“server”。
- Multiplay Hosting 会在 Matchmaker 找到匹配后自动运行服务器。
使用 ParrelSync 在本地测试 Netcode
要使用 ParrelSync 在本地测试 Netcode,请执行以下操作:- 转到顶部栏并选择 ParrelSync > Clones Manager(克隆管理器)> Add new Clone(添加新的克隆)。此操作会复制项目文件夹并同步其内容,以便迭代测试。
- 在参数字段中输入“server”,以便克隆项目以本地服务器模式运行。
- 服务器启动后,返回到基础项目并选择 Play(运行)。
- 加载 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。样本设置指南
- 根据云项目和组织中的说明,将编辑器项目链接到云项目。
-
要构建服务器,请转到 Matchplay 项目并选择 BuildTools > Linux Server(Linux 服务器)。
这样可以自动将项目构建为服务器版本并输出:
<project root>/Builds/Matchplay-<platformBuildType>_<dateTime> - 将服务器上传到 Multiplay 并配置服务器托管。转到 Unity Dashboard > Multiplay Setup Guide(Multiplay 设置指南)> Create a build(创建版本)。
-
填写 **Details(详细信息)**字段并转到 Upload Files(上传文件)。将您的 Linux Headless 版本拖到拖动框中,然后选择 Upload Files(上传文件)。

- 接下来设置版本配置。填写字段,在游戏服务器可执行文件字段中输入 Matchplay.x86_64。
-
选择 SQP 查询类型,并填写以下自定义启动参数:
-ip 0.0.0.0 -port $$port$$ -queryPort $$query_port$$ -logFile $$server_log_dir$$/matchplaylog.log
-
要创建机群,请输入机群名称并选择之前创建的版本配置。对于扩展设置,请选择 1 作为最小值,5 作为最大值。这样,Multiplay Hosting 机群就准备就绪了。

Unity Matchmaker
服务器机群准备就绪后,我们可以选择 Matchmaker Setup Guide(Matchmaker 设置指南),以便设置 Matchmaker。由于样本已集成到该项目,单击 **Integrate Matchmaker(集成 Matchmaker)**即可获取该指南。- 选择 **Create Queue(创建队列)**并为队列输入名称。队列名称必须包含 1 - 36 个字符,且仅可使用字母、数字和连字符。
-
将队列命名为“casual-queue”并将工单中玩家人数最大值设置为 10。

-
UDash 中定义的确切字符串队列名称必须要与以下 SDK 样本中的输入字符串匹配。

- 要创建池,请选择之前创建的 Multiplay Hosting 机群和版本配置。将超时时间设置为 15 秒。

匹配规则
匹配规则是指在样本中用来根据偏好设置匹配玩家的过滤器。在池和队列中,每位玩家的设置都会对照其他玩家进行评估。 要设置匹配定义规则,请执行以下步骤:- 设置玩家所在地区。该地区应该与服务器机群所在的地区一致。
- 设置基础队伍定义并跳过高级规则。
- 选择 Finish(完成),完成对 Matchmaker 的配置。
