Joe World
My last hand-written project, a Rust-based, highly-extendable game engine. Inspired by Quake, moddable like Roblox, and scaled up like Minecraft.
Designed for realtime/secure MMO-scale experiences on browsers, desktop, and mobile.
Joe World is a horizontal slice built to demo gizmo, my boutique, Quake-sized engine designed for MMO scale experiences.



+4A custom, WASM-plugin-friendly ECS
- A simple archetype-based ECS with an interface similar to Bevy's ECS
- Uses a fixed set of archetypes known at compile time for simple/fast queries and iteration
- Supports dynamically attached storages, to quickly load rooms, chunks, UIs, or services
- A WASM-friendly API/data model, for WASM-based plugins to consume with low overhead
+3Hot-reloadable Rust game logic via WASM
- The giz CLI tool wraps cargo to produce WASM-based packages
- Packages bundle game logic and asset catalogues into a singular, standalone payload
- Catalogued assets can be streamed from a simple webserver, CDN, or directly from disk
+2Reactive build system inspired by Bazel for hot reloading code and assets
- Sandboxed, WASM-based build plugins can perform complex tasks e.g. lightmapping
- Can publish asset-granular updates to the engine in realtime for hot reload
+4A custom reactive UI inspired by React, with immediate mode imgui-style painters
- A React-inspired custom UI, powered by Dioxus's reconciler
- A custom/simple bitmap-based renderer for text and fonts
- Custom rendered widgets via simple painting callbacks
- Flexbox/grid for layout via taffy
+2Asset streaming over the network, for both release builds and development
- Priority preloading/per-package batching of critical metadata like image bounds/collision meshes to prevent client misprediction before assets are downloaded
- Simple, HTTP-based caching/distribution can use basic webservers or scaled up CDNs for high throughput
+3Simple, highly portable WebGPU-based renderer inspired by Quake
- Brush/lightmap-based renderer with a very simple lighting model, designed for simplicity/portability over all
- Fast/simple rendering pipelines for world geometry and dynamic geometry similar to Source-era games
- Ultimately a basic renderer designed to not bottleneck other parts of the engine design
+2Polished platform support for web and native
- Great web support on Chrome/Safari, plus mobile versions. Growing pains on Firefox.
- Intentionally portable design, with few dependencies (filesystem not even required, assets can be loaded into memory with simple asset ID-based callbacks)
The engine is designed in a way that is most similar to Minecraft and Quake, with a fun-to-use hot-reloading build system-- written pre-AI and currently going through an evolution post-AI.
I've been spending a lot of time working on my hobby language, which will be used for game logic and incrementally replace much of the Rust under the hood except platform libs.