This game is an exploration of three things:
- Rust
- Amethyst
- Spooky Moon Dungeons
I was able to combine Amethyst with the wonderful WaveFunctionCollapse implementation by @stevebob to achieve a procedurally generated roguelike dungeon based on an arbitrarily chosen tilemap. You can load any tilemap you like in to the editor and generate a file compatible with the game engine allowing you to swap out the tileset as you like.
Additional thanks to Elthen for the wonderful free sprite sets available here, and Adam Saltsman's Sci Fi Sprites (psst check out Overland)
cargo run --bin sanity
to run the game. Or download at https://wastrel.itch.io/moonsanity
cargo run --bin editor
Left click to select a tile.
Right click to choose southern compatible tiles.
Hold D and right click to select eastern compatible tiles.
Push S to save a .ron
file with the information about compatible pairs.
The ron file may need to be edited manually to mark walkable tiles and null tiles (blank). Some constants are still present in the game source and will need to be modified to enable level generation. See sanity-bin/src/state/room.rs and sanity-bin/src/map.rs
- Clone this repo.
- Install required tools below for your OS.
- Run
cargo run
- ???
- Profit
Ensure that the cargo bin directory (usually ~/.cargo/bin
) is in your PATH.
Ensure that the python bin directory is in your PATH.
- XCode (Mac OS only, must be full version not just command line tools, for using metal gfx backend)
- cmake (for building vulkan libraries)
- rust-analyzer
Works best with VSCode, disable official Rust plugin.
- cargo-edit -
cargo install cargo-edit
for upgrading/adding/deleting dependencies. - cargo-outdated -
cargo install cargo-outdated
for checking if dependencies are out of date. - grip -
pip install grip
for editing README.md