Saving and Loading by Charles Homan

Chunks and entities will now be saved to disk when they go out of the render distance or when the game is closed. The file names include the chunk positions so when I need to load data at a specific chunk location I can do a file lookup for what the filename should be. Disk read and writes are multithreaded which help with reducing hitching. The data uses Run-length encoding to reduce load times and file size. On average my chunk file sizes for 65k blocks are around 1-2kb.

Items and Trees by Charles Homan

Items are what the blocks turn into when you break them. They currently collide with other blocks but not other items. I have also added trees and imgui recently, the latter of which has helped a lot with testing and general UI purposes.

Mind the Gap by Charles Homan

It has been a while since I updated so here are some of the things I have been working on. I added a simple entity system, collisions, 3D world rotations and translations based on parent/child entities, imgui, inventory system, file system, and more.

Lighting and Procedural Generation by Charles Homan

Midday

Midday

Sunrise

Sunrise

Midnight

Midnight

Dusk

Dusk

Sunset

Sunset

I have made some significant changes to lighting and procedural generation. There is now a 24 hour game period where the sun and moon do a full rotation around the world. The skyboxes lerp between each other for a starry night or a lightly cloudy day.

Below is a quick video showing the chunk generation. The debug drawing slows the generation down considerably. The following are color definitions for the chunk states.

  • Red: Unloaded

  • Green: BlocksLoading

  • Blue: BlocksLoaded

  • Yellow: VertexLoading

  • Purple: VertexLoaded

  • White: Uploaded

Raycast and Ambient Occlusion by Charles Homan

Raycast block is highlighted in green. The adjacent blocks are some of the first edited manually.

Raycast block is highlighted in green. The adjacent blocks are some of the first edited manually.

A better look at some of the ambient occlusion

A better look at some of the ambient occlusion

The first gameplay elements are now added! I guess this is where it turns from engine to game+engine. Now you can remove and place blocks. I have also added ambient occlusion and have been tuning some lighting.

Speed by Charles Homan

I recently made significant improvements to the chunk generation speed and made a video flying through the world. In the beginning, I show the chunk debug colors that indicate what state each chunk is in.

  • Red: Unloaded

  • Green: BlocksLoading

  • Blue: BlocksLoaded

  • Yellow: VertexLoading

  • Purple: VertexLoaded

  • White: Uploaded

The Beginning by Charles Homan

TooSquared Overview.png

I hope for this to be progress updates on the states of the game and problems I am working on. I don’t think there will be any consistency with updates but just whenever I feel there is something interesting or significant to share. Current state of the game has terrain generation and lighting working. The past few months I have started from scratch and am going full speed. Stay tuned for future updates.