This is purely a passionate project. The v0 of this engine, mc.js, was brutally taken down by Microsoft by a DMCA strike with some false claims (claimed that I was collecting actual MC user information even though mc.js wasn't deployed anywhere), so although inspired, I have to clarify that this voxel engine is NOT affiliated with Minecraft, nor does it have any intention collecting existing Minecraft user information (or from any licensed voxel engines). This engine is simply made out of passion, and the textures and assets used in the game are all either licensed for free use or hand-drawn by me. I am a big fan of Minecraft, so Mojang/Microsoft, if you see this, let's work together instead of taking me down :) (Minecraft web demo?)
- Define custom blocks with custom static or dynamic mesh
- Great support for flexible combinational rendering logic
- Easy-to-decouple server structure to refine the server-side logic
- Isolated modules that just work
- Realtime built-in multiplayer support
- Fast voxel chunk mesh generation on both client and server side (multithreaded)
- Multi-stage chunk generation with chunk overflow support
- No need to worry if a tree overflows to neighboring chunk, that is handled automatically
- Fully configurable chat system with commands registry
- AABB Physics engine that works with any static or dynamic blocks
- Auto-stepping, raycasting, all included
- Entity-to-entity collision detection and resolution system
- Periodic world data persistence
- Robust event system for custom game events
- For-dev debug panels that look nice
Checkout the Voxelize documentations here:
Before starting, make sure to install the following:
# clone the repository
git clone https://github.com/shaoruu/voxelize.git
cd voxelize
# download dependencies
pnpm install
# generate protocol buffers
pnpm run proto
# fresh build
pnpm run build
# in a separate terminal, start both frontend/backend demo
pnpm run demovisit http://localhost:3000
- The server watch loop (
pnpm demo:rs) builds with therelease-devprofile: the sameopt-level = 3runtime performance asrelease, but with incremental compilation and minimal debug info for much faster edit-rebuild cycles. Use it manually withcargo run --profile release-dev --example demo. Published/production builds should keep using--release. - If you consume Voxelize as a submodule of a parent cargo workspace, cargo takes profiles from the parent's root
Cargo.toml— copy the[profile.release-dev]block there to get the same fast iteration. - Rust >= 1.90 links with the fast bundled
rust-lldon x86_64 Linux out of the box; see.cargo/config.tomlfor opt-in lld linking on other platforms and an opt-insccacheshared cache.
If you like our work, please consider supporting us on Patreon, BuyMeACoffee, or PayPal. Thanks a lot!





