simpledungeongenerator
v0.9.6
Published
A simple dungeon generator for roguelike games.
Downloads
16
Maintainers
Readme
Simple Dungeon Generator
A simple dungeon generator for javascript (typed) and the browser with only one dependency (for seeded random numbers).
Highly configurable, but with sensible defaults.
Demo: https://purukitto.github.io/SDGdemo/
See the latest changelog here
Installation
npm
npm install simpledungeongenerator
yarn
yarn add simpledungeongenerator
Usage
Simplest dungeon with:
// ESM
import simpleDungeon from "simpledungeongenerator";
const dungeon = new simpleDungeon();
dungeon.drawToConsole();
// CJS
const simpleDungeon = require("simpledungeongenerator").default;
const dungeon = new simpleDungeon();
dungeon.drawToConsole();
<!-- Browser -->
<!-- path to bundle -->
<script src="./node_modules//simpledungeongenerator/dist/bundle.js"></script>
<script>
const dungeon = simpleDungeon();
const svgContainer = document.getElementById("svg-container"); // SVG container
dungeon.drawToSVG(svgContainer, 5, {
withIndex: true,
withColour: true,
});
</script>
Options
| Option | Type | Default | Description | | -------------- | ------ | ------------ | --------------------------------------------------------- | | seed | string | "purukitto" | Seed for the random number generator | | maxH | number | 50 | Maximum height of the dungeon | | maxW | number | 50 | Maximum width of the dungeon | | type | string | "Base" | Type of the dungeon to generate (Currently has no effect) | | roomTries | number | 150 | Number of times to try to generate a room | | extraRoomSize | number | 0 | Extra size to add to the room | | windingPercent | number | 50 | Percentage of the dungeon to be winding | | tiles | Object | defaultTiles | Tiles to use for the dungeon | | startIndex | number | 1 | Index to start the dungeon from |
Properties
| Property | Type | Description | | -------- | ---------- | ---------------------------------------- | | map | object[][] | A 2D array representing the dungeon map. | | rooms | Room[] | An array of rooms in the dungeon | | tiles | Object | The tiles used for the dungeon |
Methods
| Method | Description | | --------------- | -------------------------------- | | drawToConsole() | Draws the dungeon to the console | | drawToSVG() | Draws the dungeon to an SVG |
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Acknowledgements
- seedrandom - Seedable random number generator
- Article - Fabulous article on dungeon generation
- changesets - Used for managing changelogs and releases
- Rollup - Used for bundling the library