测试人员在两台设备上看到不同画面帧率,若直接把它写成“物理更新频率也不同”,就可能把两个节拍混在一起。Godot 4.3简体中文文档《空闲处理与物理处理》明确区分了两种帧循环处理方式。[1] 对游戏开发服务而言,这一区分能帮助读准玩法问题报告中的观察对象。

文档介绍,Node提供_process()与_physics_process()两个虚方法。空闲处理用于每帧更新,调用频率取决于应用的实际帧率,可能随时间变化,也可能在不同设备间不同。物理处理则按尽可能固定的间隔执行,文档所述默认值为每秒六十次,并且该节拍不由游戏实际画面帧率直接决定。

因此,测试表中的“帧率”需要带上名称。它是画面绘制速度、空闲回调次数,还是物理迭代频率?前两项的变化不能单独证明第三项按相同比例变化。这里描述的是文档中的处理模型,并非承诺实际项目在任意负载下都能够精确保持某个次数。

参数delta又回答不同问题。原文将_process()的delta解释为距离上一次调用所经过的秒数,用来支持与帧率无关的计算。次数与两次调用间隔虽然有关,却不是可互换的字段;只统计回调次数而不说明测量时间,也不足以完整表达一次测试。本文解释参数含义,不提供代码改造方案。

文档还说明,_process()并不与物理处理同步,在单线程游戏中于物理迭代后执行。这个单线程限定需要保留,不能把它当作所有项目、所有线程模型下完全相同的执行顺序。涉及与世界发生碰撞的角色移动等行为,原文放在物理处理的讨论中;本文没有据此替未知游戏决定实现方式。

整理玩法差异时,可以分别留下引擎版本、项目已确认的处理设置、画面帧率观察和具体问题发生时间。若只知道画面较慢,就如实保留这个现象,再请求对应逻辑层的证据,而不是补写“物理已失常”。这是一种问题描述方法,没有进行真实项目性能测试或保证碰撞结果。

本稿仅采用固定Godot 4.3页面已完整读取的正文,未把其庞大导航中的其他教程标题视为已阅读资料,也不以页面的“Up to date for Godot 4.3”说明推断最新版本。把渲染与物理各自的节拍说清,才能让后续玩法验证围绕同一对象展开。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。