138 lines
3.7 KiB
Markdown
138 lines
3.7 KiB
Markdown
# Desktop Dungeon Generator
|
|
|
|
Desktop Dungeon Generator is a Rust desktop app for building and exporting simple tabletop RPG dungeon layouts.
|
|
|
|
It combines deterministic generation with manual editing, so you can generate a baseline layout from a seed and then adjust rooms, corridors, doors, text labels, and start/end markers directly on the canvas.
|
|
|
|
## Current Features
|
|
|
|
- Deterministic dungeon generation from a master seed
|
|
- Room generation with configurable:
|
|
- room count
|
|
- minimum and maximum room size
|
|
- square-only rooms
|
|
- packed-room mode without corridors
|
|
- Corridor generation with configurable:
|
|
- minimum and maximum corridor width
|
|
- corridor randomness
|
|
- dead-end room percentage
|
|
- Automatic door generation with configurable:
|
|
- overall frequency
|
|
- room/hallway chance
|
|
- locked door chance
|
|
- secret door chance
|
|
- middle-corridor doors toggle
|
|
- Automatic window generation with configurable:
|
|
- enable/disable
|
|
- minimum and maximum width
|
|
- overall frequency
|
|
- room/hallway chance
|
|
- internal windows toggle
|
|
- Generated start/end markers with configurable:
|
|
- minimum and maximum size
|
|
- minimum and maximum count
|
|
- placement inside rooms
|
|
- farthest-pair matching between start and end markers
|
|
- Manual editing tools for:
|
|
- rooms
|
|
- corridors
|
|
- archways
|
|
- doors
|
|
- locked doors
|
|
- secret doors
|
|
- text labels
|
|
- start markers
|
|
- end markers
|
|
- Export support for:
|
|
- `.png`
|
|
- `.jpeg`
|
|
- `.webp`
|
|
- `.svg`
|
|
- composite folder export with masks
|
|
- Colorblind mode with alternate visual encodings for rooms, corridors, walls, doors, archways, and windows
|
|
|
|
## Tabs
|
|
|
|
### Generate
|
|
|
|
Controls global generation and export:
|
|
|
|
- grid columns and rows
|
|
- master seed and random-seed button
|
|
- reset and clear actions
|
|
- export format, dimensions, and grid visibility
|
|
|
|
### Layout
|
|
|
|
Controls room, corridor, door, and window generation behavior.
|
|
|
|
Changing values in this tab regenerates the dungeon immediately.
|
|
|
|
### Start & End
|
|
|
|
Controls generated start/end marker behavior:
|
|
|
|
- minimum and maximum start marker size
|
|
- minimum and maximum end marker size
|
|
- minimum and maximum start marker count
|
|
- minimum and maximum end marker count
|
|
|
|
Changing values in this tab regenerates the dungeon immediately.
|
|
|
|
Generated markers are placed inside rooms. Matching start/end indices are paired to rooms that are as far apart as possible.
|
|
|
|
### Add
|
|
|
|
Contains manual placement tools for editing the current layout without regenerating it.
|
|
|
|
## Canvas Interaction
|
|
|
|
- Left click and drag a room to move it
|
|
- Left click and drag a start/end marker to move it
|
|
- Right click and drag a room to resize it
|
|
- Right click without dragging to cancel an active add tool
|
|
- `Delete` or `Backspace` removes the currently hovered room, corridor, door, text label, or marker
|
|
- `Ctrl+Z` undoes
|
|
- `Ctrl+Y` redoes
|
|
|
|
## Start / End Markers
|
|
|
|
The app currently supports two marker workflows:
|
|
|
|
- Generated markers:
|
|
- created automatically during dungeon generation
|
|
- always placed inside rooms
|
|
- sized from the configured min/max ranges
|
|
- paired by distance for each matching start/end index
|
|
- Manual markers:
|
|
- added from the `Add` tab
|
|
- use the configured minimum size for their marker type
|
|
- can be repositioned by dragging on the canvas
|
|
|
|
## Folder Export Masks
|
|
|
|
Folder export writes a composite image plus separate masks for:
|
|
|
|
- floors
|
|
- walls
|
|
- doors
|
|
- archways
|
|
- locked doors
|
|
- secret doors
|
|
- windows
|
|
- start markers
|
|
- end markers
|
|
- grid, when enabled
|
|
|
|
## Build and Run Yourself
|
|
|
|
```bash
|
|
git clone https://codeberg.org/Grimsace/desktop_dungeon_generator.git
|
|
cargo run
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Settings are persisted between runs using the local OS application data directory.
|
|
- The app is still pre-release and the file layout and feature set may continue to change.
|