Draft:Bevy (game engine)

Bevy is a cross-platform, free and open-source game engine written in the Rust programming language. It was initially developed by Carter Anderson before the public release of Bevy 0.1 in August 2020, when contributions were opened up to the public. The engine features an Entity component system, a 2D and 3D renderer and support for desktop and mobile platforms. The engine's source code is available on GitHub under the MIT and Apache 2.0 license.

Entity Component System
The foundation of the Bevy Engine is its Entity component system. Objects in the game world are represented as entities, which are a collections of components. In Bevy, any Rust data type that implements the  trait can be used as a component. Systems operate on those entities and components to define the behavior of the game. In Bevy, systems are normal Rust functions where all arguments implement the  trait.

In addition, Bevy also has resources which contain global state that is independent from any entity. Larger data structures such as images or 3D models are stored as assets.

Rendering
Bevy uses wgpu as its graphics backend which enables support for the Vulkan, Metal, DirectX, OpenGL ES, WebGL and WebGPU graphics APIs.

Bevy supports many modern rendering features such as physically based rendering, normal mapping, parallax mapping, shadow mapping, image-based lighting, temporal anti-aliasing, screen space ambient occlusion, a high dynamic range pipeline with post processing effects such as bloom, image sharpening and fast approximate anti-aliasing. It also supports skeletal- and morph target animation.

The render graph can be extended through plugins with additional render passes, custom materials and shaders as well as post-processing effects.

Supported platforms
Bevy can be compiled to run on all major desktop platforms Windows, macOS and Linux. It also has support for the mobile operating systems iOS and Android. When compiled to WebAssembly, Bevy can also run in the Browser using either the WebGL or WebGPU graphics API.