This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

ClearCoat, new examples, and game updates

2024-05-13

This week in Bevy there are a bunch of new examples added to the repo, new additions to the StandardMaterial, and more.

Out in the wider ecosystem, we'll see 400,000 entities on a flowfield in the showcases as well as crates for networking, ui, and signals.

On top of that there are game updates from past Bevy jams, card games and more.

ClearCoat

A clear coat is a thin layer of clear-ish material on top of something else, often meant to protect the underlying material. In real life this can mean a clear coat on top of canvas artwork, car paint, soda cans, or lacquer on wood.

Bevy's StandardMaterial now supports a clearcoat layer, including when imported from a GLTF using extensions, such as when applying a clearcoat in Blender. Bevy's StandardMaterial configuration includes the ability to modify strength, roughness, and normal modifiers.

Annulus (Torus) Gizmos

The Annulus primitive now has gizmos and the math/render_primitives example has been updated accordingly.

2d

3d

New Examples

Repeated texture example

repeated texture example screenshot

A new example showing off how to load an asset using Bevy's AssetServer with and without sampler configuration that results in textures being either repeated or the default: filling the space allotted.

Headless Example

headless

A new headless_renderer example shows off how to use Bevy to render a scene and save it to a file without using a window. The example is a bit long but there are comments detailing the more complicated bits and it supports native as well as wasm applications.

Amongst other refactorings, bevy_state was created to encapsulate the newly expanded state infrastructure. The relevant code was pulled out of the ecs crate.

Extrusion

The tracking issue for primitive shapes gains an implementation of extrusion for shapes. Implementations of .area() and .perimeter() have moved from the relative primitives to implementations of the new Measured2d and Measured3d traits.

Meshing and gizmos for extruded shapes has been left to a future PR.

Showcase

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

card gamecard game

Card Games!

showcase

Showing off some progress on a card game in Bevy!

shattered pixel dungeon

Shattered Pixel Dungeon main menu clone

showcase

A recreation of the Shattered Pixel Dungeon main menu

rhythm game

Remaking a rhythm game

showcase

This author is remaking their rhythm game. In their own words:

Starting to get the core mechanics down and really liking the workflow so far!

bevy_reactor color pickerbevy_reactor color picker

bevy_reactor color picker

showcase

bevy_reactor is a framework for fine-grained reactivity in Bevy. This is a demo of a color picker widget implemented using bevy_reactor.

bevy_xpbd restitution testbevy_xpbd restitution test

bevy_xpbd restitution test

showcase

An "oddly satisfying restitution test with bevy_xpbd's new solver and sweep-based CCD" aka: a series of bouncing balls.

"CCD" is short for Continuous Collision Detection.

clrs victory

CLRS v2.0!

showcase

This game started as a Bevy jam 3 submission and about a year later, 2.0 is released! There's a whole host of improvements including:

  • New graphics
  • Smoother gameplay
  • Difficulty settings
  • Rebalanced gameplay,
  • New more functional ui and controls
  • Better Performance

Playable on Itch.io

bistro

Bevy Bistro scene updates

showcase

The Amazon Lumberyard Bistro scene merged with a bunch of Bevy features including lighting. Relevant assets are linked in the Discord thread and the GitHub repo.

zoolitaire

Zoolitaire passes review

showcase

Zoolitaire is a puzzle game that has seen a few releases since its first, and seems to be the driving motivation behind a bunch of bevy/ios integration crates that have been released in the last few weeks.

The game now includes an in-app purchase to unlock the full 100 levels after the first 23 demo levels.

first bevy game

A few hours of Bevy

showcase

This is the author's first few hours into their Bevy journey!

wireframe

bevy_wireframe first steps

showcase

These images are the first steps towards bevy_wireframe, which is trying to implement an algorithm from the linked paper: Two methods for antialiased wireframe drawing with hidden line removal

crafting system

Crafting system

showcase

This voxel colony simulation game added crafting and building. These workbenches are constructed from slate stone and cherry wood.

flow fieldsflow fields

400,000 entities on a flowfield

showcase

This demo shows off 400,000 entities on a 1000x1000 flowfield. It doesn't use compute shaders at all, so could be made even more performant.

bevy_mesh_terrain_editor

bevy_mesh_terrain_editor

showcase

bevy_mesh_terrain_editor is an experimental editor targeted at supporting bevy_mesh_terrain. This is a screenshot of what it looks like.

jarl

Jarl Gameplay

showcase

Jarl: A Fantasy Colony Builder built with bevy_magic_light_2d shared some gameplay from their latest build.

empire building game

Empire building game on a hex grid

showcase

This demo takes advantage of a number of crates in the ecosystem to build a hex-based empire building game.

  • First, hexx's latest features allow for custom terrain mesh creation and improved piece movement. The terrain is influenced by temperature and the presence of rain.
  • bevy_mod_outline powers every object's outline
  • The camera is powered by bevy_rts_camera
  • bevy_mod_scripting powers an interface built on top of Bevy's own UI.

As for the game itself, the plan is to make a grand strategy game in the vein of CK3 and Total War, set in an early bronze age level fantasy world

bevy + fundsp

tomara-x/quartz

showcase

This is a visual programming and dsp playground. The YouTube video is definitely worth checking out, since this is an audio based demo.

Source is available on GitHub

roguelike racing

Roguelike Racing

showcase

A multiplayer turn based RPG prototype that uses Yew for the UI Bevy for the 3d games world. The UI and game world pass messages to communicate.

Source is available on GitHub

Crates

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

bevy_lunex

bevy_lunex alpha

crate_release

bevy_lunex is a path (as in: "filepath") based retained layout engine for Bevy entities, built around vanilla Bevy ECS. IT is library is intended to replace the existing bevy_ui crate, but nothing is stopping you from using them both at the same time. For the alpha a bunch of major changes have been made:

  • Completely rewritten from scratch
  • ECS friendly now (define UI as components)
  • 2D & 3D support (3D still needs to be more tested)
  • Custom mod_picking backend
  • Events as callbacks for interactivity
  • 9 Stackable UI units, with impl add for each other

Bevy Replicon 0.25.0

crate_release

bevy_replicon is a crate for server-authoritative networking. Notable for this release is a focus on supporting crates building on top of bevy_replicon, such as bevy_bundlication.

Additionally, users can now define replication rules similar to queries. Transform and Player components will be replicated only if both present on an entity.

app.replicate_group::<(Transform, Player)>()
bevy_midi

bevy_midi

crate_release

bevy_midi enables sending and receiving MIDI data to and from bevy using DAWs or MIDI Controllers

seldom_pixel

seldom_pixel 0.6

crate_release

seldom_pixel is a plugin for limited color palette pixel art games.

The major change in 0.6 is the replacement of bevy_ecs_tilemap integration with a built-in tilemap solution.

Devlogs

vlog style updates from long-term projects

devlog

Broken Spirit devlog

devlog

A short video detailing the state of "Broken Spirit", an early-stage rpg.

Educational

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

Processing Texture atlases in-Bevy

educational

This post covers loading a bunch of separate images using bevy_asset_loader, then turning those into a TextureAtlas using Bevy's APIs.

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