Geometry Dash 연구소
들어가기전에 잠깐) 본 사이트는 나눔스퀘어_ac 폰트를 사용합니다. 더욱 나은 열람을 위해 폰트 다운로드를 권장합니다. 다운로드 후 설치
또한 후술할 내용들의 대부분은 해외 지메 유저 KugelBlitZ 님의 영상을 참고하였습니다.
----------------------------------------------------------------------
본 사이트는 모 지메인 일동이 머리를 맞대어 나오는 내용으로, 전문적인 부분에서 오류가 있을 수 있습니다
본인이 아는 내용도 제보 받습니다 (Discord Tag : Quit#8164)
들어가기에 앞서... '기본 개념'
1. 지오메트리 대시(이하 지메)는 32비트 게임이다.
1-1. 고로 지메는 64비트 환경에 최적화되어있지 않다. (메모리를 4기가 이상 먹지 않는다)
2. -
우리가 게임이나 컴퓨터 성능을 판단할 때 주로 "FPS (frames per second)" 즉, 초당 프레임 수를 통해 나타냅니다.
FPS(Firsr-Person Shooter)게임 기준으로, 플레이하는 게임이 진행되어 우리가 사용하는 모니터로 나오는 과정 중에서
CPU(중앙처리장치)는 총의 발사 궤도나 플레이어의 피해량 등 게임이 진행되는 중에 나오는 전반적인 데이터를 연산하고,
GPU(그래픽카드)는 CPU가 연산해서 전송한 데이터를 바탕으로 해당 정보를 디지털화해서 영상으로 나타내는 역할을 합니다.
예를 들어 설명해보자면, 한 레스토랑이 있습니다. 가정의 달을 맞아 손님이 붐벼 주방이 바쁠 때, 매니저가 나타나서 레스토랑 건물의 구조와 요리사,웨이터 등의 종업원 수와 홀 내부의 손님의 수, 평균적으로 주문되는 음식의 양 등을 하나 하나 수시로 세서 정리합니다.
그 후, 그는 그의 부하직원에게 누구는 어느 테이블의 접시를 가져오고, 다른 누구는 다른 테이블의 접시를 받아 설거지를 하고, 또 다른 누구는 그 접시에 요리를 담아 올리라는 말을 전하라고 명령하게 됩니다.
그리고 그 부하직원은 하달받은 명령을 바탕으로 주방과 홀 곳곳을 돌아다니며 종업원들에게 일을 시키게 됩니다.
여기서 CPU는 레스토랑의 매니저, GPU는 그의 아랫사람이 되겠네요.
앞설명이 길어져 버렸지만 어느정도 설명은 해야할 것 같았습니다.
위에 장황하게 설명을 해놓았지만, 결국 FPS를 높이려면 GPU의 성능이 좋아야합니다. (물론 CPU도 어느정도 받쳐줘야 하겠지만요)
하지만 우리 Geometry Dash는 오히려 그 반대의 길을 걷고있습니다.
지오메트리 대시는 우리가 흔히 접하는 상술한 데이터 출력 방식이 아닌 다른 방법을 사용하고 있는데요,
바로... 지정된 프레임 수 만큼의 프레임만 뽑아내는 방식이죠!!
??? : 그게 무슨 개소리에요?
말 그대로입니다. 지메는 시스템이 정한 만큼의 프레임만 뽑아내어 화면으로 출력합니다.
이러한 방식의 장단점이라 하면, 우선 장점은 상술한 FPS 게임들의 방식에 비해서 훨씬 안정적이라는 점이 있습니다. 어떠한 변수가 생겨도 항상 60프레임만을 출력하기 때문이죠. 단점은 뽑아내는건 60프레임이지만 플레이어가 초당 60칸을 움직이진 않는다는 것입니다. 1초에 6칸을 움직이는가 하면 17칸, 65칸 같은 식으로 움직일 수도 있지만 나타내는건 60장의 화면 뿐이니 플레이어가 처한 모든 상황을 눈으로 확인할 수 없습니다. 또한 나타나는 60프레임 밖에서 일어나는 일(가시에 닿아 죽음, 공점을 놓치는 등)에는 어떠한 행동(클릭해서 넘어가는 등)도 취할 수 없다는 점도 있죠.
하지만 이것이 지메만 그런것은 아니고, 다른 게임들에서도 모니터의 초당 화면 갱신수(Hz)를 초과하여 출력하면 화면의 위아래가 어긋나거나 잠깐씩 멈추는 현상이 나타나는 이른바 테어링과 스터터링 현상이 일어나게 됩니다. (물론 다른 게임들에선 모니터의 초당 갱신수 밖에서 일어나는 일도 눈으로 확인만 못할 뿐 어떻게든 입력 신호를 줘서 대처는 가능합니다.) 이를 해결하기 위해 나온것이 바로 Vertical Sync (수직 동기화) 입니다.
수직 동기화는 게임에서 출력되는 프레임을 플레이어가 사용하는 모니터의 주사율 (144Hz, 240Hz 등)에 맞춰버리는 기능입니다. 해당 기능을 사용할 경우 상술한 테어링과 스터터링이 일어나지 않으므로 끊김없는 안정적인 프레임을 확보할 수 있지만, 고정된 정수에 초당 프레임수를 맞추는 과정에서 입력 지연(인풋렉)이 발생합니다.
지메에서의 수직 동기화는 게임이 뽑아낼 수 있는 프레임의 상한선을 높이는 역할을 합니다. 그러나 사용자의 컴퓨터 성능에 따라 최대로 뽑을 수 있는 프레임이 모니터의 주사율에 미치지 않으면 온전한 정수 프레임이 모두 나오지 않을수도 있습니다.
모니터의 주사율이 60Hz같이 낮은 값인 사람들을 위해 FPS Bypass도 있습니다. 단어 뜻 그대로 게임이 모니터의 주사율에 영향받지 않고 사용자가 지정한 정수값에 맞춰 프레임을 출력하도록 해주는 기능입니다.