Thanks to visit codestin.com
Credit goes to github.com

Skip to content

faizhaque/bevy

 
 

Repository files navigation

Bevy

License Crates.io Downloads Docs CI Discord

What is Bevy?

Bevy is a refreshingly simple data-driven game engine built in Rust. It is designed to be fast, modular, and easy to use, offering a modern approach to game development. It is free and open-source forever!

  • No Garbage Collection: Bevy uses Rust's ownership model for memory safety.
  • Entity Component System (ECS): Efficient data-driven architecture for handling complex game logic.
  • Parallel Execution: Bevy automatically runs systems in parallel, improving performance.
  • Cross-Platform: Runs on Windows, macOS, Linux, and WebAssembly (WASM).

WARNING

Bevy is still in the early stages of development and is actively evolving. Which means:

  • Some important features are missing.
  • Documentation is still being improved.
  • A new version is released approximately once every 3 months, often with breaking API changes
  • Migration guides are available, but updating to new versions may require manual adjustments.

Despite these challenges, Bevy provides a solid framework for Rust-based game development, and the community is actively improving the engine with each release.

MSRV: Bevy relies heavily on improvements in the Rust language and compiler. As a result, the Minimum Supported Rust Version (MSRV) is generally close to "the latest stable release" of Rust.

Design Goals

Bevy is built for performance, flexibility, and ease of use, following these principles:

Capable: Full 2D and 3D Support

  • Bevy provides a modern rendering engine, physics integration, and asset management for both 2D and 3D development.

Simple: Easy to Use, Powerful When Needed

  • Minimal setup with a clear API, no garbage collection, and Rust’s strong type system to ensure safety and efficiency.

Data-Oriented: Optimized with ECS

  • Uses the Entity Component System (ECS) for scalability, parallel execution, and performance.

Modular: Use Only What You Need

  • Developers can enable or replace components as needed, keeping projects lightweight and customizable.

Fast: High-Performance Execution

  • Bevy optimizes parallel processing, cache efficiency, and system execution for smooth gameplay.

Productive: Faster Iteration

  • Supports hot-reloading, rapid prototyping, and reduced compile times for better development workflow.

These principles ensure Bevy remains a powerful yet user-friendly engine for both small and large projects.

About

Bevy provides a variety of resources to help users get started and stay up to date:

  • Features: A quick overview of Bevy's features.
  • News: A development blog that covers our progress, plans and shiny new features.
  • Bevy Showcase: A collection of games and projects built using Bevy.
  • Bevy Plugins: A curated list of community-contributed plugins and tools.
  • Rust Game Development Resources: External resources for learning Rust game development.

Bevy is actively developed by a passionate open-source community, and new contributors are always welcome!

Docs

Bevy offers a range of official and community-maintained documentation:

Community

Before contributing or participating in discussions with the community, you should familiarize yourself with our Code of Conduct.

Ways to get involved:

  • Discord – The official Bevy Discord server for real-time discussions.
  • Reddit – A space for Bevy-related discussions and news.
  • GitHub Discussions – A place for questions, ideas, and feature discussions.
  • Bevy Assets – A curated list of Bevy projects, tools, plugins, and learning materials.

Contributing

If you’d like to help improve Bevy, follow these steps:

  • Check out the Contributor's Guide for an overview of how to contribute.
  • Browse the issue tracker for open tasks.
  • For simple fixes, feel free to open a pull request (PR).
  • For major changes, submit a Request For Comments (RFC) so the community can discuss the best approach.

Your contributions help make Bevy a better engine for everyone!

Getting Started

We recommend checking out the Quick Start Guide for a brief introduction.

Setting Up Bevy

Follow the Setup guide to ensure your development environment is set up correctly. Once set up, you can quickly try out the examples by cloning this repo and running the following commands:

# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakout

To draw a window with standard functionality enabled, use:

use bevy::prelude::*;

fn main(){
  App::new()
    .add_plugins(DefaultPlugins)
    .run();
}

Fast Compiles

Bevy can be built just fine using default configuration on stable Rust. However for really fast iterative compiles, you should enable the "fast compiles" setup by following the instructions here.

Bevy supports various Cargo features that allow customization based on project needs.

This list outlines the different cargo features supported by Bevy. These allow you to customize the Bevy feature set for your use-case.

Thanks

Bevy is the result of the hard work of many people. A huge thanks to all Bevy contributors, the many open source projects that have come before us, the Rust gamedev ecosystem, and the many libraries we build on.

A huge thanks to Bevy's generous sponsors. Bevy will always be free and open source, but it isn't free to make. Please consider sponsoring our work if you like what we're building.

This project is tested with BrowserStack.

License

Bevy is free, open source and permissively licensed! Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either:

This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.

Some of the engine's code carries additional copyright notices and license terms due to their external origins. These are generally BSD-like, but exact details vary by crate: If the README of a crate contains a 'License' header (or similar), the additional copyright notices and license terms applicable to that crate will be listed. The above licensing requirement still applies to contributions to those crates, and sections of those crates will carry those license terms. The license field of each crate will also reflect this. For example, bevy_mikktspace has code under the Zlib license (as well as a copyright notice when choosing the MIT license).

The assets included in this repository (for our examples) typically fall under different open licenses. These will not be included in your game (unless copied in by you), and they are not distributed in the published bevy crates. See CREDITS.md for the details of the licenses of those files.

Your contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A refreshingly simple data-driven game engine built in Rust

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 94.8%
  • WGSL 5.1%
  • Smarty 0.1%
  • HTML 0.0%
  • GLSL 0.0%
  • Mermaid 0.0%