Nebula Engine

Nebula Engine은 독일의 Radon Labs가 개발한 Nebula Device를 계승하는 공개 3차원 게임 엔진 계열이다. 원래의 Nebula·Nebula2·Nebula3는 렌더링, 게임 상태·객체와 제작 도구를 분리하여 다양한 프로젝트에 활용하는 기술로 발전했으며, Radon...

분류게임 엔진, 데이터 중심 3차원 게임 엔진
기술적 전신Nebula Device·Nebula2·Nebula3
초기 개발사Radon Labs
현대 개발gscept, Luleå University of Technology 출신 개발진 및 공개 기여자
원형 개발자André Weissflog 등 Radon Labs 개발진
구현 언어C++20
주요 그래픽스Vulkan 1.2 이상
이전 그래픽스OpenGL 4.3·Direct3D 계열의 역사적 구현
실행 모델데이터 중심 설계와 ECS 기반 엔티티
게임 스크립팅C# 등 세대·구성별
주요 렌더링PBR, 클러스터링, 볼류메트릭 조명, 가상 텍스처
시뮬레이션스키닝·애니메이션, 물리 미들웨어 연동
개발 도구에셋 배치 변환기·디버그 편집기·프로파일러
빌드 시스템CMake, fips, Python
현재 개발 대상Windows 중심, Linux 지원 개발 중
추가 요구Vulkan 1.2 GPU·드라이버, CMake 3.21 이상
공개 형태소스 코드 공개 및 외부 사용 가능
라이선스Nebula 저장소 원문 및 외부 미들웨어별 조건
공식 소스gscept/nebula
공식 기술 문서Nebula Documentation
과거 개발 자료Nebula Device 개발자 기록

Nebula Engine은 독일의 Radon Labs가 개발한 Nebula Device를 계승하는 공개 3차원 게임 엔진 계열이다. 원래의 Nebula·Nebula2·Nebula3는 렌더링, 게임 상태·객체와 제작 도구를 분리하여 다양한 프로젝트에 활용하는 기술로 발전했으며, Radon Labs의 활동이 끝난 뒤에는 스웨덴 Luleå University of Technology와 연결된 gscept 개발진이 Nebula3를 이어받아 현대화했다. 오늘날의 gscept/Nebula는 Radon Labs 시대의 엔진을 단순히 재배포하는 제품이 아니라 렌더러와 데이터 모델·빌드 도구를 지속해서 재구성한 현대적인 C++ 게임 엔진이다.[1]

Radon Labs의 André Weissflog는 2007년 Nebula2가 안정화되었고 개발의 초점이 상위 게임 프레임워크 Mangalore와 Nebula3로 이동했다고 설명했다. Nebula3는 Foundation, Rendering과 Application 계층을 다시 설계하는 주요 개정으로, 과거의 장면·스크립팅과 리소스 관리 경험을 유지하면서 실행 시스템을 새롭게 구성했다. gscept는 이 계열을 교육·연구와 게임 개발에 활용하기 위해 이어받았으며 한때 OpenGL 4.3 중심 렌더러를 개발했다. 현대 공개 저장소는 Vulkan 기반 구조를 안내하므로 이전 Nebula2·Nebula3의 API와 현재 코드를 하나의 고정된 사양으로 취급해서는 안 된다.[2][3]

현대 Nebula의 기본 설계는 데이터 중심 아키텍처와 다중 스레드 실행이다. 엔티티는 오브젝트의 상태·속성을 구성 요소 형태로 표현하고, 관련 시스템이 필요한 데이터를 묶어서 처리한다. 기존 Nebula의 데이터베이스 중심 엔티티 모델을 발전시키면서 ECS의 구성 요소 및 자동 직렬화·역직렬화 개념을 수용했다. 이 방식은 게임 객체의 기능을 복잡한 상속 계층에 고정하지 않고 런타임 메모리 배치와 자료 흐름에 맞추어 조직하려는 방향이며, 개발자가 장면과 게임 규칙을 독립적으로 확장할 수 있도록 한다.[4]

렌더링 분야에는 물리 기반 재질(PBR)과 클러스터링 구조가 핵심으로 제공된다. 같은 공간 구조에서 광원·데칼·안개 영역을 관리하고, 화면 공간 반사·주변광 차폐, Cascaded Shadow Maps, 볼류메트릭 조명과 GPU 연산을 이용한 파티클 등을 표현한다. Vulkan을 이용하는 최신 렌더러에는 비동기 컴퓨트, 가상 텍스처 및 지형 시스템, 작업을 여러 스레드에서 기록하는 기능이 소개돼 있다. 일부 효과는 계속 개발 중이라고 프로젝트가 명시하므로 기술 목록에 존재한다는 사실과 모든 사용 환경에서 완성·안정화됐다는 사실을 구별해야 한다.[5]

개발 과정은 fips 빌드 도구와 CMake, Python·플랫폼별 컴파일러를 중심으로 이루어진다. 공식 예제에서는 nebula-demo의 종속성을 받은 후 assetbatcher로 모델·텍스처와 콘텐츠를 실행용 자료로 변환하고, 명령줄의 -editor 옵션으로 편집·개발 기능을 켤 수 있다. 벤치마크와 프로파일링, 테스트 코드가 포함되며 장면과 게임의 실행 프로그램을 만들기 위해 엔진·도구·자산 파이프라인을 연동해야 한다. 소스 버전과 컴파일러·Vulkan SDK 및 외부 물리 라이브러리의 조합은 실행 환경의 호환성에 직접 영향을 미친다.[6]

현재 공개 저장소는 Windows와 개발 중인 Linux 지원을 안내하며 C++20 컴파일러·Vulkan 1.2 이상을 요구한다. 원본 Nebula Device가 지원했던 플랫폼과 오늘날의 개발 대상은 같지 않다. 엔진 소스는 공개돼 있지만 함께 사용되는 PhysX·기타 미들웨어와 자산에는 별도의 라이선스가 적용될 수 있으며, 역사적 Nebula3 SDK의 외부 RakNet·FMOD 등은 상업 이용 조건이 독립적이라는 설명이 남아 있다. 기술 보존에서는 원래 Radon Labs 코드·연구용 포크·최신 gscept 코드를 세대별로 구별해야 한다.[7][8]

역사

기술 계보와 개발 목적

엔진 아키텍처

실행 모델과 게임 객체

프로그래밍·스크립팅

렌더링과 그래픽스

물리·애니메이션 및 AI

입력·오디오·네트워크

자산 파이프라인과 편집기

플랫폼 지원과 빌드

라이선스와 소스 공개

주요 활용 및 기술적 영향

관련 문서

  1. Nebula Trifid: Nebula3와 Radon Labs의 계보 ↩
  2. André Weissflog: Nebula2와 Nebula3 개발 기록 ↩
  3. Nebula Trifid 기술 개요 ↩
  4. Nebula 공식 문서: Entity system ↩
  5. Nebula 공식 저장소: 렌더링 기능 ↩
  6. Nebula 공식 빌드 절차 ↩
  7. Nebula3 원본 SDK와 외부 라이선스 ↩
  8. 현대 Nebula 소스와 라이선스 파일 ↩