About

This repository is for a Voxel Game Engine based on this blog post.

Currently, however, the program only renders a single cube.

a wireframe cube

World Mesh Rendering - 11/10/25

World now renders as a single mesh! Much faster than rendering cube by cube.

cube world

Chunk Mesh Rendering - 11/11/25

Instead of making the entire world a single mesh, now the world is made up of 32x32x32 "Chunks" which are areas of the world that are a single mesh.

cube world (but in chunks!)

0.4.0 : Chunk Generation - 11/12/25

Chunks now generate around the player in a square based on a render distance. This allows the flat plane to be infinite!

infinite flat cube world

0.5.0 : Voxel Types - 11/12/25

Different voxel types are now supported in the data structures and passed to the shaders.

a world of dirt with some stone blocks

0.6.0 : Raycasting Placing - 11/13/25

When placing a block, the program now raycasts to place where the camera is looking.

a place of brown dirt with word Hi built out of stone.

0.6.1 : Raycast Bug Fixes - 11/17/25

It took me a couple of days to fix the ray casting. I forgot that my mesh is offset by 0.5, so 3/4 raycasts looked at least a block off of what the camera was looking at.

Hello, written in blocks on a dirt plane

0.7.0 : Physics - 11/18/25

Woah! The camera doesn't just phase through placed blocks anymore! The camera can also fall into the void for eternity! So cool!

The camera, sitting atop a built platform, overlooking another "Hi" built from stone

0.8.0 : Data Structure Redo - 11/19/25

Final part of the blog post tutorial. Changing the data structure of the Chunk's to store voxels in a 1d array instead of a HashMap.

Hi written on a dirt plane in stone.

0.9.0 : Perlin Noise - 11/24/25

Woah! Look at that, not a flat plane of dirt. This update adds variation to terrian height with a height map generated by perlin noise. Unfortunately, this tanks FPS. So I need to make the engine faster.

Rolling green hills

Description
No description provided
Readme 1.6 MiB
Languages
C++ 80.8%
C 18.2%
Objective-C 0.8%
CMake 0.1%