Skip to content

nils-mathieu/blocks_n_stuff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cool thing I made in two weeks.

This project is supposed to be sort of a Minecraft clone to show off my skills in graphics programming.

A web version of this project is available at https://nils-mathieu.fr/blocks_n_stuff/, but it's a bit buggy. I would definitely recommend using the native version if possible. Prebuilt binaries are available in the releases tab, or you can follow the instructions below to build it yourself (you only need a basic Rust toolchain!).

See the feature list for a list of features.

Credits

The textures are from the 8bit Craft 2 resource pack by burritoeatinghamster .

Most sound effects are from Minecraft, except from the music that I created myself.

The font is a public domain font often used in systems development because it comes in a C header file. https://github.com/dhepper/font8x8

Most structures are built by my little brother.

Screenshots

Structures can be added easily to the game using in-game tools. After that, a simple macro can be used to add it in game.

Creating a custom structure Code to add a custom structure

The world generator is easily customizable, biomes can be added and modified easily.

Oak Forest Biome Pine Forest Biome Code to add a biome

A debug menu is available to check the performance of the game, as well as some statistics about the world (I also wanted to show off my render distance :p ).

Debug menu

Here are some miscellaneous screenshots:

Little house Ruines Cool landscape

Technologies

This project uses the following thrid-party Rust libraries:

  • wgpu, a cross-platform abstraction over Vulkan, Metal, DX12, OpenGL and WebGPU. I would've liked to use Vulkan directly, but that would make the project unusable on web, which I really want to target.
  • winit, a cross-platform windowing library.
  • glam, a linear algebra library that makes use of SIMD instructions to optimize most operations.
  • png, a PNG image decoder/encoder.
  • rodio for cross-platform audio playback library.

Keybindings

Movements

Key Action
W Move forward
A Move left
S Move backward
D Move right
Space Fly Up
Left shift Fly Down
Left control Sprint
C Previous block
V Next block

Misc

Key Action
Escape Exit game
R Re-create world
U Increase time speed
Arrow up Increase render distance
Arrow down Decrease render distance
F9 Toggle shadows
F10 Toggle fog
F11 Toggle fullscreen

Debug

Key Action
F3 Toggle debug overlay
F4 Toggle chunk borders