voxel-engine/README.md
2025-11-24 13:08:22 -06:00

62 lines
2.4 KiB
Markdown

# 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)