bevy_ecs_ldtk

Crates.iobevy_ecs_ldtk
lib.rsbevy_ecs_ldtk
version0.10.0
sourcesrc
created_at2022-01-16 06:19:34.447867
updated_at2024-07-20 16:38:48.768749
descriptionAn ECS-friendly ldtk plugin for bevy.
homepage
repositoryhttps://github.com/Trouv/bevy_ecs_ldtk
max_upload_size
id514650
size1,334,884
Trevor Lovell (Trouv)

documentation

README

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

Commit count: 651

cargo fmt