This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Water, Global Illumination, and UI toolkits

2024-06-24

As we get closer to the stable release of a lot of the ecosystem efforts are going into stabilizing and preparing crates. This is the first time we've had a release candidate cycle for Bevy so it will be interesting to see how that impacts the final release.

So far the release candidate process has been well regarded overall, resulting in bugs being found and time for third party crates to upgrade before the day of the release.

Similar to previous issues, more crates have been updated to be compatible with the release-candidate which is currently rc.3, but we don't mention them individually here. Check the releases and GitHub repos for your dependencies for updates.

First-Person view

A new FPS example shows off differing field-of-views for multiple cameras. Specifically the camera that renders the "view model" (player's arm) is static while the wider world's field-of-view is configurable by the user. This allows the user to change their FoV without affecting the look of their own player model.

The example shows off how to use multiple cameras and multiple RenderLayers, including dealing with shadows and lighting.

default fov

decreased fov

increased fov

Cross Gizmos

13883 introduces cross gizmos for 2d and 3d.

2d cross

3d cross

Deterministic Meshlet Processing

13913 builds on top of 13904 to improve meshlet processing performance and make meshlet processing deterministic. Having deterministic meshlet processing is very important for debugging, since the meshlet output is consistent between asset rebuilds.


Alice's Merge Train is a maintainer-level view into active PRs, both those that are merging and those that need work.

Showcase

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

trolleyyeeted trolley

History Slider

showcase

An implementation of a History Slider that can be used to debug previous state, such as why this trolley gets yeeted into orbit

waterbuild targetinglampsdirectional lights

Lamps and Water

showcase

A number of different updates in this game. Including:

signal visualization

Audio Signal Visualization

showcase

The frequency response bar graph is made from a single cylinder mesh and the line plots are gizmo linestrips. The mocked signal is composed of relatively slow sine waves (in the range of 1 Hz to 100 Hz).

screen-space global illumination with visibility bitmasks

Screen-Space Global Illumination

showcase

An implementation of screen space global illumination based on Visibility Bitmasks. The demo also uses the new Screen Space Reflections and motion blur that were added in 0.14.

Additional context on the ssaovb approach is available.

many entitieszoomed in

a million little sprites

showcase

This is a simulation of a little space sandbox in 2d as a test for using Bevy with many many entities.

gizmos

defcon gizmos

showcase

Inspired by Defcon this demo shows off the usage of Bevy's gizmos to render what would be passing planes on a map.

caustics

Water Caustics

showcase

This water-and-caustics demo includes a link to the addition of an attenuation field to Bevy's PbrInput shader processing.

Crates

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

3d character controller

bevy_fps

crate_release

Last week a new 3d FPS character controller example was added to bevy_rapier. bevy_fps takes that code and makes it a separate installable crate.

warbler_grass

warbler_grass 0.6.1

crate_release

warbler_grass is a crate to render 3d grass.

0.6.1 speeds up the computation of the grass dramatically, as well as allows the computation to last for multiple frames. This should get rid of any stutters when loading in new grass chunks.

The new systems also dispatch user events to track the current status of the computation, as well as giving more information in case of errors

bevy_device_lang 0.4.0

crate_release

bevy_device_lang provides cross platform access to the device language, so the right language can be used for localization.

0.4 brings Windows and Linux support, adding the the iOS/macOS/Android/WASM support.

bevy lunex

bevy_lunex 0.1.0

crate_release

Bevy Lunex 0.1 is the first published version of the UI crate powering the cyberpunk-inspired Bevypunk demo. bevy_lunex allows mixing 2d and 3d elements, diagetic interfaces in worldspace, routing, and more.

It now includes a documentation book and the Bevypunk example is available on Itch.io.

haalka

haalka

crate_release

haalka is a reactivity library powered by Functional Reactive Programming and futures-signals. Inspired by Dominator and MoonZoon, haalka offers the same signal semantics as a thin layer on top of bevy_ui.

The examples are the right place to start if you're interested in seeing how the framework works, documentation will follow, and there are 10 additional videos in the Discord thread that don't exist in the GitHub repo.

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