bevy_ecs_ldtk is an ECS-friendly LDtk plugin for Bevy.
It allows you to use LDtk projects as an asset, spawn levels, and insert bevy components/bundles on LDtk entities/tiles.
This plugin is ECS-friendly, partly for its internal usage of ECS that provides extra functionality to users, and partly for its usage of bevy_ecs_tilemap for rendering tilemaps.
This is all behind an ergonomic API, providing low-boilerplate solutions to common use cases.
For less common use cases, strategies that leverage this plugin's ECS constructs are also available.
cargo run --example platformer --release
- Support for all layer types
- Support for loading external levels
- Hot reloading
- Solutions for easily loading/unloading levels, changing levels, loading level neighbors...
- Low-boilerplate solutions for spawning bundles for LDtk Entities and IntGrid tiles using derive macros (other options available)
serdetypes for LDtk based off LDtk's QuickType loader, but with several QoL improvements- Support for Wasm (and tile spacing) through "atlas" feature
Documentation for this plugin is available in two main places.
- API reference on docs.rs
- Tutorials, Explanation, and Guides in the
bevy_ecs_ldtkbook
In the book, the following chapters are good jumping-off points for beginners:
Cargo examples are also available in this repository:
$ cargo run --example example-name| bevy | bevy_ecs_tilemap | LDtk | bevy_ecs_ldtk |
|---|---|---|---|
| 0.16 | 0.16 | 1.5.3 | 0.12 |
| 0.15 | 0.15 | 1.5.3 | 0.11 |
| 0.14 | 0.14 | 1.5.3 | 0.10 |
| 0.12 | 0.12 | 1.5.3 | 0.9 |
| 0.11 | 0.11 | 1.3.3 | 0.8 |
| 0.10 | 0.10 | 1.1 | 0.7 |
| 0.10 | 0.10 | 1.1 | 0.6 |
| 0.9 | 0.9 | 1.1 | 0.5 |
| 0.8 | 0.7 | 1.1 | 0.4 |
| 0.7 | 0.6 | 1.1 | 0.3 |
| 0.6 | 0.5 | 0.9 | 0.2 |
| 0.6 | 0.5 | 0.9 | 0.1 |
- SunnyLand, a texture pack by Ansimuz, licensed under CC0 1.0
- PIXEL FANTASY RPG ICONS, an icon pack by Caz, licensed under CC BY 4.0
- Nuclear Blaze, a tileset by Deepnight, licensed under CC BY-SA 4.0. Tileset was exported from aseprite to png, but no other modifications were made.
