在游戏开发中,什么是“滴答”?


12

好的,这是一个非常初学者的问题,但是我需要知道这一点,在游戏开发的背景下,“滴答”一词指的是什么?与FPS一样吗?谢谢!


1
您是从BTW那里获得此术语的?有人称它为滴答,physics engine update frame是因为对于休闲玩家而言,记住/理解时间太长。
巴林特

Answers:


18

滴答是时间的度量单位,特别是指游戏中重复动作(通常是广泛动作)的单个实例,或该动作消耗的时间段。

cks虫是重复的,并且(通常)是规律的;该术语来自时钟发出的声音之一(“滴答”和“ tock”)。

通常,滴答是某些循环的迭代,例如主游戏逻辑循环。例如,人们可以说游戏逻辑在一帧中“滴答”一次,或者“在滴答期间,角色位置被更新”。

但是,它也可以指更细微的时期。可以说“游戏中的AI滴答声被限制为5毫秒的处理时间。”

FPS衡量游戏在一秒钟内处理多少帧(通常是渲染帧)。滴答声和FPS不一定相关,但是有时人们将游戏逻辑循环的一次执行称为“逻辑帧”,在这种情况下,(逻辑)FPS速率将是每秒处理的滴答声的数量。这对于无论出于何种原因为游戏逻辑或物理性能强制采用固定帧速率的游戏而言,都是特别常见的。


2

大多数游戏都是循环执行的。就像是

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已成为帮助区分两者的流行同义词。

作为程序员,您的目标是无论如何都具有恒定,稳定的帧(刻度)速率。这样可以使游戏中的响应保持流畅合理,同时允许模型(不是图形设计)以计算机友好的方式处理事物。在整个游戏中,滴答时间不是恒定的,并且没有魔术数字。有些游戏每秒100帧,另一些游戏每3秒1格。


1
重要的是要注意,并非所有游戏都有固定的滴答率。爬行游戏和Eve Online均支持可变刻度率。我的世界应该是一个稳定的滴答率,但通常无法达到,并且处理得很好。矮人要塞具有静态帧速率,在无法跟上时会很烂,但它仍然可以工作。
coteyr

我认为您在这里混合使用了“框架”和“刻度”这两个术语。刻度也可以跨越多个帧(或更新周期)。
Tyyppi_77 '16

1

“滴答声”可以指两种不同的事物。如您所说,屏幕上所有可见的图形都已更新时,它可能是指帧刻度。但是,术语“滴答”也可以指游戏循环滴答。这种类型的刻度是执行代码的地方。通常,您的滴答声是在相同重复滴答声循环的情况下进行的,直到游戏停止为止。


1

滴答通常是指游戏循环的一次迭代,在其中计算所有逻辑,因此游戏通常每秒有多个滴答。

但是,许多游戏在同一线程上同时运行图形和游戏循环,因为图形通常不需要花费很长时间来显示,从而逻辑被打断,反之亦然(尽管开发人员会检查此类情况,例如取最后一帧与当前帧之间的时间差并相应地调整移动速度)。

FPS代表˚F rames P小号的Econd,因此对于很多游戏,是的,从技术上来讲,每一帧是一个刻度。


所以我可以互换使用这两个术语吗?
user3843164 2014年

2
我不会 我指代图形时使用“ FPS”,而指代逻辑时则使用“ ticks”,因为某些游戏,尤其是具有密集图形的游戏,往往会有两个循环:一个用于图形,一个用于逻辑。
StrongJoshua 2014年

勾号不是线程。

@JoshPetrie Oooh,我明白了我的错误,感谢您指出来。现在已修复。
StrongJoshua 2014年

1
游戏通常每秒有多个刻度。也许是“经常”。“一般”,不。棋盘游戏或策略游戏可能仅在用户进行移动时才会滴答作响,无论是在“主循环迭代”感觉还是在“渲染”感觉。
Anko 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.