MxEngine

MxEngine은 Momo(#Momo)가 개발한 C++ 기반 오픈 소스 3차원 게임 엔진이다. 개인적인 그래픽스·엔진 프로그래밍 학습 프로젝트에서 출발해 실시간 물리 기반 렌더링(PBR), 엔티티 컴포넌트 시스템(ECS), 물리·오디오, 자산 가져오기와 편집 도구를 하나의 코드베이스로...

분류게임 엔진, C++ 기반 3D 연구·교육용 엔진
주요 개발자Momo (#Momo) 및 공개 기여자
개발 언어C++
목표현대 3D 그래픽스와 게임 시스템의 직접 구현
현재 렌더러OpenGL
렌더러 연구Vulkan 이식 작업
주요 렌더링지연 렌더링 기반 PBR, SSAO·SSR·SSGI
조명방향광·점광원·스포트라이트, 그림자
물리강체·충돌, 트리거·레이캐스트
게임 구조ECS 컴포넌트와 이벤트 시스템
오디오3D 위치 오디오, 여러 사운드 형식
모델 임포트Assimp 기반
개발 도구ImGui 편집기, 프로파일러·리소스 뷰어
핫 리로드GLSL 셰이더·런타임 C++ 컴파일
빌드CMake와 Git 서브모듈
기본 아키텍처x86-64
지원 OSWindows, Linux
저장소 라이선스공개 저장소 LICENSE 원문 참조
공식 소스ASC-Community/MxEngine
프로젝트 템플릿MxEngine 소스 샘플

MxEngine은 Momo(#Momo)가 개발한 C++ 기반 오픈 소스 3차원 게임 엔진이다. 개인적인 그래픽스·엔진 프로그래밍 학습 프로젝트에서 출발해 실시간 물리 기반 렌더링(PBR), 엔티티 컴포넌트 시스템(ECS), 물리·오디오, 자산 가져오기와 편집 도구를 하나의 코드베이스로 구현한다. 대형 상용 스튜디오에 라이선스되는 제품보다 현대적인 엔진 아키텍처를 직접 설계하고 실험하는 연구·교육용 소프트웨어의 성격이 강하다.[1]

렌더링 시스템은 OpenGL을 중심으로 구축되며 지연 렌더링과 Cook-Torrance GGX 물리 기반 재질 모델을 제공한다. 화면 공간 반사(SSR)와 주변광 차폐(SSAO), 화면 공간 간접 조명(SSGI), Cascaded Shadow Maps와 후처리 등을 사용한다. 컴퓨트 셰이더 파티클과 포그·블룸, 깊이 효과 및 톤 매핑은 게임 화면에 다양한 시각적 표현을 제공한다. 개발진은 후속 Vulkan 백엔드 이식을 연구하고 있지만 저장소의 대표적인 현재 구현은 OpenGL이다.[2]

게임 오브젝트는 엔티티와 컴포넌트로 구성되며 이동·모델·광원·사운드·물리 상태를 서로 분리해 관리한다. 물리는 정적·동적·운동학적 강체와 충돌·트리거 및 레이캐스팅을 지원하고, 오디오는 위치에 따라 감쇠되는 3D 소리와 여러 음향 파일 형식을 처리한다. 모델은 Assimp로 읽고 이미지·큐브맵과 JSON 등 게임 리소스는 공통 자산 로더를 통해 관리한다.

개발 도구에는 ImGui 기반 도킹 가능한 사용자 인터페이스와 텍스처·메시·재질·컴포넌트 편집기, 장면 직렬화와 파일 열기·저장 기능이 포함된다. 런타임 GLSL 수정과 동적 라이브러리를 통한 C++ 코드 갱신 기능이 개발 흐름을 지원한다. 특정 장면의 렌더링·충돌과 사운드 범위를 시각화하는 디버깅 도구도 제공해 엔진의 내부 동작을 관찰하며 프로젝트를 확장하도록 한다.[3]

Git 저장소는 CMake와 서브모듈을 이용하여 샘플 프로그램과 프로젝트 템플릿을 빌드하도록 안내한다. 기본 목표는 x86-64이고 Windows 및 Linux를 지원하며, 다른 운영체제에서의 빌드 가능성은 해당 플랫폼 코드와 GPU 백엔드 이식 상태에 달려 있다. 메이저 버전에서는 API가 크게 바뀔 수 있어 예제와 엔진 소스의 버전을 함께 관리할 필요가 있다.

MxEngine은 공개적으로 소스를 열람하고 수정할 수 있는 프로젝트이며 공식 저장소에는 LICENSE 파일과 여러 서드파티 라이브러리의 의존성 목록이 있다. 현재 제공되는 자료에서 라이선스 원문 전체를 검증하지 못한 경우에는 특정 SPDX 식별자를 임의로 확정하기보다 저장소 원문을 기준으로 해야 한다. MxEngine은 컴퓨터 그래픽스 기술과 엔진 시스템을 직접 통합하여 학습하고 실험하는 C++ 엔진의 사례다.[4]

역사

개발사와 기술 계보

설계 목표와 실행 모델

엔진 아키텍처와 게임 객체

렌더링·그래픽스

물리·애니메이션·오디오

프로그래밍과 제작 도구

플랫폼·빌드

라이선스와 소스 공개

주요 작품과 영향

관련 문서

  1. MxEngine 공식 저장소 ↩
  2. MxEngine 렌더링 기능 목록 ↩
  3. MxEngine 공식 README의 편집·확장 기능 ↩
  4. MxEngine 원본 저장소와 사용 조건 ↩