Caution
WIP: This project is currently under active development. Features and implementations are subject to change.
Edgar.Godot is a GDScript toolkit that integrates the Edgar-DotNet procedural level generation algorithm into Godot. It converts Tiled maps and custom room graph resources into Godot-ready data for runtime Rogue-like dungeon assembly, with a replaceable kernel supporting both C# and GDExtension implementations.
Edgar.Godot consumes Tiled map files (*.tmx / *.tmj) and custom JSON graph resources (*.edgar-graph) that define room connectivity and metadata.
Dependencies
- YATI plugin (bundled with this repository)
Note
Uses the C#/.NET types via Edgar.Aot; requires a .NET-enabled Godot build.
For the native GDExtension version, see Edgar.GDExtension.
Important
The primary focus of development is on the GDScript and C# versions, with GDExtension updates potentially lagging behind the main development efforts.
- 🗺️ Converts Tiled map files into Godot-compatible JSON resources, complete with metadata for procedural map generation using YATI.
- ⚙️ Custom
JSONroom graph format (*.edgar-graph) for defining room connectivity. - 🔄 Kernel Replaceability: Standardized interfaces that are compatible with both
C#scripts andGDExtensionversions. - Generates Godot-friendly
Dictionarylayouts utilizing the Kernel's API. - Includes a sample renderer for displaying generated maps on
TileMapLayer.
There are some already in-used fields in the Tiled map's properties.
They are used to define the room's metadata for Edgar.
Firstly, since this project use YATI, please refer to YATI's reference.
After that, the specific fields for Edgar.Godot can be found in reference.
Please check the default scene.