← All posts
1 min read

Why we are building our own C++ engine

General-purpose engines are amazing — so why write our own? The short answer is voxels. The long answer is data.

Isometric voxel island of dark volcanic rock cut by glowing lava channels.

“Why not just use an existing engine?” is a fair question, and the honest answer starts with what makes voxel games unusual.

Voxel worlds are data problems

Most engines are built around meshes: hand-authored models placed in a scene. A voxel world is different. It’s a huge 3D grid of values that players can change at any moment. The hard problems aren’t about placing objects. They’re about:

  • Storage: keeping millions of blocks in memory compactly, usually in fixed-size chunks.
  • Meshing: turning chunk data into triangles quickly, and doing it again whenever a block changes.
  • Streaming: loading and generating chunks around the player without hitches.
  • Simulation: updating light (and later other systems) across the grid efficiently.

All four depend on how the data is laid out in memory. Owning that layout from the bottom up is the main reason we’re building our own engine.

What “custom” means for us

A custom engine doesn’t mean writing everything from scratch out of pride. It means we control the core loop: world data, job scheduling, meshing and rendering. We’ll use well-tested libraries where they make sense. We’ll write more about specific choices once they’ve survived contact with real content.

The trade-offs

This approach costs us time. We have to build tooling that general engines give you for free, and every feature in the game is also an engine feature. We think it’s worth it, because it lets us:

  1. Design the game around what the engine is good at, instead of fighting it.
  2. Make performance a feature, so large editable worlds run on ordinary PCs.
  3. Understand every layer of the stack, which makes problems faster to debug.

Coming up

Future engine posts will dig into chunk storage, meshing strategies and how we keep world generation off the main thread. If there’s a topic you want us to cover, suggest it on the feedback board.