Skip to content
All guides

Making games with Bevy

Rust and ECS, no editor, pre-1.0. For programmers who want to know how it works.

Bevy is a game engine written in Rust, built around ECS — entity component system — and it is the most opinionated thing on this list. It has no visual editor. It is not finished. It changes in ways that break your code between versions.

It's here because a certain kind of developer tries it and never goes back, and because where it's going matters.

Who it's for

Programmers. Specifically, programmers who already know Rust or want a good reason to learn it, and who are more interested in how a game is built than in shipping one quickly.

**Not for beginners**, and not for a project with a deadline. If you want to finish a game this month, use Godot.

What it's good at

  • **ECS done properly.** Data-oriented from the ground up rather than bolted on, and once it clicks it's a genuinely clarifying way to structure a game.
  • **Rust.** Memory safety without a garbage collector, superb tooling, and a compiler that catches a category of bug other engines let you ship.
  • **Performance**, especially with many entities. The architecture is built for it.
  • **Parallelism by default.** Systems that don't touch the same data run concurrently without you arranging it.
  • **Modularity.** Take the renderer, take the ECS, take neither. Nothing is mandatory.
  • **A community that's unusually good** at helping and unusually honest about the rough edges.

Where it fights you

  • **No editor.** Everything is code. Level design means writing data or building a tool.
  • **It breaks between versions.** Bevy is pre-1.0 and the API changes substantially. Upgrading is real work, and tutorials go out of date fast — always check which version one was written for.
  • **Rust has a genuine learning curve.** Borrow checking is worth it and it is not easy.
  • **Long compile times**, though incremental builds and the recommended fast-linker setup help a lot.
  • **Small asset ecosystem.**
  • **No console support.**

Your first hour

  • Install Rust via **rustup**.
  • `cargo new my-game`, then add `bevy` to `Cargo.toml`.
  • Follow the official *Getting Started* guide and the breakout example.
  • **Set up the fast compile configuration from the Bevy book before anything else.** The default build times will put you off the engine for the wrong reason.
  • Expect the first day to be about Rust, not about games. That's normal.

Shipping it here

`cargo build --release`.

  • You get a single binary. **Assets are not embedded** — copy your `assets/` folder next to it and zip the pair together. Shipping the binary alone is the standard mistake and the game will simply fail to find its files.
  • Cross-compiling from one desktop platform to another is possible but fiddly; building on each target is simpler.
  • **Web:** Bevy compiles to WebAssembly. It works, but builds are large and it's more involved than other engines' web export. Check the current Bevy book — this area moves.

Where to learn more

Made something with it? Publish it here — rough and unfinished is welcome.