游戏开发中的“嘀嗒”是什么?

好,所以这是一个非常初学者的问题,但我需要知道这一点,术语“嘀嗒”在游戏开发中是指什么? 这与FPS是一回事吗? 谢谢!

刻度是时间的度量单位,具体而言,它指的是游戏中重复动作(通常是广义动作)的单个实例,或者动作消耗的时间段。

嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀嘀 这个词来自时钟发出的一个声音(“tick”和“tock”)。

通常情况下,tick是某个循环的迭代,比如主游戏逻辑循环。 例如,人们可以说,游戏逻辑一旦“打勾”一帧,或者“在打勾期间,字符位置被更新”。

但是它也可以指更精细的时期; 人们可以说“游戏中的AI勾号限制在5ms的处理时间”。

FPS是一秒钟内游戏处理多less帧(通常是渲染帧)的度量。 蜱和FPS不一定是相关的,然而有时候人们会把游戏逻辑循环的一次执行称为“逻辑框架”,在这种情况下,(逻辑)FPS速率将是每秒钟处理的滴答数。 对于无论什么原因强制执行游戏逻辑或物理学固定帧速率的游戏,这种情况尤其常见。

大多数游戏都是在循环中实现的。 就像是

 def main setup(a, bunch, of, stuff) load(a, bunch, of, stuff) while true do { // <- A tick starts here read(a, bunch, of, inputs) call(a, bunch, of, stuff) do(a, bunch, of, stuff) update(a, bunch, of, stuff) // <- A tick ends here } clean(a, bunch, of, stuff) save(a, bunch, of, stuff) end 

这是一个非常标准的做事方式,而渲染和UI元素可以在一个单独的线程中处理,实际的游戏逻辑(按w将你的船向前移动)发生在这个tick内。

这也被称为“帧”,通常被认为是一个帧率(不要与graphics的东西混淆)。 Tick已经成为帮助区分两者的stream行代名词。

作为程序员,您的目标是无论如何都要有一个稳定的帧(tick)速率。 这样可以保持游戏中的反应平滑和理性,同时允许模型(编程不是graphics)以计算机友好的方式处理事物。 在游戏中,打勾时间不是固定的,并且没有幻数。 有些游戏是每秒100帧,其他的则是每3秒钟1次。

“嘀嗒”可以指两种不同的东西。 它可以引用一个帧的刻度,如你所说,屏幕上的所有可见的graphics得到更新。 然而,术语“打勾”也可以指游戏循环打勾。 这种types的tick是你的代码被执行的地方。 通常你的滴答是在一个循环的相同的重复滴答的情况下,将继续下去,直到游戏停止。

刻度线通常是指计算所有逻辑的游戏循环的一个迭代,所以游戏通常每秒钟有多个刻度。

然而,许多游戏在同一个线程上同时运行graphics和游戏循环,因为graphics通常不会花费那么长的时间来显示,所以逻辑被中断,反之亦然(尽管开发人员对于类似的情况取最后一帧和当前帧之间的时间差并相应地调整移动速度)。

FPS代表F rames P er秒,所以对于很多游戏来说,从技术上来说,每一帧都是一个勾号。