------------------------------------------------
███████╗██████╗░███████╗██████╗░░█████╗░░██████╗
██╔════╝██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔════╝
█████╗░░██████╔╝█████╗░░██████╦╝██║░░██║╚█████╗
██╔══╝░░██╔══██╗██╔══╝░░██╔══██╗██║░░██║░╚═══██╗
███████╗██║░░██║███████╗██████╦╝╚█████╔╝██████╔╝
╚══════╝╚═╝ ╚═╝╚══════╝╚═════╝ ╚════╝ ╚═════╝
------------- 𝓑𝓸𝓻𝓷 𝓯𝓻𝓸𝓶 𝓬𝓱𝓪𝓸𝓼 -------------
A Rust attempt at a graph-based rogue-like/lite level generator, heavily inspired by this blog article by Ondřej Nepožitek.
This is built to serve as a level generator for a Bevy based sidescroller project I am working on. Most roguelike dungeon generators focus on a single holistic map, but I want a more metroid-like map where paths and difficulty are based on a directed graph with precalculated connections.
cargo build
cargo run --release
- Generates a random algorithmic graph
- Assigns weights to each graph node (for difficulty and progress)
- Procedurally steps through the graph and assigns a random fitting room shape
- Assigns connecting doors
- Prints out a nice map
- Graph algorithms
- Room randomiser
- Room shape fitting
- Start room + Boss room
- Unit tests
- Making this a crate
- Distinctive areas
- Portals/Stairs to different areas
- Backtracking for more optimal connections
rustc 1.58.0
cargo 1.58.0
This is a hobby project to learn a little about the following:
- Graph theory
- Level generation algorithms
- More Rust
Quality is definitely not up to scratch because of my very limited time and a beginner's understanding of algorithms.