게임 개발의 맥락에서 "틱"이란 무엇입니까?


12

자, 이것은 매우 초보자 수준의 질문이지만 이것을 알아야합니다. 게임 개발의 맥락에서 "틱"이라는 용어는 무엇을 의미합니까? FPS와 같은 것입니까? 감사!


1
BTW에서이 용어를 어디서 얻었습니까? physics engine update frame캐주얼 플레이어가 기억하거나 이해하기에는 너무 길기 때문에 어떤 사람들은 그것을 진드기라고 부릅니다 .
— Bálint

답변:


18

진드기는 시간 측정 단위이며, 구체적으로 게임에서 반복되는 동작 (일반적으로 광범위한 동작)의 단일 인스턴스 또는 동작이 소비하는 기간을 나타냅니다.

진드기는 반복되며 (주로) 규칙적입니다. 이 용어는 시계가 만드는 소리 ( "틱"및 "토크") 중 하나에서 비롯됩니다.

일반적으로 틱은 메인 게임 로직 루프와 같은 일부 루프의 반복입니다. 예를 들어, 게임 로직이 한 번 프레임에 "틱"하거나 "틱 중에 문자 위치가 업데이트된다"고 말할 수 있습니다.

그러나 더 세분화 된 기간을 나타낼 수도 있습니다. "게임의 AI 틱은 5ms의 처리 시간으로 제한됩니다."라고 말할 수 있습니다.

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 요소는 별도의 스레드에서 처리 될 수 있지만 실제 게임 논리 (프레스 키를 눌러 우주선을 앞으로 이동)는이 틱 안에서 발생합니다.

이것을 "프레임"이라고도하며 일반적으로 프레임 속도 (그래픽과 혼동하지 말 것)라고합니다. 틱은 두 가지를 구별하는 데 도움이되는 인기있는 동의어가되었습니다.

프로그래머로서 당신의 목표는 무엇이든지 일정하고 안정적인 프레임 (틱) 속도를 유지하는 것입니다. 이를 통해 게임의 반응을 부드럽고 합리적으로 유지하면서 동시에 모델 (그래픽이 아닌 프로그래밍)이 컴퓨터 친화적 인 방식으로 물건을 처리 할 수 ​​있습니다. 틱 시간은 게임 전체에서 일정하지 않으며 매직 넘버가 없습니다. 일부 게임은 초당 100 프레임이고 다른 게임은 3 초마다 1 틱입니다.


1
모든 게임에 정적 틱 속도가있는 것은 아닙니다. Screeps와 Eve 온라인은 모두 다양한 틱 비율을 지원합니다. 마인 크래프트는 안정적인 틱 비율이지만 일반적으로 달성하지 못하고 잘 처리합니다. Dwarf Fortress는 고정 프레임 속도를 유지하며 유지할 수 없을 때 빨라지지만 여전히 작동합니다.
— coteyr

여기에 "frame"과 "tick"라는 용어가 너무 많이 섞여 있다고 생각합니다. 틱은 여러 프레임 (또는 업데이트주기)에 걸쳐있을 수도 있습니다.
— Tyyppi_77

1

"틱"은 서로 다른 두 가지를 의미 할 수 있습니다. 화면에 보이는 모든 그래픽이 업데이트되었다고 말하면서 프레임 틱을 나타낼 수 있습니다. 그러나, "틱"이라는 용어는 게임 루프 틱을 지칭 할 수도 있습니다. 이러한 유형의 진드기는 코드가 실행되는 곳입니다. 일반적으로 진드기는 게임이 멈출 때까지 계속 반복되는 동일한 진드기의 루프 컨텍스트에 있습니다.


1

틱은 일반적으로 모든 논리가 계산되는 게임 루프의 한 번의 반복을 의미하므로 게임에는 일반적으로 초당 여러 틱이 있습니다.

그러나 많은 게임이 같은 스레드에서 그래픽과 게임 루프를 모두 실행하기 때문에 일반적으로 그래픽을 표시하는 데 시간이 오래 걸리지 않기 때문에 로직이 중단되거나 그 반대의 경우도 있습니다 (개발자가 이와 같은 상황을 확인하는 경우에도 마찬가지 임) 마지막 프레임과 현재 프레임 간의 시간 차이를 고려하여 그에 따른 이동 속도 조정).

FPS는 의미 F는 rames P의 어 S 많은 게임 그래서 econd을, 네, 기술적으로 말하면, 각각의 프레임은 하나의 틱입니다.


그래서 두 용어를 서로 바꿔서 사용할 수 있습니까?
— user3843164

2
나는하지 않을 것입니다. 그래픽을 언급 할 때는 "FPS"를 사용하고 논리를 언급 할 때는 "틱"을 사용합니다. 일부 게임, 특히 강렬한 그래픽을 사용하는 게임에는 두 개의 루프가 있습니다. 하나는 그래픽 용이고 다른 하나는 논리 용입니다.
— StrongJoshua

진드기는 실이 아닙니다.

@ JoshPetrie Oooh, 실수를 지적합니다. 지적 해 주셔서 감사합니다. 이제 수정되었습니다.
— StrongJoshua

1
게임은 일반적으로 초당 여러 틱이 있습니다. 아마도 "아마도" "일반적으로"아닙니다. 보드 게임이나 전략 게임은 사용자가 "메인 루프 반복"-센스와 "렌더링"-센스 모두에서 움직일 때만 틱될 수 있습니다.
— Anko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.