| Crates.io | bevy-yoleck |
| lib.rs | bevy-yoleck |
| version | 0.31.0 |
| created_at | 2022-06-01 19:00:39.853828+00 |
| updated_at | 2026-01-15 17:45:45.657302+00 |
| description | Your Own Level Editor Creation Kit |
| homepage | |
| repository | https://github.com/idanarye/bevy-yoleck |
| max_upload_size | |
| id | 598351 |
| size | 533,110 |
Yoleck is a crate for having a game built with the Bevy game engine act as its own level editor.
vpeol_2d and
vpeol_3d.git clone https://github.com/dexsper/bevy-yoleck-fork
cd bevy-yoleck
Then you can run the examples:
2D example:
cargo example2d
Or check out the WASM version: https://idanarye.github.io/bevy-yoleck/demos/example2d
https://user-images.githubusercontent.com/1149255/228007948-31a37b3f-7bd3-4a36-a3bc-4617d359c7c2.mp4
3D example:
cargo example3d
Or check out the WASM version: https://idanarye.github.io/bevy-yoleck/demos/example3d
https://user-images.githubusercontent.com/1149255/228008014-825ef02e-2edc-49f5-a15c-1fa6044f84de.mp4
Multi-level example:
cargo doors_to_other_levels
Or check out the WASM version (gameplay only): https://idanarye.github.io/bevy-yoleck/demos/doors_to_other_levels
https://github.com/idanarye/bevy-yoleck/assets/1149255/590beba4-2ca5-4218-af52-143321bb5946
Yoleck saves the levels in JSON files that have the .yol extension. A .yol
file's top level is a tuple (actually JSON array) of three values:
Each entity is a tuple of two values:
The reason tuples are used instead of objects is to ensure ordering - to guarantee the metadata can be read before the data. This is important because the metadata is needed to parse the data.
Yoleck generates another JSON file in the same directory as the .yol files
called index.yoli. The purpose of this file is to let the game know what
level are available to it (in WASM, for example, the asset server cannot look
at a directory's contents). The index file contains a tuple of two values:
| bevy | bevy-yoleck | bevy_egui |
|---|---|---|
| 0.18 | 0.31 | 0.39 |
| 0.17 | 0.30 | 0.38 |
| 0.17 | 0.29 | 0.37 |
| 0.16 | 0.28 | 0.36 |
| 0.16 | 0.27 | 0.35 |
| 0.16 | 0.26 | 0.34 |
| 0.15 | 0.25 | 0.33 |
| 0.15 | 0.24 | 0.32 |
| 0.15 | 0.23 | 0.31 |
| 0.14 | 0.22 | 0.28 |
| 0.13 | 0.21 | 0.27 |
| 0.13 | 0.20 | 0.26 |
| 0.13 | 0.19 | 0.25 |
| 0.12 | 0.18 | 0.24 |
| 0.12 | 0.16, 0.17 | 0.23 |
| 0.11 | 0.15 | 0.22 |
| 0.11 | 0.13 - 0.14 | 0.21 |
| 0.10 | 0.7 - 0.12 | 0.20 |
| 0.9 | 0.5, 0.6 | 0.19 |
| 0.9 | 0.4 | 0.17 |
| 0.8 | 0.3 | 0.15 |
| 0.7 | 0.1, 0.2 | 0.14 |
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.