Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

FloorArchitect

An asset by &Drejzer
The page banner background of a mountain and forest
FloorArchitect hero image

Quick Information

0 ratings
FloorArchitect icon image
&Drejzer
FloorArchitect

Godot plugin for generating dungeon floor layouts for rogue-lites like BoI or Moonlighter.Adds new nodes "Base" nodes do not generate levels on their own, they are set up for inheritance."Sampler" nodes first generate a Maze in their setup(seed:) function and then sample parts of the maze.the generated layout is stored in "cells" member as a dictionary of CellData structures, addressed by their positions on the grid.Utils provides static methods for:getting all dead ends and crossroadsgetting all bridges and articulation points (while also checking for connectivity)getting all shortest distances (and all shortest paths), by running Dijkstra's algorithm from each cell or by using Floyd-Warshall (not recommended)Note: SelfAvoidingWalker has an error, it does not generate tree levels (as in there might be loops generated), this is not intended and will be fixed eventually

Supported Engine Version
4.1
Version String
v0.5.0a
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

This plugin is for Godot 4

The aim of this plugin is to provide a system that will genrate dungeon floor layouts, as seen in games like "The Binding of Isaac" or "Moonlighter", by implementing various algorithm that generate room layouts. It does not generate the rooms themselves, only their placement in a level (what can be seen on the "map").

The Utils provides methods for detecting briges and articulation points (together with connectivity), Shortest distances and paths between all cells.

Godot plugin for generating dungeon floor layouts for rogue-lites like BoI or Moonlighter.

Adds new nodes "Base" nodes do not generate levels on their own, they are set up for inheritance.
"Sampler" nodes first generate a Maze in their setup(seed:) function and then sample parts of the maze.

the generated layout is stored in "cells" member as a dictionary of CellData structures, addressed by their positions on the grid.

Utils provides static methods for:
getting all dead ends and crossroads
getting all bridges and articulation points (while also checking for connectivity)
getting all shortest distances (and all shortest paths), by running Dijkstra's algorithm from each cell or by using Floyd-Warshall (not recommended)

Note: SelfAvoidingWalker has an error, it does not generate tree levels (as in there might be loops generated), this is not intended and will be fixed eventually

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
FloorArchitect icon image
&Drejzer
FloorArchitect

Godot plugin for generating dungeon floor layouts for rogue-lites like BoI or Moonlighter.Adds new nodes "Base" nodes do not generate levels on their own, they are set up for inheritance."Sampler" nodes first generate a Maze in their setup(seed:) function and then sample parts of the maze.the generated layout is stored in "cells" member as a dictionary of CellData structures, addressed by their positions on the grid.Utils provides static methods for:getting all dead ends and crossroadsgetting all bridges and articulation points (while also checking for connectivity)getting all shortest distances (and all shortest paths), by running Dijkstra's algorithm from each cell or by using Floyd-Warshall (not recommended)Note: SelfAvoidingWalker has an error, it does not generate tree levels (as in there might be loops generated), this is not intended and will be fixed eventually

Supported Engine Version
4.1
Version String
v0.5.0a
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers