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)
serde
types 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_ldtk
book
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.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.