常见问题
以下是一些常见的 Matchmaker 问题以及相应的解决方案。如果您需要额外支持,请联系技术支持团队。
轮询工单状态时收到“Max Capacity Reached(已达到最大容量)”错误。
这是 Multiplay Hosting 中的常见错误。此错误是 Multiplay Hosting 机群的扩展设置所致。请增加机群中可用服务器数量的上限值,然后重试。
此外,请确保 DGS 能够正常终止,以便解除分配。通过 Unity Cloud Dashboard 手动停止服务器时,服务器有时会无法正常解除分配。
轮询工单状态时收到分配超时提示,但 Multiplay Hosting 中仍分配有服务器。
如果针对池或队列设置的超时低于 2 分钟,则可能会发生这种状况。请增大超时值,然后重试。
每次轮询工单状态时都会收到分配超时提示。
如果在开发期间的低流量环境中进行测试,则可能会发生这种情况。造成这种情况的一些常见原因有:池中的规则过度受限,或者创建的工单具备不同属性且面向不同的池。
轮询工单状态时收到工单与配置不兼容的提示。
此错误通常意味着 Matchmaker 无法为该工单找到匹配,包括尝试将工单单独放置到空匹配时失败的情况。
造成此错误的其他常见原因包括:
- 规则要求的数据类型与工单使用的数据类型不一致。例如,均等规则要匹配数字 40,但找到的是字符串“40”。
- 工单中玩家的数量超出了为任意队伍配置的最大玩家人数。
- 即使已应用放宽并尝试将工单放置在所属的匹配中,仍至少有一条定义的规则未满足。
通过 HTTP API 创建回填工单时收到“The supplied value is invalid for Propertie(为 Properties(属性)字段提供的值无效)”错误。
如果属性中的 Data(数据)字段采用 base64 编码方式且无填充,则会出现以下错误。
例如,在 GO 中,使用 base64.RawStdEncoding.EncodeToString
,而非 base64.RawURLEncoding.EncodeToString
。
"Unexpected end when deserializing object. Path '', line 8, position 1.",
"The supplied value is invalid for Properties."
在已启用回填但服务器尚未满载的情况下,仍不断分配新服务器。
启用回填后,Matchmaker 会为符合以下条件的每个匹配创建回填工单:已达到玩家人数下限,但尚未达到玩家人数上限。为确保 Matchmaker 中的回填工单保持有效状态,DGS 需要定期进行审批。请确保服务器可在分配后 20 秒内启动并对回填工单进行审批。
尝试在本地进行测试时始终受到速率限制。
这是因为 Matchmaker 会根据玩家 ID 限制速率,而在使用 Unity Authentication 服务时,在同一台机器上运行两个客户端通常会导致两个客户端使用同一个玩家 ID。
此问题有两种解决方法:
- 构建项目,运行一个独立客户端,并在 Unity 编辑器中运行另一个客户端。独立客户端将与编辑器客户端使用不同的玩家 ID。
- 在 ParrelSync 中使用不同的玩家身份验证配置文件。
Matchmaker 最初处理第一个工单时,匹配时间很长。
如果 Matchmaker 收到工单已超过 36 小时,则处理第一个新收到的工单所需的时间可能会略有增加。然而,第一个工单匹配成功后,匹配时间应该会恢复到正常水平。
如果您的游戏正在开发中,因此 Matchmaker 上的持续流量较少,建议的最佳做法是在测试之前预热您的 Matchmaker 池。这使得 Matchmaker 有充足的时间来创建专用资源以供您的游戏无缝创建匹配。
匹配和队伍无法正常填充玩家。
首先,Matchmaker 会根据匹配配置的要求尽量将玩家人数填充到匹配和队伍要求的最低值,然后才会为队伍添加更多玩家,直至达到最大玩家人数。
Matchmaker 会将一个工单的所有玩家添加到第一个匹配队伍,然后将另一个兼容工单的所有玩家添加到第二个队伍,以此类推,直至达到最低玩家人数。然后,Matchmaker 会添加工单,以确保队伍平衡,直至匹配满员或达到放宽玩家人数。
错误消息参考
类别 | 错误消息 | 描述 |
---|---|---|
工单 | 已达到最大容量 | 这是 Multiplay Hosting 中的常见错误,由 Multiplay Hosting 机群的扩展设置引起。请增加机群中可用服务器数量的上限值,然后重试。此外,请确保 DGS 能够安全终止,以便正常解除分配。通过 Unity Cloud Dashboard 手动停止服务器时,服务器有时会无法正确解除分配。 |
工单 | 工单与配置不兼容 | 出现此错误的原因通常是 Matchmaker 无法为工单找到匹配,即使将该工单单独放置在空匹配中也没有成功。 |
工单 | 工单与匹配定义不兼容。 | 如果提供的工单与工单所分配池中定义的规则无法匹配,则会出现此错误。出现这种情况的原因可能是工单中的玩家人数超过了单个队伍中的玩家人数,或无法满足不采用放宽的均等规则等。 |
工单 | 队列 {QUEUE_NAME} 在 upid 为 {UPID} 且 env 为 {ENV_ID} 的配置中不存在。 | 如果工单面向项目中不存在的队列,则会出现此错误。请验证队列名称。 |
工单 | 错误:“属性”:[“{ERROR DETAILS}”] | 此错误消息包含 Matchmaker 尝试解码属性失败的详细信息。请验证属性正确无误。 |
工单 | 错误:“玩家”:[“{ERROR DETAILS}”] | 此错误消息包含 Matchmaker 尝试解码玩家失败的详细信息。请验证玩家正确无误。 |