← Back to Projects

engine

Planetary Voxel 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.

Screenshots

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.

Challenges

  • My first time working with DirectX 12, which was a steep learning curve in terms of understanding the graphics pipeline and low-level rendering concepts
  • Adapting voxel systems designed for flat worlds to work on a spherical surface
  • Managing chunk streaming efficiently while maintaining seamless transitions
  • Handling terrain deformation across chunk boundaries without visual artifacts
  • Balancing CPU mesh generation with GPU rendering performance
  • Designing coordinate systems that remain stable across a curved world

Lessons Learned

  • Deeper understanding of spatial transformations and coordinate systems
  • Practical experience with DirectX 12 and low-level rendering pipelines
  • Techniques for managing large procedural datasets in real time
  • The importance of balancing flexibility, performance and complexity in engine design