A downloadable test build

First somewhat successful attempt at a minecraft style voxel game. Made with Godot 4.2.

It's very basic, being my first attempt at something like this (excluding the 3 or 4 that never made it to a usable state). This is just a tech demo so I can show my progress, not really a playable game.

Features

  • Blocks.
  • Collisions, player movement.
  • Naive chunk meshing that supports ambient occlusion and multiple block materials.
  • Multithreading for chunk generation.
  • A block menu with many different block types to choose from.
  • Support for multiple worlds, world generation settings for seed and size.
  • Saving and loading using region files (Game is saved when pausing or quitting).


Controls:

  • WASD to move around
  • Space to jump
  • Right click to place block, left click to break
  • E To open block selection menu

Known issues:

  • Bad file loading system means I couldn't get terrain streaming working, so finite worlds only. Also don't try to quit to the menu and then delete/create a new world because it's not gonna work.
  • Memory usage is not as efficient as it could be, I had to cut a "Massive" world size option because it took up over 5gb (!). By my next attempt i'll surely have something like Mojang's palette compression working.
  • Very inefficient terrain generation. Right now i'm sampling several noise layers for every single block, instead of doing what I think most voxel games do which is sample a few points and then interpolate between them. Also no trees but that's cause I got lazy.
  • Collisions are janky, most noticeable when digging straight down or towering. I had to roll my own collision system for this project because godot's built in physics system expects to work with meshes which aren't always available in a game of this type (You might want to collide with a chunk that isn't rendered yet, or simulate entities in a half-loaded chunk outside render distance, etc. Basically meshes take time to generate and we might still need to collide during that time). It was my first time making a collision system so for me it's a miracle it even works.
  • Player position isn't saved, you'll always spawn at world origin
  • The wooden crate block shows up twice in the menu. I don't know why this happens, sometimes the blocks show up twice in the menu.


Credits:

Most textures are from PiiiXL's texture pack here https://piiixl.itch.io/textures, some others are made by me (Either hand drawn or by altering photographs from Craig Snedeker's Classic64 asset library https://craigsnedeker.itch.io/classic64-asset-library).  This thing has no artstyle really it's just a mishmash of textures with different resolutions.

The pause and block selection screens use Cyanone's pointillism shader to blur the background (https://godotshaders.com/shader/skyward-sword-pointillism-with-depth/)

Download

Download
BlockGameDemo.zip 56 MB

Install instructions

Extract zip and run exe

Leave a comment

Log in with itch.io to leave a comment.