Skip to content

ECS-friendly ldtk plugin for bevy, leveraging bevy_ecs_tilemap

License

Notifications You must be signed in to change notification settings

Trouv/bevy_ecs_ldtk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevy_ecs_ldtk

crates.io docs.rs crates.io MIT/Apache 2.0 Bevy tracking CI

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.

platformer-example

cargo run --example platformer --release

Features

  • 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

Documentation for this plugin is available in two main places.

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

Compatibility

bevy bevy_ecs_tilemap LDtk bevy_ecs_ldtk
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

Asset Credits