Getting Started

warning

This documentation is still work-in-progress. It may contain some incomplete or outdated information.

Bevy is an efficient, simple-to-use, and fast-to-compile data-driven game engine written in Rust. It is based on the ECS (Entity-Component-System) paradigm and allows the definition of plugins, i.e., sets of components, systems, and resources that share a common objective.

Bevy does not provide any built-in physics solution currently. That's why we created the bevy_rapier2d and bevy_rapier3d crates which integrate Rapier to Bevy using their plugin system. To use them, the first step is to add a dependency to your Cargo.toml:

[dependencies]
# TODO: Replace the * by the latest version numbers.
bevy_rapier2d = *

Note that bevy_rapier2d/bevy_rapier3d re-exports the nalgebra and rapier2d/rapier3d crates it depends on. So you don't need to depend on them explicitly. The nalgebra is re-exported as na and rapier2d/rapier3d is re-exported as rapier.

If you need to enable some Rapier features like SIMD, parallelism, serialization, or determinism, you can enable them on bevy_rapier directly.

[dependencies]
# TODO: Replace the * by the latest version numbers.
# Enable the `simd-stable` and `parallel` features of Rapier.
bevy_rapier2d = { version = "*", features = [ "simd-stable", "parallel" ] }