Lumix Engine
Lumix Engine은 개발자 Mikuláš Florek(nem0)과 오픈 소스 기여자들이 개발하는 C++ 기반 3차원 게임 엔진이다. 데이터 중심 설계와 엔티티·컴포넌트 방식의 게임 객체 구성, 통합 장면·자산 편집기인 Lumix Studio, 스크립팅과 플러그인을 핵심 기술로 제공...
| 분류 | 게임 엔진, 3차원 오픈 소스 게임 엔진 |
|---|---|
| 개발자 | Mikuláš Florek (nem0) 및 기여자 |
| 개발 언어 | C++ |
| 설계 특징 | 데이터 중심 설계, 엔티티·컴포넌트 방식 |
| 핵심 도구 | Lumix Studio (통합 장면·자산 편집기) |
| 게임 로직 | Lua 스크립팅·C++ 플러그인 |
| 주요 기능 | 장면·렌더링, 애니메이션, 물리, 오디오 |
| 렌더링 | 실시간 3D 렌더링과 셰이더·재질 |
| 에셋 처리 | 모델·텍스처·리소스 임포트와 변환 |
| 편집 기능 | 프리팹, 자산 브라우저, 플러그인·핫 리로드 |
| 개발 도구 | 프로파일러·내장 GUI 및 편집기 확장 |
| 대상 운영체제 | Windows와 Linux 개발 환경 |
| 대표 공개 사례 | On the Hunt 및 공개 쇼케이스 |
| 빌드 도구 | Visual Studio, make·g++, 프로젝트 생성 스크립트 |
| 라이선스 | MIT License |
| 공식 저장소 | nem0/LumixEngine |
| 공식 위키 | Lumix Engine Wiki |
| 작업 시작 | Lumix Getting Started |
Lumix Engine은 개발자 Mikuláš Florek(nem0)과 오픈 소스 기여자들이 개발하는 C++ 기반 3차원 게임 엔진이다. 데이터 중심 설계와 엔티티·컴포넌트 방식의 게임 객체 구성, 통합 장면·자산 편집기인 Lumix Studio, 스크립팅과 플러그인을 핵심 기술로 제공한다. 단순한 그래픽스 라이브러리보다 게임의 장면과 데이터·자산을 제작하고 런타임에서 실행하는 완성된 개발 기반을 지향한다. 소스는 MIT License로 공개되어 있으며 3D 게임 및 실시간 시각화 프로젝트의 내부 엔진으로 활용할 수 있다.[1]
엔진 구조에서 게임 세계는 엔티티와 컴포넌트, 월드·장면 관련 데이터로 구성된다. 개발자는 각 엔티티에 변환·렌더링 및 물리·게임 상태를 표현하는 구성 요소를 연결하고 시스템을 통해 동작을 갱신한다. C++ 프로그램의 낮은 수준에서는 메모리와 자원, 작업 실행 및 엔진 객체를 관리하고 Lua 스크립트에서 사용자 게임 규칙을 정의할 수 있다. 이는 특정 게임에 고정된 상속 기반 객체 계층보다 구성 요소의 조합으로 기능을 확장하기 쉽게 하려는 설계 방향이다.[2]
Lumix Studio는 레벨과 자산, 객체 속성을 시각적으로 수정할 수 있는 통합 편집 환경을 제공한다. 에셋 브라우저에서 모델·텍스처 등 프로젝트의 자료를 관리하고 장면에 엔티티를 배치하며 자산 가져오기와 빌드 과정을 수행할 수 있다. 공식 위키에는 에디터와 프리팹, Lua 스크립팅, 내비게이션·물리, 플러그인 핫 리로드, 오디오와 프로파일러 관련 문서가 포함되어 있다. 개발자는 편집기에 자신만의 도구나 플러그인을 추가하여 게임에 특화된 제작 흐름을 만들 수 있다.[3]
그래픽스 시스템은 3차원 모델과 재질·카메라, 조명과 그림자 및 화면 후처리 등을 처리한다. 개발자는 셰이더와 렌더링 자료를 제작 과정에서 변환·관리하고, 런타임에서는 최종 장면을 효율적으로 렌더링하도록 구성한다. 엔진의 물리 기능과 충돌·내비게이션, 애니메이션과 오디오 시스템은 게임플레이와 연결된다. 다만 프로젝트에서 특정 서드파티 물리·사운드 라이브러리를 사용하는 경우 그 라이브러리의 라이선스와 기능 지원은 Lumix의 소스 라이선스와 독립적으로 검토해야 한다.
공식 문서의 시작 안내는 Windows에서 Visual Studio 2022와 Git을 이용해 소스·프로젝트를 구성하는 흐름, Linux에서 셸 스크립트와 Git·make·g++로 편집기를 빌드하는 절차를 설명한다. 공개된 예제 및 쇼케이스 게임으로 On the Hunt가 소개돼 있으며, 이전 LumixEngine Data 저장소는 옛 v1 버전에 대응하는 자료라 최신 런타임에 그대로 사용해서는 안 된다고 경고한다. 따라서 역사적 에셋과 편집기 버전, 현재의 소스 코드를 섞지 않고 해당 코드베이스에 맞는 데이터를 사용하는 것이 중요하다.[4][5]
Lumix Engine은 공개 GitHub 저장소를 통해 소스와 설명서·예제를 제공하고 개발자가 엔진 자체를 수정해 사용할 수 있도록 한다. 프로젝트의 라이선스는 MIT License다. 이는 Square Enix의 Luminous Engine이나 Jonathan Morton의 Lumos Engine과는 이름만 유사한 별개의 소프트웨어다. Lumix는 특히 C++ 기반의 데이터 중심 게임 엔진에서 통합 편집기와 확장 가능한 플러그인, Lua 스크립팅을 어떻게 결합하는지 살펴볼 수 있는 공개 구현 사례다.[6]