Nightshade is a data-oriented game engine written in rust π¦
π Read the Book - Comprehensive guide covering all engine systems.
The fastest way to get started is with the nightshade-template.
Nightshade uses a modular feature system for fine-grained dependency control.
nightshade features:
βββ core βββββββββββββββ Minimal: windowing, math, ECS, time
βββ text βββββββββββββββ 3D text rendering (cosmic-text + swash)
βββ behaviors ββββββββββ Built-in entity behaviors (stateless, WASM-compatible)
βββ assets βββββββββββββ Asset loading (gltf, image, bincode, lz4)
βββ runtime ββββββββββββ core + text + behaviors
βββ engine (default) βββ runtime + assets + scene_graph + terrain + picking + file_dialog + more
βββ full βββββββββββββββ engine + audio + physics + gamepad + navmesh
β
β Add-on features:
βββ wgpu βββββββββββββββ GPU rendering (dx12, metal, vulkan, webgpu)
βββ audio ββββββββββββββ Audio playback (kira)
βββ physics ββββββββββββ 3D physics (rapier3d)
βββ gamepad ββββββββββββ Controller input (gilrs)
βββ navmesh ββββββββββββ Navigation mesh (rerecast)
βββ grass ββββββββββββββ GPU grass rendering
βββ terrain ββββββββββββ Procedural terrain generation
βββ steam ββββββββββββββ Steam integration
# native
just run
# wasm (webgpu)
just run-wasm
# serve site
cd site && just serveAll chromium-based browsers like Brave, Vivaldi, Chrome, etc support WebGPU. Firefox also supports WebGPU now starting with version
141. Runjustwith no arguments to list all commands
- just
- trunk (for web builds)
- git-cliff (for changelog generation)
- gh (GitHub CLI, for creating releases)
Build and run natively using cargo:
just run [project] # defaults to nightshade-editor
just build # release buildBuild for web browsers with WebGPU support:
just run-wasm [project] # defaults to editor
just build-wasm [project]See STEAM_DECK.md for deployment instructions.
See STEAM.md for Steam integration (achievements, stats, friends).
See PROFILING.md for detailed profiling and logging documentation.
Nightshade is currently in its early stages of development. The project is not accepting external contributions at this time as the architecture and core systems are still being established. Once the engine reaches a more mature and stable state, I will open up contributions and provide contributor guidelines.
Nightshade is free, open source and permissively licensed! All code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in nightshade by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
