Amazer
Simple but easily extensible library to generate mazes, written in TypeScript.
Installation
npm i amazer
Usage
Simple Example
; .usingRandomizedPrim .andModifierEmmure .build;;
Results in mazes like this:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ # # # # # # # # # # # # # # # # # ┃
┃ # # # # # ┃
┃ # # # # # # # # # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # # # # # # # ┃
┃ # # # # # ┃
┃ # # # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # ┃
┃ # # ┃
┃ # # # # # # # # # # # # # # # # # ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Complex Example
; .usingNystrom, .andModifierEmmure .andModifierBreakPassages, .andModifierRemoveDeadends, .build;;
Results in mazes like this:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # # # ┃
┃ # # # # # # # # ┃
┃ # # # # # # # # # # ┃
┃ # # # # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # ┃
┃ # # # # # # # # ┃
┃ # # # # # # # # # # ┃
┃ # # # # # ┃
┃ # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # # # # # # # # # # ┃
┃ # # # # ┃
┃ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Built-In Generator Algorithms
Algorithm | Characteristics | Configuration |
---|---|---|
RecursiveBacktracker | Generates dense, perfect areas with low branching factor and many long corridors. | / |
RandomizedPrim | Generates dense, perfect areas with high branching factor and many deadends that are easy to solve. | / |
RandomizedKruskal | Generates dense, perfect areas with high branching factor and many deadends that are easy to solve. | / |
Nystrom | Generates dense, perfect areas with rooms. Uses RecursiveBacktracker to fill the space between rooms. |
|
Built-In Area Modifiers
Modifier | Effect | Configuration |
---|---|---|
Emmure | Surrounds an area with a solid wall. May increase the areas size. | / |
BreakPassages | Replaces random wall tiles that have exactly 2 floor tiles as neighbours with floor tiles. The path length between the 2 floor tiles must be greater equals than a mininum distance. |
|
RemoveDeadends | Removes a targeted amount of deadends (tiles with a single walkable neighbour), replacing them with wall tiles. |
|