logo

Crate bevy

source · []
Expand description

Bevy is an open-source modular game engine built in Rust, with a focus on developer productivity and performance.

Check out the Bevy website for more information, read the Bevy Book for a step-by-step guide, and engage with our community if you have any questions or ideas!

Example

Here is a simple “Hello World” Bevy app:

use bevy::prelude::*;

fn main() {
   App::new()
       .add_system(hello_world_system)
       .run();
}

fn hello_world_system() {
   println!("hello world");
}

Don’t let the simplicity of the example above fool you. Bevy is a fully featured game engine and it gets more powerful every day!

This Crate

The bevy crate is just a container crate that makes it easier to consume Bevy subcrates. The defaults provide a “full” engine experience, but you can easily enable / disable features in your project’s Cargo.toml to meet your specific needs. See Bevy’s Cargo.toml for a full list of features available.

If you prefer, you can also consume the individual bevy crates directly. Each module in the root of this crate, except for the prelude, can be found on crates.io with bevy_ appended to the front, e.g. app -> bevy_app.

Modules

Build bevy apps, create plugins, and read events.

Load and store assets and resources for Apps.

Provides types and plugins for audio playback.

Contains core plugins and utilities for time.

Core render pipeline.

Useful diagnostic plugins and types for bevy apps.

Bevy’s entity-component-system.

Bevy interface with GilRs - Game Input Library for Rust to handle gamepad inputs

Support for GLTF file loading.

Resources and events for inputs, e.g. mouse/keyboard, touch, gamepads, etc.

Logging capabilities

Math types (Vec3, Mat4, Quat, etc) and helpers.

Physically based rendering.

use bevy::prelude::*; to import common components, bundles, and plugins.

Type reflection used for dynamically interacting with rust types.

Cameras, meshes, textures, shaders, and pipelines.

Save/load collections of entities and components to/from file.

Items for sprites, rects, texture atlases, etc.

Pools for async, IO, and compute tasks.

Text drawing, styling, and font assets.

Local and global transforms (e.g. translation, scale, rotation).

User interface components and widgets.

Various miscellaneous utilities for easing development

Configuration, creation, and management of one or more windows.

Window creation, configuration, and handling

Structs

This plugin group will add all the default plugins:

Minimal plugin group that will add the following plugins: