This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Quake 1, a bevy_enoki editor, and serialized images

2025-08-04

This week Bevy upgraded to wgpu 26.0, and with another week we saw another particle editor! This time for bevy_enoki.

bevy_mikktspace was also split out into a separate repo which joins it with other similar crates like atomicow and disqualified in being solid infrastructure crates with few or no dependencies.

We also see a full reimplementation of Quake 1 in Bevy!

Solari

specular

Solari, Bevy's realtime raytraced lighting effort, added roughness, metallic, and reflectance properties to its material system in #20242 as well as a new balance heuristic for spatial resampling in #20259.

As always with Solari, this is fairly experimental work so don't expect to drop it into your games yet.

bevy_shader

Refactors in the rendering stack continue with the introduction of a bevy_shader crate. bevy_shader takes a smaller amount of dependencies on crates like wesl and naga, which can enable the creation of shader libraries that don't depend on bevy_render.

Serialized Image

navmesh

#20328 introduces a new SerializedImage, which similar to the recent SerializedMesh, is a temporarily serializable version of an Image. This is meant to be used over tools like the Bevy Remote Protocol.

This is currently being used in a navigation mesh prototype.

Bevy Remote Protocol renames

As of #19377 most Bevy Remote Protocol methods have been renamed for 0.17.

Old New
bevy/query world.query
bevy/spawn world.spawn_entity
bevy/destroy world.despawn_entity
bevy/reparent world.reparent_entities
bevy/get world.get_components
bevy/insert world.insert_components
bevy/remove world.remove_components
bevy/list world.list_components
bevy/mutate world.mutate_components
bevy/get+watch world.get_components+watch
bevy/list+watch world.list_components+watch
bevy/get_resource world.get_resources
bevy/insert_resource world.insert_resources
bevy/remove_resource world.remove_resources
bevy/list_resources world.list_resources
bevy/mutate_resource world.mutate_resources
registry/schema registry.schema

From for UiRect

#20312 introduces a From implementation for Val and UiRect, which can reduce verbosity when used with Node definitions.

Node {
    margin: Val::Px(20.).into(),
    border: Val::Px(5.).into(),
    padding: Val::Px(10.).into(),
    ..default()
}

Color Swatch Widget

color swatch widget

As part of the Headless Widgets effort, #20237 introduces a new Color Swatch Widget.

Showcase

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

proof of duel

Proof of Duel

showcase

Proof of Duel is a first small multiplayer game, built with Bevy Quinnet and Aseprite.

Gameplay proceeds with the first player creating a match, and the second player joining the match by id. All players press the key combinations, and the faster player wins.

physics updates

Physics updates

showcase

Updates to some physics code.

3d card animation

3d card animation

showcase

3d card animation experiments. Each one is an entity and has its own egui context rendered to a texture

bevy_enoki editor

bevy_enoki editor

showcase

An update to the editor for bevy_enoki, a CPU calculate particle system.

quake 1

Bevy Quake

showcase

A Bevy-based total rewrite of Quake 1, which has reached a playable state. There's even support for mods!

to build a home: dialogue

Yarnspinner Dialogue

showcase

The start of a dialogue system for To Build a Home. The dialogue is powered by Yarnspinner

fmc_noise

Caves First Pass

showcase

Noise-based cave generation, which has also been released as a standalone noise crate: fmc_noise. The noise crate is enabled by simd.

terrain generation

Terrain Generation

showcase

A new terrain generation and rendering system. Instead of rendering to a giant texture once and then loading it in the game, it now generates the data at runtime, yielding much better detail while taking less time to load. Each planet and moon now has a function that maps a position on the surface to an elevation and a color.

ggrs and iroh

bevy_ggrs with iroh

showcase

A demo using bevy_ggrs alongside iroh, a p2p library. There's an additional gist that contains the pertinent implementation details.

Crates

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

bevy_streaming

crate_release

bevy_streaming is a crate aimed at cloud gaming using WebRTC.

bevy_ecs_tiled 0.8

crate_release

bevy_ecs_tiled is a Bevy plugin for working with 2D tilemaps created using the Tiled map editor. It leverages the official Tiled Rust bindings for parsing and loading Tiled map files, and uses the bevy_ecs_tilemap crate for efficient rendering.

0.8 brings an integration with the geo crate for unifying physics colliders.

bevy_save 1.0

crate_release

bevy_save is a framework for saving and loading application state.

With the introduction of reflection-powered versioning and migrations, bevy_save has released 1.0.

Jonmo

crate_release

jonmo provides an ergonomic, functional, and declarative API for specifying Bevy system dependency graphs, where "output" handles to nodes of the graph are canonically referred to as "signals".

bevy_northstar 0.3.2

crate_release

bevy_northstar is a Hierarchical Pathfinding plugin for Bevy.

0.3.2 brings improved 3D support to better handle 2.5D (isometric maps, 2d tilemaps with height).

No devlogs this week

Educational

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

A dive into bevy_gltf

educational

A deep dive into the bevy_gltf crate, its features, and the implementations related to it.

Bevy iOS GameCenter

educational

A writeup around what the author learned integrating iOS GameCenter with Bevy

Recreating Undertale's BATTLE system

educational

An attempt to recreate the Undertale Battle system from scratch.

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