What Bevy Does
- ECS — Entity Component System for data-driven logic
- Rendering — 2D sprites, 3D PBR, post-processing (wgpu-based)
- Audio — spatial audio via rodio
- Input — keyboard, mouse, gamepad, touch
- UI — built-in reactive UI system
- Scenes — serializable scene format
- Asset loading — async, hot-reloadable
- Plugins — modular, composable plugin architecture
- States — app state machine for menus, gameplay
- WebGPU — via wgpu (Vulkan/Metal/DX12/WebGPU backends)
Architecture
Bevy ECS:
- Entities — unique IDs
- Components — data structs attached to entities
- Systems — functions that query components and execute logic
- Resources — global singleton data
- Events — message passing between systems
All systems run in parallel by default (Bevy schedules them based on data access). This makes Bevy inherently multi-threaded.
Self-Hosting
Rust project — build and distribute:
cargo build --release
# Export to WebAssembly
cargo build --release --target wasm32-unknown-unknown
wasm-bindgen target/wasm32-unknown-unknown/release/my_game.wasm --out-dir webKey Features
- Data-driven ECS
- Automatic parallelism
- Hot asset reloading
- 2D + 3D rendering (wgpu)
- Plugin architecture
- WebGPU/Vulkan/Metal/DX12 backends
- WebAssembly export
- Scene serialization
- Reactive UI
- Active community and rapid releases
Comparison
| Engine | Language | Architecture | 3D |
|---|---|---|---|
| Bevy | Rust | ECS | Growing |
| Godot | GDScript/C# | Scene tree | Good |
| Unity | C# | MonoBehaviour (+ DOTS ECS) | Excellent |
| Amethyst | Rust (archived) | ECS | Basic |
| Macroquad | Rust | Immediate mode | Basic |
常见问题 FAQ
Q: 能发布商业游戏吗? A: 能。MIT + Apache 双授权,完全自由。目前已有 Bevy 做的独立游戏在 Steam 上架。
Q: 稳定了吗? A: API 还在快速迭代(每个版本有 breaking changes)。但核心已经可用于中等规模项目。v1.0 预计还需一到两年。
Q: 学习曲线? A: Rust 本身有门槛(borrow checker),ECS 思维方式需要适应。但 Bevy 文档和社区示例越来越丰富。
来源与致谢 Sources
- Docs: https://bevyengine.org/learn
- GitHub: https://github.com/bevyengine/bevy
- License: Apache 2.0 + MIT