게임 프로그래밍은 일반 프로그래밍 지식 위에 실시간으로 화면을 그리고 입력에 반응해야 하는 게임만의 개념이 더해집니다. 처음 엔진을 다루거나 기술 면접을 준비할 때 낯선 용어 때문에 막히는 경우가 많습니다. 이 사전은 게임 프로그래머가 자주 쓰는 용어를 분야별로 묶어 풀어 썼습니다.
게임이 돌아가는 기본 구조
| 용어 | 뜻 |
|---|---|
| 게임 루프 | 입력 받기, 게임 상태 갱신, 화면 그리기를 끊임없이 반복하는 구조. 모든 게임의 심장 같은 부분입니다. |
| 프레임 | 화면 한 장이 그려지는 단위. 1초에 몇 장을 그리는지를 FPS(초당 프레임 수)로 나타냅니다. |
| 델타 타임 | 이전 프레임과 지금 프레임 사이에 흐른 시간. 기기 성능이 달라도 같은 속도로 움직이게 하는 데 씁니다. |
| 게임 엔진 | 렌더링, 물리, 사운드, 입력 처리 등 게임 제작에 필요한 기능을 모아 둔 개발 도구. 유니티와 언리얼 엔진이 대표적입니다. |
| 씬 / 레벨 | 게임의 한 장면이나 맵 단위. 엔진에서는 오브젝트를 배치하는 작업 공간을 뜻하기도 합니다. |
| 게임 오브젝트 / 액터 | 게임 안에 존재하는 모든 대상. 캐릭터, 카메라, 빛, 아이템 등이 모두 해당합니다. 유니티는 게임 오브젝트, 언리얼은 액터라는 말을 씁니다. |
언어와 설계
| 용어 | 뜻 |
|---|---|
| C++ | 성능이 중요한 게임 엔진과 대형 게임 개발에 널리 쓰이는 언어. 언리얼 엔진의 기본 언어입니다. |
| C# | 유니티에서 스크립트를 작성할 때 쓰는 언어. |
| 블루프린트 | 언리얼 엔진의 비주얼 스크립팅 도구. 코드를 직접 쓰지 않고 노드를 연결해 기능을 만듭니다. |
| 객체지향 | 데이터와 기능을 묶은 객체 단위로 프로그램을 설계하는 방식. |
| 디자인 패턴 | 자주 나오는 설계 문제에 대한 검증된 해결 방식. 싱글턴, 옵저버, 상태 패턴 등이 게임에서 자주 쓰입니다. |
| 상태 머신 | 대기, 이동, 공격처럼 대상이 가질 수 있는 상태와 상태 사이의 전환 규칙을 정리한 구조. 캐릭터 조작과 AI에 많이 씁니다. |
물리와 AI
| 용어 | 뜻 |
|---|---|
| 충돌 처리 | 두 물체가 닿았는지 판단하고 그 결과를 처리하는 일. 공격 판정, 벽 통과 방지 등에 쓰입니다. |
| 콜라이더 / 히트박스 | 충돌을 계산하기 위해 물체에 씌운 단순한 모양. 실제 그래픽보다 단순한 상자나 구를 쓰는 경우가 많습니다. |
| 레이캐스트 | 한 점에서 특정 방향으로 보이지 않는 선을 쏴 무엇에 닿는지 확인하는 기능. 사격 판정이나 시야 확인에 씁니다. |
| 행동 트리 | AI가 상황에 따라 어떤 행동을 할지 나무 모양 구조로 정리한 방식. |
| 길찾기(A*) | 출발점에서 목표까지 가는 경로를 찾는 알고리즘. A*는 게임에서 가장 널리 알려진 길찾기 방식입니다. |
| 벡터 | 크기와 방향을 함께 가진 값. 위치, 이동 방향, 속도를 계산할 때 기본이 됩니다. |
그래픽과 최적화
| 용어 | 뜻 |
|---|---|
| 렌더링 | 게임 속 장면을 계산해 화면에 그리는 과정. |
| 드로우콜 | CPU가 GPU에 '이것을 그려라'라고 요청하는 횟수. 너무 많으면 성능이 떨어집니다. |
| 배칭 | 여러 물체를 한 번에 묶어 그려 드로우콜을 줄이는 기법. |
| LOD | Level of Detail. 멀리 있는 물체는 단순한 모델로 바꿔 그려 부담을 줄이는 방식. |
| 프로파일링 | 프로그램의 어느 부분이 시간과 메모리를 많이 쓰는지 측정하는 작업. 최적화의 출발점입니다. |
| 가비지 컬렉션 | 더 이상 쓰지 않는 메모리를 자동으로 정리하는 기능. 실행 중 잠깐 멈춤의 원인이 되기도 합니다. |
네트워크와 서버
| 용어 | 뜻 |
|---|---|
| 클라이언트 / 서버 | 클라이언트는 이용자의 기기에서 돌아가는 게임, 서버는 여러 이용자의 정보를 모아 관리하는 쪽입니다. |
| 동기화 | 여러 이용자의 화면에 같은 상황이 보이도록 게임 상태를 맞추는 일. |
| 레이턴시(지연) | 데이터가 오가는 데 걸리는 시간. 지연이 크면 입력과 결과 사이에 틈이 생깁니다. |
| 패킷 | 네트워크로 주고받는 데이터의 작은 묶음. |
용어는 직접 코드를 짜 보며 익히는 것이 가장 빠릅니다. 작은 2D 게임 하나를 만들면서 게임 루프, 충돌 처리, 상태 머신을 직접 구현해 보면 대부분의 기본 용어를 몸으로 이해하게 됩니다. 게임프로그래밍 과정에서는 개념 설명, 강사 시연, 코드 구현, 실행과 디버깅, 피드백의 순서로 이런 기본기를 익힐 수 있습니다.
자주 묻는 질문
유니티와 언리얼은 어떤 언어를 쓰나요?
유니티는 주로 C#을, 언리얼 엔진은 C++와 비주얼 스크립팅 도구인 블루프린트를 씁니다.
드로우콜은 왜 줄여야 하나요?
CPU가 GPU에 그리기 요청을 보내는 횟수가 많을수록 처리 부담이 커져 프레임이 떨어질 수 있기 때문입니다.
기술 면접 전에 꼭 알아야 할 용어는 무엇인가요?
게임 루프, 델타 타임, 객체지향, 디자인 패턴, 충돌 처리, 최적화 관련 용어는 자주 질문되는 기본 개념입니다.
