Block game test
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
Install instructions
Extract zip and run exe
Leave a comment
Log in with itch.io to leave a comment.