engine

A voxel-based planetary engine built in C++ with DirectX 12, featuring procedural spherical worlds, chunk streaming and real-time terrain deformation.
A play test demo of the planetary voxel engine, showcasing terrain deformation, chunk streaming and real-time rendering.

01 — Curved planetary tests

02 — Grass and Mud

03 — Stone and Terrain Deformation

04 — Snow and Suns

05 — Flying

06 — Textures and Atmosphire

07 — Clouds and Biome colours.
This project started as a simple question: what if Minecraft-style voxel worlds were built on a fully spherical planet instead of a flat grid? That idea quickly evolved into a full custom engine focused on solving the technical challenges of planetary voxel rendering.
At its core, the engine handles procedurally generated spherical worlds, where traditional voxel assumptions break down. Instead of a flat coordinate system, the terrain is mapped across a curved surface, requiring careful handling of chunk positioning, coordinate transformations and level-of-detail management.
The system implements chunk streaming to dynamically load and unload sections of the planet based on player position. This allows large-scale worlds to be explored without overwhelming memory or performance, while still maintaining real-time responsiveness.
Terrain deformation is fully supported, allowing the player to modify the surface in real time. This required handling updates across chunk boundaries and ensuring mesh consistency while maintaining performance.
Rendering is handled through a custom DirectX 12 pipeline, giving fine-grained control over performance and resource management. The project explores low-level graphics concepts such as GPU memory usage, batching, and efficient mesh generation.
This project is less about building a game and more about exploring engine-level problems: how to represent curved voxel worlds, how to stream and update large datasets efficiently, and how to maintain performance in a dynamic environment.