Rustcraft

RustCraft is a hobby project delving into High Performance low level software. Written in Rust and using Bevy, it focuses on delivering high performance voxel rendering. It features an Entity Component System (ECS) based rendering system, threaded networking, mesh building, asset management, render engine and AABB physics engine with the goal of making performance problems in voxel games a problem of the past.
Features
- ECS - Based on an Entity Component System (ECS) architecture, allowing for flexible and efficient game object management.
- Networking - Custom networking protocol capabilities utilising Http3’s Webtransport API for low latency and high throughput networking for Web clients.
- Voxel Rendering - High performance voxel rendering using a custom mesh builder.
- Physics - Custom physics engine for efficient voxel collision detection.
Technologies Used
- Website: Vue.js
- Client: Rust, Bevy, Webtransport
- Server: Rust, Docker
Making Of
RustCraft has taken countless hours of work, learning low-level programming concepts and technologies. It has been a journey of learning and exploration, so I documented the journey in the form of this video on YouTube.
If you want to see more, check out my blog post on the mid-project review of RustCraft here.
History
RustCraft has been through many iterations and rewrites where the technology stack has changed, this is natural for a hobby project with the goal of learning and exploring new technologies.
A basic timeline of RustCraft’s history is as follows:
- 2020 - RustCraft was started using Rust and a light wrapper over Vulkan (Vulkano), using no ECS it was entirely custom other the the addition of winit for windowing
- 2021 - RustCraft was rewritten using wgpu-rs and the specs ECS library, this was a major rewrite to allow for more compatibility and to solve architectural problems
- 2023 - RustCraft was converted to use the bevy game engine, this was to allow for the parts of the engine that were not core to the mission of learning rendering and high performance software to be handled such as input, windowing and audio