게임을 만드는 사람들이 매일 쓰는 엔진과 제작 도구도 누군가 만들고 고쳐야 합니다. 엔진·툴 프로그래머는 게임 그 자체보다 '게임을 만드는 환경'을 만드는 사람입니다. 엔진·툴 프로그래머 하는 일과 하루 일과를 정리했습니다.
엔진 프로그래머와 툴 프로그래머
두 직무는 함께 묶여 불리는 경우가 많지만 초점이 조금 다릅니다. 엔진 프로그래머는 렌더링(화면 그리기), 물리, 메모리 관리, 파일 로딩처럼 게임이 돌아가는 바탕 기능을 다룹니다. 자체 엔진을 가진 회사에서는 엔진 전체를 직접 개발하고, 상용 엔진을 쓰는 회사에서는 엔진 소스 코드를 수정하거나 기능을 확장합니다.
툴 프로그래머는 기획자, 아티스트, 다른 프로그래머가 쓰는 제작 도구를 만듭니다. 레벨을 배치하는 에디터, 기획 데이터를 입력하고 검증하는 툴, 리소스를 자동으로 변환하고 묶는 빌드 도구 등이 대표적입니다. 툴이 좋으면 팀 전체의 제작 속도가 빨라집니다.
주요 업무
| 영역 | 하는 일의 예 |
|---|---|
| 엔진 기능 | 렌더링 기능 추가, 물리·애니메이션 시스템 개선, 메모리 관리 |
| 엔진 확장 | 상용 엔진에 프로젝트 전용 기능을 플러그인 형태로 추가 |
| 에디터 툴 | 레벨 편집, 대화·퀘스트 편집, 데이터 검증 툴 개발 |
| 파이프라인 | 리소스 변환, 빌드 자동화, 패치 파일 생성 |
| 성능 개선 | 프로파일링(성능 측정)으로 병목을 찾아 엔진 수준에서 최적화 |
| 안정성 | 여러 기기에서의 충돌 원인 분석, 크래시 보고 시스템 관리 |
Unreal Engine을 쓰는 회사라면 C++로 엔진 기능을 확장하고, 블루프린트(코드를 노드로 연결해 만드는 시각적 스크립트)에서 쓸 수 있는 기능을 만들어 기획자와 아티스트에게 제공하는 일이 많습니다.
하루 일과 예시
| 시간대 | 하는 일 |
|---|---|
| 오전 | 밤사이 자동 빌드 결과와 크래시 보고 확인 |
| 오전 회의 | 툴 사용자(기획·아트)의 요청과 불편 사항 정리 |
| 오후 | 엔진 기능 개발 또는 툴 기능 구현, 테스트 코드 작성 |
| 오후 후반 | 성능 측정, 코드 리뷰, 다른 프로그래머 질문 대응 |
| 퇴근 전 | 변경 사항 문서화, 사용 안내 공지 작성 |
엔진·툴 프로그래머의 '고객'은 같은 회사 동료입니다. 그래서 동료가 툴을 쓰다가 막히면 바로 도움을 요청받는 일이 많고, 요청을 모아 우선순위를 정하는 것도 중요한 업무가 됩니다. 업무 시간 중 상당 부분이 기존 코드를 읽고 이해하는 데 쓰인다는 점도 특징입니다.
다른 프로그래머와의 차이
클라이언트 프로그래머가 '이 게임'의 기능을 만든다면, 엔진·툴 프로그래머는 '여러 게임과 여러 사람'이 쓸 기반을 만듭니다. 그래서 한 번 만든 코드가 오래, 넓게 쓰인다는 점을 염두에 두고 설계해야 합니다. 작은 실수가 팀 전체의 작업을 멈추게 할 수도 있어 테스트와 안정성에 특히 신경을 씁니다.
또한 그래픽스, 메모리, 멀티스레드, 파일 시스템처럼 컴퓨터의 낮은 단계에 가까운 지식이 자주 필요합니다. 성능 문제를 해결하려면 코드가 실제 하드웨어에서 어떻게 실행되는지 이해해야 하기 때문입니다.
함께 일하는 사람들
- 기획자: 데이터 입력 툴, 이벤트 편집 툴의 요구 사항을 받습니다.
- 아티스트: 리소스 내보내기, 셰이더, 에디터 기능 개선 요청을 받습니다.
- 테크니컬 아티스트: 아트 파이프라인 툴을 함께 설계합니다.
- 클라이언트·서버 프로그래머: 엔진 기능 사용법을 안내하고 문제를 함께 분석합니다.
- QA: 크래시와 성능 문제 재현에 협력합니다.
이렇게 많은 사람이 사용자라서 사용 설명서와 변경 공지를 잘 쓰는 능력이 생각보다 중요합니다. 좋은 기능도 사용법이 전달되지 않으면 쓰이지 않기 때문입니다.
이 직무가 잘 맞는 사람
- 화면에 보이는 결과보다 그 밑에서 돌아가는 원리가 궁금한 사람
- 다른 사람의 불편을 해결해 주는 데서 보람을 느끼는 사람
- 큰 코드베이스를 차분하게 읽고 구조를 파악하는 것을 즐기는 사람
- 성능 수치를 조금씩 개선하는 과정에 흥미가 있는 사람
상용 엔진의 구조를 이해하는 것이 첫걸음이 될 수 있습니다. SBS아카데미게임학원 언리얼엔진(Unreal) 과정은 C++ 기반 프로그래밍과 블루프린트, 데이터 관리, 네트워크 등 언리얼 개발의 핵심 기능을 단계적으로 다룹니다.
자주 묻는 질문
신입도 엔진 프로그래머로 시작할 수 있나요?
신입을 뽑는 경우도 있지만 경력직 비중이 높은 편입니다. 신입이라면 C++과 컴퓨터 구조 기초를 탄탄히 하고, 엔진 확장이나 툴 제작 결과물로 관심과 역량을 보여 주는 것이 좋습니다.
툴 프로그래머는 어떤 언어를 쓰나요?
엔진과 같은 C++을 쓰는 경우도 있고, C#이나 Python으로 별도 툴을 만드는 경우도 있습니다. 회사의 엔진과 파이프라인에 따라 다릅니다.
