Skip to content

RickyYCheng/Edgar.Godot

Repository files navigation

Edgar.Godot

Caution

WIP: This project is currently under active development. Features and implementations are subject to change.

Overview

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.

Core Features

  • 🗺️ Converts Tiled map files into Godot-compatible JSON resources, complete with metadata for procedural map generation using YATI.
  • ⚙️ Custom JSON room graph format (*.edgar-graph) for defining room connectivity.
  • 🔄 Kernel Replaceability: Standardized interfaces that are compatible with both C# scripts and GDExtension versions.
  • Generates Godot-friendly Dictionary layouts 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.

FOW & Minimap Demo

Meta Reference

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.

Quick Start

Please check the exmaples in the examples/ folder.

Roadmap

  • Runtime external loading for tmx/tmj files

    Implemented 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

About

Procedural Levels Generation addon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors