This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Bevy Color, Gizmos, and 7drl

2024-03-04

Welcome to another week in the Bevy ecosystem!

This week we've got the new bevy_color crate, a few new gizmos, and a number of people started participating in the 7 day roguelike challenge game jam.

We also cover some updates to the Lighting system that happened in 0.13 and how you might want to update your app.

bevy_color

A new crate was introduced to the repo this week called bevy_color. While some details are still being worked out, this seems like its going to be the location for color palettes in the future. One change that came through with this that I think will make it nicer for those new to shaders is LinearRgba.

Color space conversion are super confusing, which is why its nice to see a new color space conversion diagram make its way into the documentation this week.

New Gizmos!

A couple new gizmos made their way in including Grids and coordinate axes.

7DRL

A number of people are participating in the seven day roguelike game jam, leading to a number of showcases this week.

etc

The lighting system changed in Bevy 0.13, so you may want to check in on the values you've chosen like in this PR.

Showcase

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

cubes

Cubes!

showcase

A cute scene with a bunch of named cubes hopping towards you.

bevy firework

Bevy Firework particles

showcase

Bevy Firework is a particle system plugin where particles are simulated on the CPU and use GPU batching for rendering. This allows each particle system to be rendered in a single draw call (rather than one per particle).

voxel lod blending

LOD blending on smooth voxel terrain

showcase

An in-progress view into a Level of Detail (LOD) blending on smooth voxel terrain.

erosion with deposits

Erosion simulation (now with deposits!)

showcase

A continuation of an erosion simulation that was previously posted, now with deposits!

ufo snowboard

ufo snowboard (ios)

showcase

ufo-snowboard is an ios snowboarding game.

scroll view

Scroll View (early preview)

showcase

A simple scroll view that hasn't been published yet. There's an example that runs on the web and the source is available on GitHub

projectiles

netcode and knockback

showcase

This is a test from the client's perspective with ~30ms ping and 1% packet loss.

This is built on top of renet and thus has access to the renet visualizer

Images don't do the videos in the Discord thread justice, so be sure to clickthrough and check them out for more.

cats!

Do you like CATS?

showcase

A published game on iOS and Android!

Very similar to a fruit merging game that went viral a short time ago. The game is just as fun as the original and I actually got distracted playing it while writing this description. Drop cats in, similar cats merge, and there's physics!

time travel debugging

PoC time-travel debugger

showcase

time-travel debugging is a concept where you basically record a whole bunch of historical state and can then move through that state to see how your system is responding at certain points in the past.

Revy is a proof of concept time-travel debugger for Bevy. There's an online demo using Rerun which honestly does more than any words can for the concept.

bevy_peck

bevy_peck progress

showcase

bevy_peck uses bevy_math and Glam types to enable collision detection. This is one of the more "Bevy-native" collision detection attempts that exist right now. The long-term goal of this work is to replace Parry (which uses nalgebra) in bevy_xpbd.

Why do this? There's whole bunch of reasons in this comment in the Discord thread

contact projective decals

Contact Projective Decals

showcase

Based on this talk, this bevy implementation of contact projective decals shows off a 1 x 1 Rectangle (A quad) located at Vec3::ZERO with the normal pointing in the Y direction with the decal material applied. Stretching over a slightly angled Cuboid.

The Discord thread has hundreds of comments from people using it in various ways and other discussion, so check it out if this is interesting to you.

pathfinding

Pathfinding!

showcase

A player (the cube) sits in the center of two circles. Those little cubes define points around player, which enemies (the other cubes) may occupy.

octree voxels

octree mesh: 256^3 potential leaf nodes

showcase

This is a single entity representing a bunch of voxels organized in an octree, which subdivides only when required. Lots of great discussion in the Discord thread

procedural rooms

Procedurally generated, semi-destructible rooms for 7drl

showcase

I'm generating a 3x3 matrix of 0s and 1s, 1 when a tile has a neighbour. Based on these 9 values, the type of tile is chosen

puzzle game

Puzzle game

showcase

Not much information on this one but oh my look how cute it is! Push boxes around in a lovely forest environment.

7 day roguelike challenge

7DRL Day 1

showcase

Skeletons and rooms for day 1 of 7DRL

50k blades of grass

50 million blades of grass

showcase

Uses 3 triangles per blade and instancing to achieve 50 million blades of grass organized in a Bevy logo. If you're curious how high it can go the author states:

my pc began to really struggle at 100-120million. I guess I got around 20fps at best there.

globe

A globe

showcase

An interactive globe running in the browser. Uses a texture from here

doom 3 panel

Doom 3 panel

showcase

A work-in-progress attempt to make an interactive Doom 3 panel.

Ferris Fur Shader

Ferris Fur Shader

showcase

A fur shader in WGSL. The fur is on a Ferris model which is quite hidden by the fur!

If you're interested in fur, acerola has a video exploring how games render fur.

third person shooter

3rd Person Shooter

showcase

A third person shooter game. This video showcases some development content, including character movement, animation, ray detection, and shooting effects.

compass map editor

Compass Map Editor

showcase

The goal is to have a simple map/level editor that provides easy plug and play format for 2d top/down 45 games.

kataster (asteroids)

Kataster

showcase

This remains a minimalist game or macro-example, aimed at bevy beginners, to show how to assemble a simple 2D space shooter using some of the common plugins like bevy_xpbd bevy_hanabi or leafwing-input-manager

Source is available on GitHub

destructible volumes

infinitely destructible volumetrics

showcase

sdf is only at generating regular shapes like the planet as a sphere. A volumetric data is extracted from the sdf shapes at some resolution depending on how much detail is needed. Then boolean operations (such as subtract, union, etc,) is done at the volumetrics, and can be done infinitely since there is no need to keep track of previous operations as you would in sdf only.

bevy system notebooks

Bevy code search

showcase

bevyrly allows you to open notebook environments in VSCode and query to show the systems that operate on a specific component. There's a blog post talking about why the extension was created and what it is for.

boids

boids!

showcase

boids!

Very cool to have several hundred boids in debug build, without paying any mind yet to optimization.

ui library

Personal UI library

showcase

A lil ui lib that uses Bevy and canvas2d. Potentially using skia in the future.

campfire

sitting down at a campfire to heal... with an enchanted dagger

showcase

scene from an in-progress game

ui experiments

More UI experiments!

showcase

bevy_cobweb_ui gets a new reactive experiment!

ant.care

ant.care

showcase

Ants! more specifically a digital ant farm that tracks your farm at ant.care and speeds up time if you close your browser and come back to simulate the time you were away.

Source is available on GitHub.

2d lighting

2d lighting!

showcase

a 2d lighting implementation based on

queue game

A game about queues

showcase

is what it says on the tin

Crates

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

Shadplay for Bevy 0.13

crate_release

Real-time wgsl visualisation tooling for educating oneself in the art of shader programming

Foxtrot for Bevy 0.13

crate_release

"Foxtrot, the all-in-one 3D game template for desktop" gets its Bevy 0.13 update. This is a heavier game template repo forked from NiklasEi/bevy_game_template aimed at making 3d games.

bevy-yoleck 0.19

crate_release

Yoleck - Your Own Level Editor Creation Kit - has been updated for Bevy 0.13. Yoleck is enables a Bevy app to act as its own level editor. The same executable can launch in either game mode or editor mode

bevy water

bevy_water

crate_release

bevy_water got its Bevy 0.13 update, with a small caveat. The time global was removed from vertex shaders in 0.13, so we really need 0.13.1 for that fix to be released.

bevy_simple_text_input 0.5.0

crate_release

bevy_simple_text_input is an unambitious single-line text input widget for bevy_ui. At just under 500 lines of code, this may be bevy_simple_text_input's last batch of features. New features are shown off in the new value example

bevy_ratatui

bevy_ratatui 0.1!

crate_release

bevy_ratatui turns Bevy into a terminal and draws to it! ... and its wasm compatible!.

bevy flowfield

bevy_flowfield_tiles_plugin 0.8

crate_release

A pathfinding library using vector fields (fluid mechanic stuffs) inspired by the likes of Supreme Commander, Beyond All Reason and the works of Elijah Emerson, leifnode and jdxdev.

bevy_third_person_camera 0.1.1

crate_release

Now there are basic WASD & sprint movement controls if you add the ThirdPersonController::default() component alongside your ThirdPersonCameraTarget component

grass

warbler_grass 0.6

crate_release

render grass with bevy! now with Bevy 0.13 support

bevy_simple_scroll_view first release!

crate_release

Simple to use plugin implementing ScrollView into Bevy engine. Supports scroll using dragging and scrolling, should work on all platforms.

bevy-inspector-egui 0.23.3:

crate_release

bevy_inspector_egui combines egui and Bevy to provide an inspection debugging interface to your resources and components.

bevy_serde_project first release!

crate_release

Stateful pretty serialization for the bevy engine.

Features:

  • Treats Entity, its Components and Children as a single serde object
  • Fetches data from the world during serialization, which allows you to, among other things, serialize Handles
  • Supports every serde format.
  • Larps as typetag, especially for wasm.

bevy_collider_gen 0.1.0

crate_release

bevy_rapier_collider_gen has undergone a transformation and is now simply... bevy_collider_gen 😄

bevy_collider_gen is a library for generating bevy_rapier2d colliders, for bevy apps, from images with transparency.

rapier and bevy_xpbd are now supported!

Qevy v0.2.0

crate_release

Quake .map files for the Bevy game engine.

bevy_cobweb first release!

crate_release

bevy_cobweb is a general-purpose reactivity framework for Bevy.

Features:

  • Manually run systems with SystemCommands.
  • React to ECS mutations: resource mutations, component insertions/mutations/removals, entity despawns.
  • React to events: broadcasted events and entity-targeted events.
  • Send data directly to systems with system events.
  • Write recursive system commands/system events/reactions.

leafwing_input_playback 0.5

crate_release

A straightforward but robust input capture and playback crate for Bevy: supports gamepads, mice and keyboards with both time and frame inputs.

This crate is designed for testing (especially of UI), but you could probably use it for TAS support or weird art games?

note: TAS means "Tool Assisted Speedrun".

bevy_save for Bevy 0.13

crate_release

bevy_save enables you to easily save and load your entire game state, including resources.

Devlogs

vlog style updates from long-term projects

Operation Deep Freeze

Operation Deep Freeze

devlog

Operation Deep Freeze is a hardcore FPS extraction-based looter/shooter based in Antarctica.

They're using Blender as an editor using the Blender_bevy_components_workflow approach and rapier3d for physics.

They have an additional post about why they chose Bevy (reddit).

switching from 0.11 to 0.12 was done in 4 hours for me, and switching from 0.12 to 0.13 was done in 1.5 hrs

roguelike

boreec/roguelike

devlog

This roguelike is available on GitHub.

This month's update includes color palette choices, approaches to splitting up tilesets, and taking a look at what Bevy 0.13 is bringing to future iterations of the game.

bevy ui

Widget Library: Drop interactions, tab containers, Docking zones

devlog

First version of drop interactions, tab containers, and the systems connecting floating panels with docking zones and tab containers are done!

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