58 lines
2.0 KiB
Markdown
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.
|