# About

This repository is for a Voxel Game Engine based on [this](https://daymare.net/blogs/voxel-engine-in-a-weekend/) blog post.

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

![a wireframe cube](.attachments/wireframe-cube.png)

## World Mesh Rendering - 11/10/25

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

![cube world](.attachments/world-render.png)

## 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!)](.attachments/chunk-render.png)

## 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](.attachments/chunk-generation.png)

## 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](.attachments/voxel-types.png)

## 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.](.attachments/raycasting_test.png)

### 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](.attachments/fixed-raycast.png)

## 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](.attachments/physics.png)

## 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.](.attachments/data-structure-redo.png)

## 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](.attachments/perlin-noise.png)
