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. - 🌑 Fog of War (FOW): Dynamic visibility system that reveals explored areas while hiding unexplored regions.
- 🗺️ Minimap: Real-time minimap display for navigation and overview of generated dungeons.
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 exmaples in the examples/ folder.
-
Runtime external loading for tmx/tmj filesImplemented via Godot's official pck/zip packaging system
- Godot Scene Support — Alternative to Tiled files for room definitions
- 3D Renderer Support — Integration with GridMap and other 3D tile systems
