Files
Bevy_Forge/examples/demo-project/README.md
T

58 lines
2.0 KiB
Markdown

# Forge Demo
A tiny Bevy 0.20 project used as the demo project for **Bevy Forge**, the visual scene
editor for Bevy BSN scenes. It contains two editable scenes and a small set of generated
pixel-art textures.
## Open it in Bevy Forge
From the repository root:
```bash
cargo run -p bevy_forge_editor -- examples/demo-project
```
Bevy Forge discovers the Bevy project from `Cargo.toml`, scans `assets/` and opens the
first scene automatically. Open the other scene from the File menu, edit entities in the
hierarchy/inspector, and save with `Ctrl+S`. Use **Export** (or the `forge` CLI) to turn a
scene into paste-ready BSN Rust code or imperative `Commands::spawn` code.
## Scenes
| Scene | Contents |
|---|---|
| `scenes/garden.forge.ron` | 3D garden: camera, sun, point light, ground plane, shrub, flower, lantern post and an orbiting crystal with the custom `forge_demo::Orbit` component. |
| `scenes/platformer.forge.ron` | 2D platformer: camera, dusk background, ground tiles, floating ledge, player with a hat child, coins, crates and two Text2d labels. |
Both scenes are plain RON and human-readable. Every referenced texture exists in
`assets/textures/`.
## Textures
All textures are procedurally generated (no external art, no network):
| File | Size |
|---|---|
| `assets/textures/background.png` | 960x540 |
| `assets/textures/player.png` | 64x96 |
| `assets/textures/hat.png` | 64x32 |
| `assets/textures/tile.png` | 96x96 |
| `assets/textures/coin.png` | 64x64 |
| `assets/textures/crate.png` | 64x64 |
Regenerate them with Pillow:
```bash
python3 examples/demo-project/tools/generate_textures.py
```
## Running it as a Bevy app
`src/main.rs` is a minimal Bevy app. The `.forge.ron` scenes are editor documents, not
Bevy runtime assets yet, so paste an export into `src/main.rs` to run it. The custom
`Orbit` component used by the garden scene is defined there as
`forge_demo::Orbit { radius, speed }`, matching the exported BSN path.
This demo is deliberately **not** a member of the editor workspace: only the excluded
`compat/bsn-smoke` crate may depend on Bevy.