Files
desktop_dungeon_generator/README.md
T

137 lines
3.6 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
- Accessibility 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
## Run
```bash
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.