Skip to content

Bevy

Written 2026-10-27 from the project's own docs.

Bevy is an open-source game engine written in Rust. It is built around an ECS (entity component system): game objects are entities, which are just IDs; their data lives in components; shared global data lives in resources; and behaviour lives in systems, ordinary Rust functions that the engine schedules and runs each frame. Bevy is pre-1.0, and its releases regularly rename and break APIs.

These notes are what was learned building Fboard, a fingerboarding game, on Bevy 0.19. Fboard's workspace asks for bevy = "0.19.0", and its lockfile currently resolves to 0.19.1. Bevy is used as an ordinary crates.io dependency, not a fork. They are notes from one project, not a general Bevy guide.

Versions move fast

Everything here is specific to 0.19. The tech notes for The Crawl, another game design by the same author, record that Bevy 0.20 came out on 2026-10-08 and that The Crawl targets 0.20. Fboard has not been moved to 0.20, and nothing on these pages has been checked against it.

Pages

  • Project structure and ECS patterns: how Fboard splits engine and rules, plugins, states, the fixed-timestep simulation, interpolation and messages.
  • Lessons and gotchas: 0.19 renames, build times, testing without a person at the controls, and determinism.
  • Audio with Kira: replacing Bevy's audio with the Kira library for beat-accurate adaptive music.

The short version

  • Keep the rules out of the engine. Fboard's simulation crate depends only on Bevy's standalone math crate, so the same code runs in the game, in a headless tool, and in a planned server.
  • One plugin per concern. The client's main sets up the window and resources, then adds eleven plugins (settings, input, audio, rider, gameplay, HUD, menu, camera, dev tools, replay playback, capture).
  • Fixed-rate simulation, interpolated rendering. The game steps at 60 Hz in Bevy's fixed-timestep schedule and blends the last two states for drawing.
  • Make the game drive itself. Scripted smoke scenarios that save screenshots, and frame-locked video capture of replays, let a build be checked without anyone playing it.

Related: Rust, Game design.