Game Programming [c++]

게임 개발 용어 정리 #1

PON_Z 2022. 1. 3. 16:37

o 크로스 플랫폼 라이브러리(Cross-platform library)

- SDL (Simple DirectMedia Layer) :

  C로 작성된 크로스 플랫폼 게임 개발 라이브러리이다.

  SDL은 윈도우를 생성하거나 기본 2D그래픽을 생성하며 입력처리, 오디오 출력등의 기능을 지원한다.

  (Windows, Mac, Linux, iOS, Android)

 

 

o 게임 루프 (Game loop)

- 게임 프로그램의 전반적인 흐름을 제어하는 루프

- 플레이어가 게임을 종료하지 않는 한 계속해서 루프를 반복

- 게임루프의 각각의 반복을 프레임(Frame)이라고 함 :

  ex) 60FPS(Frames Per Second) 는 게임 루프가 초당 60번의 반복을 완료한다는 것

- 게임루프는 단일 쓰레드(single-thread)임, 즉 CPU의 장점을 홣용하지 않음을 뜻함

★ 게임루프는 프레임마다 입력처리, 게임 세계 갱신, 출력 생성 3가지의 주요단계를 가짐

 

 

o 색상버퍼 (Color buffer)

- 화면의 색상 정보를 포함하고 있는 메모리상의 위치

- 색상버퍼의 메모리 사용률은 각 픽셀이 사용한 비트수에 의존함

  ex) 32비트 색상깊이(Color depth)에서 RGBA가 각각 8비트 를 차지할때

      1080p 해상도에서 색상버퍼는 1920 x 1080 x 4Byte 사용 (≒ 7.9MB) 

      cf) 요즘에는 RGBA 요소를 16비트로 사용하느 추세

 

 

o 더블 버퍼링(Double buffering)

- 테어링(tearing)을 제거하기 위해 색상버퍼를 두 개를 사용 하는 것

- 하지만 게임이 버퍼를 교체하기 원할때 디스플레이가 여전히 버퍼X를 그리고 있다면

   게임은 버퍼X를 다 그릴때 까지 기다림

   => 이를 수직동기화(vertical synchronization) 또는 VSync라고 함

- VSync를 사용하려면 게임은 디스플레이가 준비될 때까지의 시간동안 대기해야함

   이는 게임 루프가 정확하게 60FPS 등의 프레임 레이트를 정확히 달성할 수 없음을 의미

   그래서 일부 게임에서 VSync를 켜면 프레임이 떨어 질 수 있으므로 VSync는 옵션으로 두는 것이 좋음

   => 적응적 화면 재생 빈도(Adaptive refresh rate)로 해결 :

        디스플레이가 화면을 갱신하려 할 때 게임에 통지하는것이 아닌 게임이 디스플레이로 언제 화면을 

        갱신해야할 지 알려줌으로써 프레임저하와 테어링 양쪽을 모두 해결

728x90

'Game Programming [c++]' 카테고리의 다른 글

SDL을 이용한 공 튀기기 [c++]  (0) 2022.01.06
SDL 추가 설명  (0) 2022.01.04
SDL flags  (0) 2022.01.03
Visual Studio SDL2 라이브러리 사용 방법  (1) 2022.01.03