4A Engine
4A Engine은 4A Games가 자체 게임 제작을 위해 개발하는 독점 3차원 게임 엔진이다. 2006년경부터 개발되어 2010년 《Metro 2033》에 적용됐으며, 이후 《Metro: Last Light》와 《Metro Exodus》, 가상 현실 게임 《Arktika.1》에 사용...
| 분류 | 게임 엔진, 실시간 3D FPS 엔진 |
|---|---|
| 개발사 | 4A Games |
| 개발 시작 | 2006년경 |
| 최초 상용 적용 | Metro 2033 (2010년) |
| 작성 언어 | C++ |
| 초기 렌더링 | 지연 렌더링, 동적 조명·간접광 근사 |
| 현대 렌더링 | 실시간 레이 트레이싱·전역 조명 |
| 그래픽스 API | Direct3D, OpenGL 등 세대·플랫폼별 |
| 물리 시스템 | PhysX 등 작품별 연동 |
| 핵심 시스템 | 장면·자산 스트리밍, 멀티스레드 작업 처리 |
| 콘텐츠 제작 | 4A Games 내부 엔진·레벨 제작 도구 |
| VR 적용 | Arktika.1 |
| 대표 게임 | Metro 2033, Metro: Last Light, Metro Exodus, Arktika.1 |
| 기술·SDK 공개 | Metro Exodus SDK (2023년; 게임별 모딩용) |
| 실행 플랫폼 | PC·PlayStation·Xbox·Nintendo Switch 등 게임별 |
| 소스 공개 | 독점 엔진; 일반 공개 소스 아님 |
| 라이선스 | 4A Games 독점 소프트웨어 |
| 개발사 공식 자료 | 4A Games 공식 기술 소식 |
4A Engine은 4A Games가 자체 게임 제작을 위해 개발하는 독점 3차원 게임 엔진이다. 2006년경부터 개발되어 2010년 《Metro 2033》에 적용됐으며, 이후 《Metro: Last Light》와 《Metro Exodus》, 가상 현실 게임 《Arktika.1》에 사용됐다. 암울한 실내 지하철 터널부터 광대한 야외 지역까지 사실적인 환경과 조명·물리 상호작용을 표현하는 기술로 발전해 왔다.[1]
초기 엔진의 렌더링에는 다수의 동적인 광원을 처리하기 위한 지연 렌더링 방식과 실시간 간접 조명 근사 기술이 활용됐다. 《Metro 2033》과 《Metro: Last Light》에서는 어두운 실내와 인공 조명, 안개·입자·재질 효과를 표현해야 했으며, 개발팀은 정적인 조명 데이터를 미리 계산하는 것보다 실제 게임의 상황에 따라 변화하는 조명 표현에 중점을 뒀다. 이 같은 특징은 게임의 분위기와 플레이어가 주변 사물을 인식하는 방식에도 영향을 주었다.
《Metro Exodus》에서는 여러 구역을 탐험하는 게임 구조에 대응하기 위해 더 큰 월드·자산 스트리밍과 렌더링 효율을 개선했다. 4A Games는 2018년 NVIDIA와의 협력을 발표하면서 엔진의 실시간 레이 트레이싱 기반 전역 조명을 공개했다. 반사·간접광과 주변광 차폐의 처리를 개선해 낮과 밤, 실내외 조명 조건의 변화에 맞춰 장면의 밝기와 물체 형태를 표현하려는 기술이었다.[2]
후속 《Metro Exodus Enhanced Edition》에서는 레이 트레이싱을 지원하는 그래픽 하드웨어를 필수 조건으로 요구하는 별도 렌더링 구성이 제공됐다. 이와 같은 변화는 기존의 광원 계산 방식과 최신 하드웨어 기능을 사용한 렌더링 파이프라인을 구분하는 사례다. 4A Engine은 게임 세대에 따라 Direct3D·OpenGL 등 서로 다른 그래픽 API와 콘솔 환경을 사용했기 때문에 모든 플랫폼이 최신 버전의 모든 기능을 동일하게 지원한다고 볼 수는 없다.
엔진 런타임은 C++ 기반의 네이티브 기술로 발전했고 렌더링 외에도 물리·애니메이션, AI 및 레벨 자산을 관리하는 시스템을 포함한다. 《Metro Exodus》용 공식 SDK는 2023년부터 사용자 제작 콘텐츠와 모딩을 지원하지만, 이것이 4A Engine 전체의 소스 코드나 범용 상업용 엔진 라이선스를 공개했다는 뜻은 아니다. 4A Engine은 《S.T.A.L.K.E.R.》의 X-Ray Engine과 개발자들의 경력상 연결이 있으나, X-Ray를 이름만 바꾸어 재배포한 엔진으로 취급해서는 안 된다.[3]