DungeonRS is a cross-platform map editor for tabletop RPG sessions, inspired by DungeonDraft. Built with Rust and the Bevy game engine, it provides an efficient and responsive tool for creating detailed dungeon maps with asset management, layered editing, and project serialisation capabilities.
- Visual Map Editor: Intuitive interface for creating and editing dungeon maps
- Asset Management: Organised system for managing tiles, textures, and map elements
- Layer-based Editing: Multiple layers for organising different map components
- Cross-platform: Native support for Windows, macOS, and Linux
- Modular Architecture: Plugin-based system with separate crates for different functionality
- Rust 1.89.0 or later (managed via
rust-toolchain.toml) - System graphics drivers supporting OpenGL or Vulkan
- Developer mode enabled (Windows only, see CONTRIBUTING).
-
Clone the repository:
git clone https://github.com/dungeon-rs/dungeon-rs.git cd dungeon-rs -
Install Rust toolchain:
rustup show
-
Build and run the development editor:
BEVY_ASSET_ROOT=. cargo run -p drs-editor -F drs-editor/dev
For production use without debug features:
cargo build --release --locked --workspaceThe project includes a justfile for common development tasks:
cargo install just
just setup # Install development dependencies
just run # Run the development editor
just test # Run test suite
just lint # Run linting checks
just ci # Run all checks a PR would run on GitHub ActionsDungeonRS uses a workspace-based architecture with the following crates:
drs-assets: Asset loading, management, and scripting systemdrs-cli: Command-line interface for project management and asset managementdrs-config: Configuration management and settingsdrs-data: Core data structures for projects, levels, and layersdrs-editor: Main application binary and UI integrationdrs-i18n: Internationalisation supportdrs-core: Project serialisation and file operationsdrs-logging: Logging and error handlingdrs-serialization: Serialisation and deserialization of project datadrs-ui: User interface components and layout managementdrs-utils: Shared utilities and helper functions
DungeonRS supports custom configuration files. Specify a config file when launching:
cargo run -p drs-editor -- --config-file path/to/config.tomlConfiguration options include logging levels, language settings, and editor preferences.
Contributions are welcome! Please see CONTRIBUTING for development setup instructions and guidelines.
This project is licensed under the terms specified in the LICENSE file.