This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Tiny Glade, VJ performances, and 2d lighting

2024-06-03

This week in the Bevy ecosystem we see Tiny Glade ship a Steam demo, live VJ sets powered by Bevy, screen space reflections in the deferred renderer and more.

We've also got the usual showcases and a couple really interesting crate release for 2d lighting systems and gpu particles.

Tiny Glade's Demo is out this week with the ability to build small castles and yes, you can pet the sheep. Tiny Glade uses Bevy's ECS and their own custom renderer, which they talk about a bit in this 80 level article.

tiny glade castle

tiny glade castle

tiny glade sheep

tiny glade castle

What would be in a hypothetical Bevy 1.0?

Are you one of the people wondering what Bevy is planning before declaring a 1.0 release? Alice gave her thoughts over on Reddit including the need for an editor, documentation, and more. This is not an "official Bevy 1.0 roadmap", rather it's just Alice's thoughts but its still useful to know what prominent Bevy developers think about what is needed for a 1.0.

DrLuke's VJ set

DrLuke performed a Bevy-based VJ set at GulaschProgrammierNacht, a hacker conference in Germany. It was about 2 months of work to build up the 2 hour set. Here are some images from the live set as well as Bevy UI for controlling it.

bevy debug set

live vj

debug vj

vj set

Rhombus Primitive

I've been working with isometric projection a lot lately, so its great to see the Rhombus get a primitive implementation which could simplify the handling of isometric projections in the future.

Grays

A new trait (Gray) for color spaces allows the simpler implementation of a series of grays. Rather than needs to specify the full set of values, such as rgb, each trait implementation is defined with a pure black and a pure white. The gray function then accepts a lightness value to generate a mix of these two values. 0 is black, and 1 is white.

impl Gray for Hsla {
    const BLACK: Self = Self::new(0., 0., 0., 1.);
    const WHITE: Self = Self::new(0., 0., 1., 1.);
}
Hsla::gray(0.5)

Random Sampling Example

random sampling example

A new random_sampling example was introduced to show off the new ShapeSample functionality we've talked about in previous issues. The example shows off sampling interiors and boundaries of a cube.

sampling primitives

A second sampling example, sampling_primitives, was also merged this week, showing off the rest of the shapes.

Screen-space reflections for the deferred renderer

reflections

Deferred rendering was introduced in Bevy 0.12 as an alternative to Bevy's existing "rendering style". This PR implements SSR, or Screen Space Reflections. This technique approximates real-time reflections based on raymarching through the depth buffer and copying samples from the final rendered frame.

loading gLTF

Using the gLTF loader can be a bit confusing with all of the elements in .gltf files. Loading specific Scenes, Nodes, Meshes and more has gained more documentation in 13548.

bevy_transform

The Transform component is a useful struct inside and outside of Bevy contexts. With 13533 and 13599 bevy_transform became more modular and usable as a standalone dependency.

Showcase

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

Wireframes

Wireframes

showcase

Progress on this wireframe renderer project has had some great progress. The larger timeline of progress is accounted on Mastodon.

doing chores and killing bugs

Doing Chores and Killing Bugs

showcase

This game is from a game jam in April that had additional work put into it over the month of May. Available to play and download on Itch

gemgem ray tracing

Gem Raytracing

showcase

This output is generated from a raytracing program with the hopes of developing it further into a CAD program. The code is available on GitHub

IceWarfare

IceWarfare

showcase

An attempt at recreating a war3ft map where mages trying to fight by bashing into each other. The current work is demonstrating the character controller "on ice".

a few more hours into Bevy

A few more hours of Bevy

showcase

This person recently started with Bevy and continued to build out sprite animations, operating the camera, displaying a diamond grid with proper texturing and their first shader.

A mermaid flowchart visualizer for Bevy systems.A mermaid flowchart visualizer for Bevy systems.

A mermaid flowchart visualizer for Bevy systems.

showcase

This is a mermaid flowchart visualizer for Bevy systems based on bevy_mod_debugdump.

cat chasercat chasercat chaser

Cat Chaser

showcase

Cat Chaser is a Ludum Dare Jam entry back in 2017 that gains new life with a web release after being ported to Bevy. It can be played on Itch.io.

bevy vr blocksbevy vr blocks

bevy_vr_blocks

showcase

Physics and more on a Quest 2 in virtual reality. Source is available on GitHub

character creator

Bevypunk Character Creator

showcase

This is a first attempt at a character creator using bevy_lunex for the Bevypunk example. It is scenario 5 described in the 10 Challenges for Bevy UI Frameworks GitHub discussion.

scriptgripscriptgrip

Scriptgrip

showcase

In Scriptgrip, the player controls a rocket by constructing a list of commands that then play over time. The aim is to finish the level as fast as possible, there is global leaderboard and players can compete with each other.

isometric characterisometric character

32-angle 2d isometric character controller

showcase

This showcase added controller support and applied the isometric projection to keyboard and controller input, as well as raycasting. The blender script to support rendering all 32 angles and 5 animations has grown to automatically select NLA tracks and produce json metadata that can be imported into Bevy.

This showcase includes the Blender script used to render out the spritesheet.

Crates

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

bevy ratatui

bevy_ratatui 0.4

crate_release

bevy_ratatui 0.4 is the re-start of a Bevy plugin for building TUIs (terminal user interfaces) with Ratatui. The 0.4 release is a completely new crate as the name has been transferred. This current release is still in the experimental phase and looking for feedback.

The new crate is located at bevy_ratatui

ribbons

bevy_hanabi 0.11

crate_release

bevy_hanabi is a GPU particle system plugin for the Bevy game engine. The most notable new feature in bevy_hanabi 0.11 is supports is a new trails and ribbons.

There is a migration guide and a changelog.

bevy_mod_sequence

crate_release

This crate provides a Sequencer component that aids in queuing systems or animations and specify their ordering.

bevy light 2d

bevy_light_2d

crate_release

bevy_light_2d is a general purpose 2D lighting plugin for Bevy that prioritizes ease of use and general application over depth of features. It takes inspiration from a number of 2d lighting crates that came before it:

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