Bevy — Rust Game Engine

Bevy is an open source Rust powered cross platform game framework. The tagline says it all “A refreshingly simple data-driven game engine built in Rust”. It is released under the open source MIT license with the sources available on Github.

Key features of Bevy from the Bevy Homepage:

Data Driven

  • All engine and game logic uses Bevy ECS, a custom Entity Component System
  • Fast: Massively Parallel and Cache-Friendly. The fastest ECS according to some benchmarks
  • Simple: Components are Rust structs, Systems are Rust functions
  • Capable: Queries, Global Resources, Local Resources, Change Detection, Lock-Free Parallel Scheduler

2D Renderer

  • Render real-time 2D graphics for games and apps
  • Features: sprite sheets, dynamic texture atlases, cameras, textures, and materials
  • Extensible: custom shaders, materials, and render pipelines
  • Common Core: builds on top of Bevy’s Render Graph

3D Renderer

  • A modern and flexible 3D renderer
  • Features: lights, cameras, meshes, textures, materials, gltf loading
  • Extensible: custom shaders, materials, and render pipelines
  • Common Core: built on top of Bevy’s Render Graph

Render Graph

  • Compose custom render pipelines using a graph structure
  • Parallel: Render Graphs are automatically rendered in parallel
  • Modular: Build composable and reusable render logic using Render Graph nodes
  • Backend Agnostic: Not tied to a specific graphics api

Cross Platform

  • Support for all major desktop platforms:
  • Windows, MacOS, Linux
  • With more on the way:
  • Android, iOS, Web

Bevy UI

  • A custom ECS-driven UI framework built specifically for Bevy
  • Built directly on top of Bevy’s ECS, Renderer, and Scene plugins
  • Compose UIs dynamically in code or declaratively using the Bevy Scene format
  • Use a familiar “flex box” model to layout your UIs

Scenes

  • Create, save, and load ECS worlds using Bevy’s Scene system
  • Loading: Loading scenes preserves entity IDs (useful for save games)
  • Instancing: Instancing creates linked duplicates of scenes with new entity IDs
  • Hot Reloading: Changes to scene files are automatically applied to running apps

Sound

  • Load audio files and play them on demand
  • Load mp3 audio files as Assets
  • Play audio files using the AudioOutput resource

Hot Reloading

  • Get instant feedback on your changes without app restarts or recompiles
  • Asset changes are immediately reflected in running Bevy apps
  • You can currently hot-reload scenes, textures, and meshes
  • Any asset type can be integrated

Productive Compile Times

  • Game development is an iterative process. You can’t afford to wait for compiles
  • With Bevy you can expect 0.8-3.0 seconds with the “fast compiles” configuration
  • Compare that to other popular Rust game engines, which can take over 30 seconds to compile a single newline insertion!

Free and Open Source

  • An engine made by and for the developer community
  • 100% free. Forever and always
  • Open Source under the permissive MIT license
  • No contracts
  • No license fees
  • No sales cuts

We previously discussed Rust game development here including details on getting a Rust development tool-chain installed and configured. You can learn more about Bevy including basics on getting started in the video below.

Scroll to Top