우리가 흔히 쓰는 게임 엔진(Game Engine)이라는 단어는 생각보다 역사가 짧습니다. 이 개념이 본격적으로 자리 잡은 건 1990년대 중반입니다. 둠 같은 1인칭 슈팅 게임들이 등장하면서부터라고 보시면 됩니다. 당시에는 프로그램 하나에 모든 기능이 뒤섞여 있었습니다.
화면 그리기와 콘텐츠를 분리하다
하지만 둠이 나오면서 변화가 생겼습니다. 화면을 그리는 기능이나 입력 처리 같은 뼈대를 따로 떼어냈습니다. 그리고 플레이어가 즐기는 레벨이나 규칙 같은 콘텐츠를 분리하기 시작했죠. 처음에는 이런 방식이 조금 낯설게 느껴질 수도 있습니다.
이런 분리는 게임을 만드는 방식 자체를 바꿔 놓았습니다. 중요한 기능을 그대로 둔 채 데이터만 바꾸면 되니까요. 그러면 전혀 다른 게임을 아주 빠르게 만들 수 있게 됩니다. 프로그래머 입장에서는 정말 효율적인 방법이 아닐 수 없습니다.
데이터를 바꿔 새로운 게임 만들기
프로그래머들은 기존 엔진 위에 새로운 맵과 규칙을 얹었습니다. 그렇게 또 다른 게임을 만들어 냈죠. 이 흐름 속에서 자연스럽게 모드 문화가 탄생했습니다. 게임을 고친다는 것이 엔진을 재사용한다는 뜻과 같아진 셈입니다.

이후 등장한 퀘이크 3나 언리얼 같은 게임들은 한 단계 더 나아갔습니다. 이들은 처음부터 다른 게임에서도 쓰일 수 있도록 설계되었습니다. 재사용과 수정을 전제로 만들어졌기 때문입니다. 덕분에 프로그래머는 어려운 기술을 바닥부터 다시 만들 필요가 없어졌습니다.
검증된 도구를 빌려 쓰는 시대
자, 여기서 오늘날의 환경을 한번 살펴볼까요? 많은 제작팀이 엔진을 처음부터 직접 만들지는 않습니다. 대신 이미 검증된 엔진을 라이선스 형태로 가져와서 사용하죠. 렌더링이나 물리 같은 복잡한 문제를 한 번에 해결할 수 있기 때문입니다.
이렇게 하면 게임만의 세계관과 경험에 더 많은 시간을 쓸 수 있습니다. 비용과 위험을 동시에 줄일 수 있다는 점이 큰 장점입니다. 그래서 엔진 재사용은 현대 게임 제작의 기본 전제가 되었습니다.
엔진과 게임의 모호한 경계
하지만 여기서 중요한 점이 하나 있습니다. 게임과 엔진의 경계가 항상 명확하지는 않다는 사실입니다. 어떤 엔진은 특정 게임에 강하게 묶여 있기도 합니다. 예를 들어 오크 같은 특정 몬스터를 엔진 내부에서 직접 다루기도 하죠.
반대로 형태와 행동을 전부 데이터로 정의하기도 합니다. 엔진은 이를 해석만 하도록 만드는 방식이죠. 이런 데이터 기반 설계가 잘 될수록 다른 게임에서 쓰기가 쉬워집니다. 재사용성이 높아진다고 볼 수 있겠네요.
모든 게임에 완벽한 도구는 없다
엔진의 재사용성은 된다 혹은 안 된다로 나뉘는 문제가 아닙니다. 일종의 스펙트럼에 가깝다고 이해하시면 됩니다. 어떤 엔진은 실내 공간 위주의 게임에 아주 강합니다. 반면 어떤 엔진은 광활한 야외를 끊김 없이 보여주는 데 특화되어 있죠.
이 둘을 하나의 엔진으로 완벽하게 통합하는 건 여전히 쉽지 않습니다. 하드웨어 성능이 좋아져서 격차가 줄어들긴 했습니다. 그래도 특정 게임에 맞춘 최적화는 여전히 필요합니다. 여러분이 어떤 종류의 게임을 만들 것인가에 따라 선택이 달라져야 합니다.