跳到主要内容

多人调试解析

模拟多人调试

星火编辑器做的游戏自带服务器,非常适合多人游戏。但是在过去一段时间,多人游戏的调试一直有一定的门槛:开发者需要有多个设备,还无法比较方便的查看日志。

本次更新我们为开发者提供了『模拟多人调试』功能,可以进行最多4个玩家的模拟多人调试。

此外,还可以通过设置『延迟连入时间』来模拟不同加载速度的玩家体验。

开始调试后,可以通过点击调试顶部的『暂停』,这一动作将直接触发『玩家-断线』事件

在『暂停』状态下,点击恢复,这一动作将直接触发『玩家-重连』事件

虽然以上功能可能无法完美的复刻实机的复杂环境,但是应该可以帮助开发者更简单的编写出更为可靠的断线重连逻辑。

此外,客户端的日志会自动带上玩家编号,方便开发者理解『一局多人游戏,只有一个服务端,但是有多个客户端』的基本逻辑。

提示

使用多人调试时若出现类似于『未找到玩家[2]的玩家信息』,则需要去『数据编辑器-地图设置』里为玩家2添加一下调试时的ID。
玩家1默认ID已有,是100。

后续更新中对模拟多人调试的优化(11版本)

多人调试配置界面不再显示非真人槽位

多人调试槽位在过去会显示电脑槽位,但激活后却不会产生任何效果,为了避免误导,我们将在多人测试配置界面隐藏非真人槽位。

自动调试启用

在过去,即使是真人槽位,也需要在玩家队伍配置界面勾选了『调试启用』勾选框后才能正确启动调试,否则对应的槽位不会有任何效果,这一行为经常令用户感到困惑。今后,在多人调试配置界面加入未勾选『调试启用』的玩家槽位时,现在可以自动激活该槽位的『调试启用』状态。

『调试填充AI』与『所有玩家连入并开始时』

『调试填充AI』与『所有玩家已连入并且游戏开始时』都是在过去就存在的槽位功能与触发器事件,部分用户可能会困惑于在多人调试功能加入后,这两个功能会如何与多人调试功能结合——为此,我们在这里特别对这三个功能的组合情况进行说明:
『调试填充AI』功能代表对应槽位会在调试模式下被AI所填充,这会给该槽位带来以下属性

  • 在游戏一开始,该槽位就会被视为『已连入』
  • 在服务端对该玩家使用『玩家的控制者』函数取其控制者类型,会返回『AI』,而非『真人』
  • 举例而言,若玩家配置中有四个真人槽位玩家,其中两个槽位勾选了『调试填充AI』,那么只要剩下两个玩家连入,即视为『所有玩家连入』。
  • 『调试填充AI』仅对为开启『调试启用』的真人玩家有效,而对于电脑玩家或已『调试启用』的玩家,玩家设置界面该选项会变灰。

『所有玩家连入并开始时』事件只会在所有玩家槽位都已被连入且游戏开始事件已经发生后触发。

  • 『调试填充AI』的槽位在调试模式下,会永远视为『已连入』
  • 『玩家连入』事件的时机视乎游戏模式和网络连接速度而定,单个的『玩家连入』事件有可能发生在『游戏开始』事件之前或之后。
  • 『随进随出』模式的游戏,玩家可以中途加入到游戏局里。但即使是非『随进随出』模式的游戏,玩家也有可能因为网络连接和加载速度的问题,在游戏开始后才连入服务器。
  • 在『项目设置』窗口中,用户可以查看或修改服务器的等待开始游戏时间,服务器会在这段时间内等待玩家连入,若所有玩家都已经在这段时间内连入,服务器会直接引发『游戏开始』事件。一旦超过这个时间,即使仍有玩家未连入,服务器也会引发『游戏开始』事件。这个时间的默认值为2秒。
  • 在实机模式(非调试模式)下,『调试填充AI』选项不会生效,这些槽位的玩家需要全部连入才会引发『所有玩家连入并开始时』事件。
  • 需要特别注意的是:在实机模式下,后台配置的游戏模式不会影响『所有玩家连入并开始时』事件。例如,如果一个游戏模式设置了最大玩家数量为2,但玩家配置中设置了4个真人槽位,服务器依然会等待全部4个真人槽位填满后才会判定『所有玩家连入』,这意味着在该游戏模式下,『所有玩家已连入并且游戏开始时』事件不可能生效。对于使用多个游戏模式且各模式开放槽位数量不同的用户,应当分别使用玩家连入事件和游戏开始事件自行编写游戏开始流程逻辑,不应当使用『所有玩家已连入并且游戏开始时』事件。