This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Exofactory Demo, Cargo Feature Collections, and 2d experiments

2025-10-13

The Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.

We also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.

Cargo Feature Collections

#21472 makes improvements to the status quo when it comes to disabling features when using the bevy crate.

bevy = { version = "0.17", default-features = false, features = ["2d"] }

These come in a few new high-level flavors for "Profiles":

Profile Description
default The full default Bevy experience. This is a combination of the following profiles: 2d, 3d, ui
2d The default 2D Bevy experience. This includes the core Bevy framework, 2D functionality, Bevy UI, scenes, audio, and picking.
3d The default 3D Bevy experience. This includes the core Bevy framework, 3D functionality, Bevy UI, scenes, audio, and picking.
ui The default Bevy UI experience. This includes the core Bevy framework, Bevy UI, scenes, audio, and picking.

As well as slightly lower-level "Collections", which notably includes a new dev collection containing dev tools.

Collection Description
dev Enable this feature during development to improve the development experience. This adds features like asset hot-reloading and debugging tools. This should not be enabled for published apps!
audio Features used to build audio Bevy apps.
scene Features used to compose Bevy scenes.
picking Enables picking functionality
default_app The core pieces that most apps need. This serves as a baseline feature set for other higher level feature collections (such as "2d" and "3d"). It is also useful as a baseline feature set for scenarios like headless apps that require no rendering (ex: command line tools, servers, etc).
default_platform These are platform support features, such as OS support/features, windowing and input backends, etc.
common_api Default scene definition features. Note that this does not include an actual renderer, such as bevy_render (Bevy's default render backend).
2d_api Features used to build 2D Bevy apps (does not include a render backend). You generally don't need to worry about this unless you are using a custom renderer.
2d_bevy_render Bevy's built-in 2D renderer, built on top of bevy_render
3d_api Features used to build 3D Bevy apps (does not include a render backend). You generally don't need to worry about this unless you are using a custom renderer.
3d_bevy_render Bevy's built-in 3D renderer, built on top of bevy_render
ui_api Features used to build UI Bevy apps (does not include a render backend). You generally don't need to worry about this unless you are using a custom renderer.
ui_bevy_render Bevy's built-in UI renderer, built on top of bevy_render
default_no_std Recommended defaults for no_std applications

All features still exist, so you could still specify every single feature yourself, but the mid and high level featuresets are a significant improvement.

Solari

solari specular

#21391 brings the beginning of realtime Solari specular materials. Specular materials are those that deal with reflected light, such as polished surfaces.

Aabb gizmos

aabb gizmos

A brand new Aabb gizmo was added in #21356. This follows after a change last week that renamed the old cuboid gizmo to cube (because it was a cube).

Ring Primitive

rings 2d

#21466 introduces a generalized "ring" shape to any underlying primitive. You can imagine these shapes as "outlines" or "hollow" shapes. The new rings are extrudable and accepts any Primitive2d.

    let capsule_ring = Ring::new(
        Capsule2d::new(50.0, 100.0),
        Capsule2d::new(45.0, 100.0),
    );
    let hexagon_ring = Ring::new(
        RegularPolygon::new(50.0, 6),
        RegularPolygon::new(45.0, 6),
    ); // note vertex count must match

bevy_camera_controller

free cam

In #20215, a new crate to contain camera controllers was created. These camera controllers are often used in Bevy examples, but now can also be used to kickstart new projects by enabling the relevant feature, such as free_cam.

Relatedly, a new "free cam" controller example was added in #21477.

cargo run --example free_cam_controller --features="free_cam"

Alice's Merge Train is a maintainer-level view into active PRs and how the Bevy sausage is made.

Showcase

Bevy work from the #showcase channel in Discord and around the internet. Use hashtag #bevyengine.

ragdoll

WIP Ragdoll for bevy_animation_graph

showcase

Progress on a ragdoll implementation intended for bevy_animation_graph

editor showcase

City Builder Editor

showcase

This custom editor is supposed to be simple editor for spawning, changing transforms and despawning assets.

fields of aaru

fields of Aaru: Lighting

showcase

Improvements to the lighting implementation in Fields of Aaru, including a new soft layer of specular highlights. Some of the changes here are intended to make the game look good on social media.

to build a home overworld

To Build a Home: Overworld

showcase

A functional overworld for To Build a Home. The overworld is implemented with a second camera and RenderLayers.

2d platformer

2d experiments

showcase

An experimental 2d game environment that uses the cursor to fire projectiles in a platformer-like setting.

leptos bevy canvas

leptos-bevy-canvas state sync

showcase

leptos-bevy-canvas now supports synchronizing Bevy states with signals in Leptos. This is a demo of an unreleased feature.

raytracing 2d platformer

2d Raytraced Lighting

showcase

2d raytraced lighting added to this Super Meat Boy-style 2d platformer.

procdural generation

2d Pixel Art Procedural Generation

showcase

Procedurally generating a fully deterministic, infinite, tile-based, 2D pixel art world; now with roads and settled areas (with houses!)

procdural generation

Poker Slice Adventures

showcase

A turn-based poker card game inspired by puzzle quest that's currently looking for feedback! The first dungeon is available to demo on Itch.io.

eternal

Eternal

showcase

2d games, shaders, and debug UI combine into this game prototype repo.

mission ares

Mission Ares: Ludum Dare

showcase

Mission Ares is a Bevy game made for Ludum Dare 58

Welcome to Mission Ares!

You are assigned to fleet Gamma and in charge of our planetary mining robots. Your role is to ensure the safe extraction of minerals.

The distance between planets is limiting our direct control of robots, you must plan the entire sequence of commands and dispatch them all at once. Beware! Moving the rovers will drain their battery, and solar panels only charge in sunlight.

Prepare and execute plans that extract all minerals!

exofactory

Exofactory Demo

showcase

Exofactory, a factory building game, has been soft launched on Steam in anticipation of Steam Next Fest. It is available for Windows and Linux.

wild spikes

Wild Spikes: bevy_map_scatter

showcase

Biome generation of Wild Spikes was ported to bevy_map_scatter. The process takes advantage of Avian Physics to find coordinates for the trees.

asteroids 3d

Asteroids 3d

showcase

3 weeks after starting with Bevy, this 3d Asteroids is playable and open source.

implovisation

Implovisation: Ludum Dare

showcase

Connect ships you've defeated to your own ship to grow bigger as you work your way through waves of enemies.

Crates

New releases to crates.io and substantial updates to existing projects

bevy_lit 0.8

crate_release

bevy_lit is a 2d lighting crate for Bevy.

0.8 brings two new lighting sources: Spotlight2d and TextureLight2d as well as enabling the possibility to create custom light sources with CustomLight2dPlugin.

beet_flow 0.0.7

crate_release

A general purpose ECS control-flow library.

For Bevy 0.17, beet_flow received a major refactor, cleaning up and simplifying the model.

beet_flow now leans into the 'request-response' pattern, with the GetOutcome event indicating entity observers should respond with a corresponding Outcome event. The response may be immediate, it may be over several frames, or can even be async!

No devlogs this week

Educational

Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins

Dependency Injection like Bevy Engine from Scratch

educational

A new addition to Dependency Injection like Bevy Engine from Scratch covering the compile time impact of the dependency injection along with a new demo!

Bevy Rust Game Development Chapter 2

educational

Chapter 2 of this series introduces procedural generation using Wave Function Collapse, terrain tiles, and more.

Pull Requests Merged This Week
Contributing

Want to contribute to Bevy?

Here you can find two types of potential contribution: Pull Requests that might need review and Issues that might need to be worked on.

How do I contribute?

Pull Requests Opened this week

Issues Opened this week