-
[유니티로 만드는 게임 개발 총론]1장. 프로그래밍 메커니즘의 예술도서 정리/유니티로 만드는 게임 개발 총론 2023. 8. 25. 15:15
본문의 모든 내용과 이미지의 저작권은 '페니 드 빌' 저자의 유니티로 만드는 게임 개발 총론 도서에 있습니다.
1-1. 게임 엔진의 동작
- 과거, 게임 개발자들은 게임을 구성하는 모든 요소들을 모두 코드로 작성하거나 비슷한 기존 게임의 코드를 수정해가면서 게임을 제작함.
- 게임 편집 프로그램(게임 제작 플랫폼)이 등장하면서 수많은 코드를 직접 작성하지 않고도 게임을 개발할 수 있게 되었다.
- 물리, 사운드, 그래픽, 사용자 입력 등의 작업을 게임 엔진이 처리해 줌.
- 개발자는 게임 메커니즘 개발에 집중할 수 있게 됨.
1. 범용 게임 엔진
- 게임 엔진은 게임의 모든 리소스와 동작을 관리하는 다양한 요소를 실행하는 역할.
범용 게임 엔진의 구성도 - 물리 구현 관리자(Physics Manager): 실세계의 물리를 구현하여 오브젝트들 사이, 오브젝트와 환경 사이의 상호작용을 처리
- 입력 관리자(Input Manager): 플레이어와 게임 간의 상호 작용과 GUI 관리
- 음향 관리자(Sound Manager): 플레이어에게 들리는 음향의 초기값을 설정하고 이를 제어. 3D 음향이 필요한 경우 적절한 소리가 적절한 음량으로 정확한 출력 장치에 전송되도록 관리
- 게임 오브젝트(Game Object): 게임 환경에 존재하는 모든 에셋, 다양한 컴포넌트로 구성
- 인공지능(AI): 오브젝트의 행동을 결정하는 요소
- 음향: 오브젝트에서 나는 사운드(ex. 바위를 두드리는 소리, 목소리 등)
- 물리 구현: 오브젝트가 게임의 물리 체계를 따라 움직이게 함
- 그래픽: 오브젝트가 화면에서 표시되는 방식
2. 게임의 메인 루프
게임 실행 방법 - 초기화: 컴퓨터 메모리를 할당 받고, 저장되어있던 정보를 꺼내며, 그래픽과 주변 기기를 확인
- 메인 게임 루프/메인 루프: 플레이어가 게임을 종료할 때까지 반복
- 사용자 입력 처리: 사용자 입력 메시지를 처리하는 함수 사이클
- 게임 오브젝트 업데이트: 모든 게임 오브젝트를 체크하여 위치 등의 상태 업데이트
- 환경 업데이트: 게임 오브젝트, 사용자 상호 작용, 물리 시스템 관련 환경 업데이트
- 씬 렌더링: 화면에 새로운 장면(Scene)을 렌더링
- 기본적으로 각 루프는 화면상에 한 프레임의 그래픽을 렌더링한다.
- 루프 실행 속도가 빠를수록 애니메이션이 부드럽게 보인다.
- 오브젝트의 개수가 많아질수록 메인 루프가 처리할 작업량이 증가 → 화면상에 렌더링될 프레임 사이의 시간이 길어짐. 이 시간을 초당 프레임(Frames Per Second, FPS)이라 부른다.
1-2. 게임 아트 에셋 입문
- 기본적으로 게임에 사용되는 아트 에셋은 2D와 3D로 나뉜다.
- 디지털 이미지의 구성 요소
- 크기: 폭 x 높이
- 색심도: 각 픽셀의 색상값을 저장하는데 필요한 비트 수. (ex. 8비트 용량의 4가지 색으로 칠해지는 픽셀 하나는 32비트의 색심도를 가짐)
- 색심도가 32비트이고 크기가 16 x 32 픽셀 이미지의 용량은 32 x 16 x 32 = 16,384비트
- 3D 모델 다운로드 사이트
1. 2제곱 규칙
- 주어진 그래픽 처리 한도 내에서 최고의 결과물을 낼 수 있는 방법
- 컴퓨터는 끊임없이 주기적으로 데이터를 처리해서 CPU나 GPU에 작업을 할당함. 이 때 프로세서가 한 사이클에 처리할 수 있는 데이터 양은 한계가 있으므로 데이터를 특정 크기로 묶음.
- 컴퓨터는 텍스처를 렌더링하기 위해 메모리를 2의 거듭제곱에 맞춰 할당함. 따라서 텍스처의 폭과 높이를 2의 제곱 값으로 맞추는 것이 효율이 가장 좋음.
- ex) 마인크래프트 게임의 오브젝트 텍스처는 64 x 64 또는 128 x 128 픽셀이다.
- 텍스처가 2의 제곱이 아니라면, 이미지의 크기나 스케일이 조정된다. 이 때 원래의 크기에 가장 가까운 2의 제곱값으로 폭과 높이가 줄어들거나 늘어나기 때문에 텍스처 왜곡이 발생하거나 이미지 잘림 등의 문제가 발생할 수 있다.
- 유니티는 2의 제곱이 아닌 이미지도 텍스처로 받아들이지만 스케일을 변경시킨다.
- 유니티가 지원하는 이미지
- 폭과 높이: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 픽셀
- 확장자: psd, tiff, jpg, tga, png, gif, bmp, iff, pict 등 대부분의 이미지 파일
'도서 정리 > 유니티로 만드는 게임 개발 총론' 카테고리의 다른 글
[유니티로 만드는 게임 개발 총론]6장. 플레이어 메커니즘 (0) 2023.08.31 [유니티로 만드는 게임 개발 총론]5장. 캐릭터 메커니즘 (0) 2023.08.31 [유니티로 만드는 게임 개발 총론]4장. 게임 규칙와 메커니즘 (0) 2023.08.30 [유니티로 만드는 게임 개발 총론]3장. 애니메이션 메커니즘 (0) 2023.08.30 [유니티로 만드는 게임 개발 총론]2장. 실세계 매커니즘 (0) 2023.08.25