Rougelike game with an ECS design pattern
  • Rust 99.1%
  • GLSL 0.6%
  • Shell 0.2%
Find a file
Abdulrazaq Alhendi 3bec0edd3e refactor(systems): centralize and streamline system scheduling
- Introduced `SystemSchedule` to modularize and manage system execution.
- Consolidated individual system calls into `SystemSchedule::run`.
- Upgraded `specs` to `0.20.0` and updated related dependencies for improved performance.
- Removed manual sequential system execution from `State`, reducing duplication.
- Cleaned up unused imports in `main.rs` and related modules.
2026-08-17 10:43:13 +03:00
raws feat: add ranged combat system 2024-04-01 20:42:49 +03:00
resources refactor: move load_rex_map() to prefab builder 2023-03-18 01:53:39 +03:00
src refactor(systems): centralize and streamline system scheduling 2026-08-17 10:43:13 +03:00
wasm refactor(raws)!: replace RAWS mutex with OnceLock-based static accessor 2026-08-17 08:42:45 +03:00
.gitignore feat: add stairs and dungeon depth 2023-02-28 14:40:02 +03:00
build.sh refactor(raws)!: replace RAWS mutex with OnceLock-based static accessor 2026-08-17 08:42:45 +03:00
Cargo.lock refactor(systems): centralize and streamline system scheduling 2026-08-17 10:43:13 +03:00
Cargo.toml refactor(systems): centralize and streamline system scheduling 2026-08-17 10:43:13 +03:00
README.md refactor(raws)!: replace RAWS mutex with OnceLock-based static accessor 2026-08-17 08:42:45 +03:00
rust-toolchain.toml refactor: replace lazy_static with LazyLock and remove lazy_static dependency 2026-08-16 14:27:36 +03:00

Rusty Roguelike

Build and run the native game with Cargo:

cargo run --release

Web build

The repository toolchain already includes the wasm32-unknown-unknown target. Build the browser package with:

./build.sh

The script reads the matching wasm-bindgen version from Cargo.lock, installs that CLI under target/wasm-tools, and emits an ES-module package in wasm/pkg. Serve the output over HTTP rather than opening the HTML file directly:

python3 -m http.server --directory wasm

Then open http://localhost:8000. Browser saves are stored in localStorage; native saves remain in savegame.json.