This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Upgrade to Rust 2024 and Parallel Transform Propagation

2025-03-03

This week Bevy has upgraded to Rust 2024 and made Transform propagation parallel, improving performance significantly.

AsBindGroup's macros gained a new data attribute which continues bindless support.

Ship Happens and Chessmated get playable web demos while web slinging gets an interactive devlog.

no_std

Bevy's no_std support continues on with a few PRs this week.

GitHub Workflows: Rendering output

the pull request comment

Bevy has a number of workflows and tools that run on PRs and merges. As of #18064, when rendering output changes a new workflow adds a comment to the PR indicating this.

The comment, as seen here includes a link to review the output

BRP Resource Methods

In #17423 five new methods were added to the Bevy Remote Protocol for operating on Resources.

  • bevy/get_resource: Extracts the value of a given resource from the world.
  • bevy/insert_resource: Serializes an input value to a given resource type and inserts it into the world.
  • bevy/remove_resource: Removes the given resource from the world.
  • bevy/mutate_resource: Replaces the value of a field in a given resource with the result of serializing a given input value.
  • bevy/list_resources: Lists all resources in the type registry with an available ReflectResource.

glTF loading refactor

The glTF loader used to live in a 2k+ line file. Now its been refactored into a number of different area-specific files in #15994, which should make it easier to dig into, understand, and maintain.

ColorMaterial::uv_transform

different uv settings

As of #17879 the ColorMaterial that can be applied to a Mesh2d allows the configuration of a transform that will warp the uv space the shader uses. This enables the scaling of the uv space and is especially useful when combined with an image sampler that repeats.


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.

procedural dungeonprocedural dungeon stairs

Procedural Dungeon

showcase

The procedural dungeon we've seen come together over the past few issues got its stairs! The stairs are generated using parametric curves.

music visualizer

Music Visualizer

showcase

A music visualizer complete with Avian Physics integration

hex grid

Hexagonal Grid

showcase

A replication of Catlike Coding's hexagonal grid system. Bridges between the hexagons are also generated.

bevypunk menubevypunk menu load

Bevypunk Menu Effects

showcase

Main menu effects in bevypunk: a recreation of Cyberpunk UI

quantsumquantsum

Quantsum

showcase

A rewrite of a prototype game called Quantsum. The game has migrated to using Lightyear and has reach a milestone of being smooth at 100ms ping time. the code is available on GitHub

computroniumcomputronium

Computronium

showcase

Computronium is an automation game like Factorio or Satisfactory with an emphasis on computer hardware and networks. Build data centers, manufacture integrated circuits, and deal with threats to your network.

hex mapdungeon

dungeon and caves

showcase

Rendering dungeon and cave maps, loading from the network. A custom shader is used for the floor and tokens are animated using Blender and outlined using bevy_mod_outline.

galaxy map

Galaxy Map

showcase

A procedural galaxy map which supports zooming and panning. Distance from the center is random, and an angle is based on a logarithmic spiral with noise sprinkled in

connect four

Connect Four!

showcase

A connect-four implementation makes this author's first Bevy game! Source is available on GitHub

chess mated

Chessmated

showcase

Chessmated is a Chess implementation in Bevy complete with move tracking

To Build a Home buttons

To Build a Home

showcase

To Build a Home has transitioned to using bevy_picking (Bevy's upstreamed picking implementation). The game is getting closer and closer to the point at which it can be played by others.

Ephemeris Explorer

Ephemeris Explorer

showcase

Ephemeris Explorer is a simulator of solar systems and spacecraft flight planning tool simulating n-body physics. A number of flight planning and event simulations are displayed in the accompanying video.

bevy_enoki flame

bevy_enoki flame

showcase

Flame particles built with bevy_enoki

desktop mascot

bevy_baby

showcase

A desktop mascot application similar to Desktop Mate.

The source is available on GitHub

rocket buildingrocket building

Launching Rockets

showcase

This demo shows building rockets using a custom reactivity-like framework that generates a VDOM-style tree with diffs. Any modifications to the Rocket component will automatically trigger updates to the hierarchy, guaranteeing that the hierarchy always stays in sync with the source-of-truth component.

wild west roguelike

Wild West Roguelike

showcase

An early peak at an in-progress wild west roguelike.

ship happens

Ship Happens

showcase

Ship Happen is a new game jam game made with Avian2d as well as Bevy, of course. In this Tetris-like stacking game an unstable boat rocks your stack back and forth as containers and animals rain from above.

bevy_vector_shapes

hot-reloadable bevy_vector_shapes

showcase

hot-reloadable usage of bevy_vector_shapes as assets with a bit of scripting support thrown in

fmc.gg nighttimefmc.gg

fmc.gg

showcase

fmc is a platform for creating minecraft-style games. The goal is to create something like minetest, where the entire game is defined server-side, allowing for a large range of games.

Crates

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

bevy_mod_scripting 0.9.9

crate_release

bevy_mod_scripting represents an initial attempt to enable scripting within Bevy's existing framework.

In 0.9.9, it's now possible to query schedules, systems, and inject new event handlers from scripts themselves.

bevypunk

bevy_lunex 0.3

crate_release

bevy_lunex is a retained layout engine for Bevy entities, built around vanilla Bevy ECS. It gives you the ability to make your own custom UI using regular ECS like every other part of your app.

0.3 is a complete rewrite of the project, migrating to use Bevy's hierarchy, observers, overhauled state machines, a lunex picking backend, and more.

bevy_lunex powers Bevypunk which can be viewed on the web but is not meant to be a web demo. For the expected experience (performance-wise) compile and run the native application.

shadybug

shadybug

crate_release

shadybug is a software renderer for debugging shaders. It isn't strictly speaking a Bevy crate, but it was created to debug Bevy applications.

iyes_perf_ui 0.4

crate_release

iyes_perf_ui is a convenient debug overlay you can add to your Bevy app to show diagnostics, performance metrics, and other info via bevy_ui.

0.4 brings Bevy 0.15 support and new entries to show Render CPU and GPU time, as well as some fixes, perf improvements, and a simplified API for custom entries (no more width hints).

Devlogs

vlog style updates from long-term projects

Webslinger: A Playable Devlog

devlog

A playable devlog for the web slinging browser extension we've seen in recent issues

No Educational this week
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