The Dungeonator is, as the title indicates, a procedural dungeon crawl generator. When completed, it will override the native world generation code entirely, producing an infinite expanse of mines, tunnels, caves, and more, packed with mobs, traps and treasures.
Potential future additions include: biomes (lava, ice, forest, aquatic), classes, NPCs, quests, an automated DM (Dungeonator Master), procedural or prefab puzzles, ...
I'm using a combination of pure procedural generation and tile-based prefabs to assemble the dungeon. This allows for a great deal of flexibility and variety, as I can seamlessly drop nice hand-made tiles or sets of tiles into the sea of procedural content.
Underground biomes are also a possibility.
Prefab 'widgets' can be used to decorate tile-based chunks. They can also be used to dynamically populate procedural chunks based on dimensions and tags.
This information is laughably preliminary and subject to significant change. This rough road map comprises the earliest phase of this project. At the end of this phase, the Dungeonator will be generating an infinite (a little birdy told me it was 8 times the size of the Earth) labyrinth of very uninteresting rooms and passages. After that, the real fun can begin.
- [Done] 0.0.1 “Flatland” - Flat, featureless terrain generation with stone base.
- [Done] 0.0.2 “Labyrinth” - Simple NESW tile-based generation and edge/entry matching. Effectively an infinite random maze. Experiment with storage and import mechanisms for tiles. Build basic Chunk Editor.
- [Done] 0.0.3 “Compass Rose” – 12-exit tile-based generation and matching. More complex pathways can emerge. Experiment with exit weighting to vary likelihood of loops and overall difficulty of traversal. Experiment with procedural generation for passage chunks.
- [In Progress - 67%] 0.0.4 “Great Hall” – Experiment with room types, e.g.: storage/cell (1-exit), wide passage (2-exit), hub (3+ exit). Experiment with room weighting vs. passage weighting in overall generation scheme. Multi-chunk rooms. Candidate selection based on exit and wall compatibility. Experiment with size weighting and need for chunk pre-reservation.
- [Not started] 0.1.0 – Revisit design and formulate further goals