Skip to content
房间匹配机制

房间匹配机制

阅读本文大概需要 5 分钟。

玩家加入游戏,玩家的设备会作为客户端自动连接至服务器中,而这个服务器,就可以视为一个游戏房间。玩家进入游戏时是如何匹配到房间的?玩家怎样进入一个指定的房间?本章节将详细介绍房间的匹配机制。

1. 房间人数设置

1.1 房间玩家数量上限

作为服务器房间,设置房间的玩家人数上限可以让服务器的资源和性能获得更合理的分配,保证服务器的稳定运行。房间的最大人数可以根据游戏的类型灵活的在编辑器内进行设置。

点击编辑器右上角的设置按钮可以打开游戏的设置界面。

6c6352ad-3bba-471b-adc9-7a5ace15ee0d

房间设置 中,可以设置房间允许容纳的最大人数。

image-20240919151408158

1.2 服务器预留玩家数量

服务器预留玩家数量是一个服务器房间内预留的位置,预留位置主要用于应对下面这些情况:

  • 好友邀请玩家进入游戏房间
  • 玩家跟随好友进入游戏房间
  • 从游戏房间列表选择房间进入游戏

如果存在预留的位置,可以确保玩家在上述情况时能够成功进入游戏。

预留玩家数量同样可以在设置页面开启并设置人数。

image-20240919152018430

预留玩家数量受到 玩家数量上限 的影响,玩家数量上限没增加5,预留玩家数量可增加1,例如:

  • 玩家数量上限为5,则预留玩家数量最大可设置为1
  • 玩家数量上限为10,则预留玩家数量最大可设置为2
  • 玩家数量上限为25,则预留玩家数量最大可设置为5

当设置 玩家数量上限 为25,服务器预留玩家数量 为5时,这时候正常流程进入游戏的玩家只会有20个。剩余的预留位置需要通过 好友邀请 进入。

2. 加入房间的基础流程

2.1 引擎版本和游戏版本

玩家进入游戏时,会优先检查玩家当前的引擎版本和游戏的最新版本,并找到服务器中符合引擎版本和游戏版本的房间。如果服务器没有对应的房间,则会建立一个对应引擎版本和游戏版本的新房间。

TIP

引擎版本差异:可能会由于用户设备或引擎灰度更新等原因导致引擎版本不同。

游戏版本差异:创作者更新游戏或进行AB实验时会导致线上游戏出现不同的版本。

2.2 房间查找与匹配规则

如果当前游戏存在符合的房间列表,会按照下面的优先级进行分配。

  1. 找好友房间:

    找到当前玩家是否有好友正在玩该游戏,如果有且好友所在的房间可以加入,则匹配到这个房间。

  2. 找人数更多的房间:

    在当前的房间列表中找到有空位且人数最多的3个房间,在这些房间中找到最新创建的房间进行匹配。

  3. 没有找到可加入的房间:

    如果没有找到现存可加入的房间,则会创建一个新房间。

房间匹配跳转.drawio

房间不可加入可能有如下情况:

  • 房间人数已满
  • 房间开启了服务器预留玩家数量,且已达到不包含预留人数的最大人数。
  • 房间的游戏版本/引擎版本/地区范围和玩家的不匹配

2.3 匹配失败的情况

玩家可能由于一些原因加入房间失败。当出现匹配加入失败的情况时,会弹出相关的匹配失败提示及原因。

  • 进入游戏失败的常见错误码
错误码
信息出现原因
996资源下载失败或超时由于网络不稳定导致资源下载失败,重新进入游戏即可。
998连接网关失败通常在编辑器测试时出现,可能是由于端口被占用导致,可以通过重启电脑或终止占用端口的进程解决。
1016用户引擎没有找到可用的游戏版本游戏审核被拒的情况会找不到可用的游戏版本,审核通过后可以继续测试。

问题反馈

如果出现无法解决的进入游戏失败的错误码,可以在论坛联系技术支持团队进行反馈解决。