게임 개발
게임을 만드는 일을 다루는 구역입니다. 화면을 매 프레임 다시 그립니다. 그 사이사이 세계를 한 칸씩 굴립니다. 그 프레임을 정해진 시간 안에 끝내야 한다는 사정이 이 구역의 결정을 대부분 지배합니다.
쉽고 빠른 이해
게임 개발은 화면을 매 프레임 다시 그리고 그 사이 게임 세계를 한 칸씩 갱신하는 일을 다루는 구역입니다. 캐릭터가 뛰고 총알이 날아가는 장면 하나도 이 안에서 매 프레임 다시 계산되고 다시 그려집니다.
초당 60번 화면을 다시 그리려면 한 프레임을 16밀리초 안에 끝내야 합니다. 이 시간 제약이 이 구역의 결정을 지배합니다. 넘기면 화면이 뚝뚝 끊기거나 멈칫거립니다.
한 바퀴는 이렇게 돕니다.
- 게임 세계의 상태를 갱신합니다
- 화면에 그립니다
- 이 둘을 정해진 시간 안에 마치고 다음 프레임으로 넘어갑니다
게임 세계가 아니라 바깥 온라인 서비스에 접근하는 서버 코드는 여기 안 듭니다.
상세
게임은 루프 안에서 돕니다. Godot 문서는 매 프레임 게임 세계의 상태를 갱신한 다음 화면에 그린다고 적습니다. 이 되풀이가 이 구역의 바닥입니다.
이 루프에는 시간 예산이 붙습니다. Unity 문서는 60 FPS(Frames Per Second, 초당 프레임 수)를 유지하려면 프레임 하나가 16밀리초 한계 안에 들어야 한다고 적습니다. 이 한계를 넘기면 화면이 멈칫거리는 문제가 생깁니다. 예산이 이렇게 좁습니다. 이 구역이 다른 개발과 갈리는 지점이 여기 한 겹입니다.
경계
매치메이킹과 인게임 구매를 처리하는 서버 코드도 게임 개발인가. 아닙니다. Unreal 문서는 이 둘을 온라인 서브시스템에 둡니다 — Steam · Xbox Live 같은 바깥 온라인 서비스에 접근하는 자리이지, 게임 세계 자체가 아닙니다.
이견
이 구역을 나누는 축은 하나가 아닙니다.
| 누가 | 나누는 축 | 나온 이름 |
|---|---|---|
| 국제게임개발자협회(International Game Developers Association) 교육위원회 | 분야 | 비판적 게임 연구 · 게임과 사회 · 게임 디자인 · 게임 프로그래밍 · 비주얼 디자인 · 오디오 디자인 · 인터랙티브 스토리텔링 · 게임 프로덕션 · 게임 비즈니스 |
| 국제게임개발자협회 교육위원회 | 게임 프로그래밍 분야 안에서 다루는 대상 | 그래픽스 · 사운드 · 인공지능(Artificial Intelligence) · 네트워크 · 데이터 주도 시스템(프로그래머가 아닌 사람도 고쳐 쓸 수 있게 만든 시스템) · 디자이너용 툴 |
국제게임개발자협회 교육위원회는 이 구역을 층으로 나눠 두 번 가릅니다. 위 층에서는 아홉 분야로 나누고, 그 중 게임 프로그래밍 하나를 다시 여섯 가지 다루는 대상으로 쪼갭니다. 같은 문서는 이 나눔이 여러 분야에 걸친 접근을 반영한 것이라고 적고, 게임 프로그래밍은 전통적인 컴퓨터 과학의 여러 측면을 게임의 기술적 사정에 맞게 고친 것이라고 적습니다. 인공지능 아래에는 경로 계획 · 에이전트 아키텍처 · 의사결정 시스템을, 네트워크 아래에는 서버 설계 · 성능 지표 · 토폴로지 · 프로토콜 · 보안을 둡니다.
관련 항목
프레임 루프를 이루는 개념
게임 루프 · 델타 타임 · 고정 타임스텝 · 물리 스텝 · 틱 · 틱 그룹 · 프레임률 · 프레임 시간 · 프레임 예산
화면을 그리는 렌더링 기술
렌더 파이프라인 · 컬링 · 프러스텀 컬링 · 오클루전 컬링 · 후처리 · 셰이더 · 셰이더 그래프 · HLSL(High-Level Shader Language, 고수준 셰이딩 언어) · 머티리얼 · 스프라이트 · 스프라이트 시트 · 스프라이트 아틀라스 · 정렬 레이어 · 스켈레탈 애니메이션 · 스키닝 메시 렌더러 · LOD(Level of Detail, 세부 수준)
게임 세계를 굴리는 물리·인공지능 기술
강체 물리 · 충돌 · 콜라이더 · 물리 엔진 · 내비게이션 메시 · 경로 탐색 · 타일 · 회피 · 행동 트리 · 블랙보드 · 상태 기계 · 애니메이션 상태 기계 · 게임 인공지능
여럿이 함께 하는 멀티플레이 기술
클라이언트-서버 구조 · 권위 서버 · 리플리케이션 · 원격 프로시저 호출 · 폰 · 결정론적 시뮬레이션 · 입력 예측 · 예측 한계 · 롤백 · 게임 상태 직렬화 · 세션
만드는 파이프라인
에셋 파이프라인 · 에셋 매니저 · 쿠킹 · 청킹 · 텍스처 압축 · GPU 텍스처 포맷(GPU 는 Graphics Processing Unit, 그래픽 처리 장치) · 도메인 리로드 · 빌드 프로파일 · 패키징
성능 문제와 그 진단 도구
GC 스파이크(GC 는 Garbage Collection, 쓰레기 수집) · 히칭 · 프로파일러 · 프레임 하나 어긋남 · 증분 가비지 컬렉션 · 정적 상태 초기화
다른 이름: game development