Reddit

Update on my planet engine: the surface is now built from plate tectonics and climate

Exolune, 판구조와 기후로 실규모 행성 지형 생성

Exolune은 판구조 계산으로 대륙과 산맥 등 큰 지형을 만들고 기후에 따라 지표 재료와 식생을 배치하는 우주 게임 프로젝트입니다. GPU에서 카메라 주변 지형을 계산해 궤도와 지표면을 잇지만, 태양계 탐험과 지상 활동 등 게임 콘텐츠는 개발할 과제로 남아 있습니다.

본문

Exolune은 자체 행성 엔진으로 실제 지구와 같은 반지름 6,378km의 행성을 비행하는 우주 게임 개발 프로젝트입니다. 저장소는 궤도에서 지표면까지 화면 전환이나 로딩 화면 없이 이동하도록 설계했다고 설명합니다. 행성 전체를 지도나 배경 이미지로 대신하지 않고, 카메라 주변 지형을 GPU에서 계산하며 서로 다른 고도에서도 같은 행성을 보여주는 방식입니다.

표면의 큰 지형은 실행을 시작할 때 판구조 계산으로 만듭니다. 이 과정에서 대륙과 산맥, 해구, 열곡, 해안선이 만들어집니다. 이어 바람과 지형을 바탕으로 기후를 계산하고, 기후에 따라 바위와 자갈, 모래, 풀과 눈 같은 지표 재료 및 나무와 관목의 분포를 정합니다. 화산 지형도 섬호와 환초 같은 형태로 구현합니다.

고도가 낮아지면 지질에 맞춰 세부 무늬를 더하고, 지표면 가까이에서는 이중 정밀도 계산과 사진 스캔 자료를 사용합니다. 나무와 관목은 가까이서 3차원 모델로, 멀리서는 간략한 이미지 표현으로 그립니다. 구름은 행성 전체 기상 지도에 기반한 체적 표현으로 만들며 바람에 따라 이동하고 지표에 그림자를 드리웁니다. 개발 문서에는 대기와 바다 표현도 포함돼 있습니다.

현재 저장소에서 확인되는 조작은 조종석이나 추적 시점에서 우주선을 비행하고 자유 카메라로 주변을 살펴보는 방식입니다. 다만 태양계를 탐험할 이유나 착륙한 뒤 할 활동 등 게임의 나머지 부분은 앞으로 만들 대상으로 설명합니다. 개발자는 게임플레이와 게임 디자인, DirectX 12 기반 그래픽 프로그래밍, 3D 아트와 사운드, 절차적 생성 분야의 협력자를 찾고 있습니다. 침식과 강 생성은 진행 중인 작업으로 제시하고 다른 행성과 위성도 향후 계획에 넣었습니다.

프로젝트를 실행하려면 Windows 10 또는 11과 Visual Studio 2022의 C++ 데스크톱 개발 도구, Windows SDK, 이중 정밀도 셰이더를 지원하는 DirectX 12 GPU가 필요합니다. 저장소의 PowerShell 빌드 스크립트를 실행하면 첫 빌드는 약 4분이 걸립니다. 첫 실행 때 지표면 사진 스캔 자료 28MB를 내려받고, 식물 모델 생성에는 Python 3이 필요합니다.

자료: GitHub / 정리·해설: Trawling