Polder building, Jarl Playtests, and Hanabi Particles
2024-11-18
This week in Bevy we see Jarl start playtesting, further progress on Polder's building mechanics, and more.
We also see the release of some interesting new particle features in Hanabi, including mesh particles and improve trails.
The CLI working group has also produced the first release of a Bevy linter, which is possibly a great addition for sharing patterns and optimizations for the community.
bevy_lint
You might be familiar with cargo clippy
which is a collection of lints to catch common mistakes and improve your Rust code. Clippy can be great, but projects like Bevy have specific usage patterns that would benefit from different rules.
On that subject, the CLI working group has released bevy_lint
, a collection of lints to check for Bevy-specific footguns and optimizations, as well as enforce project-wide restrictions and standards. This is a work-in-progress linter that has rough edges, but the goal is to upstream it into the Bevy organization at some point.
Check out the release notes for instructions and how to use it and check out the talk this Thursday at the 7th unofficial Bevy meetup
This week the Merge Train is headed by François! The 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.
logic circuit simulator
showcase
A logic circuit simulator built on a livestream. It uses Bevy and egui, with egui-snarl powering the node graph.
bevy_easy_portals demo
showcase
A preview of a new bevy_easy_portals demo, including being able to walk through the portal.
Siege
showcase
A trebuchet made using Avian3d, the goal is to be as realistic as possible. Video available on YouTube
bevy_motion_matching
showcase
A work-in-progress motion matching system. This shows a visualization tool trajectory matching a user's predicted trajectory and the best match trajectory from the Mixamo dataset.
Jarl Playtest
showcase
Jarl, a fantasy colony builder, has entered playtesting! This video shows off a number of the features of the game including various building mechanics.
i18n integration + dynamic font loading
showcase
A concept project demonstrating i18n integration and dynamic font loading.
Crates
New releases to crates.io and substantial updates to existing projects
Bevy Hanabi v0.13.0
crate_release
bevy_hanabi is a GPU particle system plugin.
0.13 is a release for Bevy 0.14 and brings official wasm support, arbitrary mesh particles, texture sampling, and a Trails and Ribbons API rewrite.
This version is for Bevy 0.14 and a different version will be released for Bevy 0.15 support.
bevy_channel_trigger
crate_release
Send events via a channels from anywhere (eg. web-dom, c-ffi) to Bevy Observers.
Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins
Turn based mechanics with Bevy's one-shot systems
educational
An explanation of how to power turn-based games with one-shot systems and the command pattern.
Bevy Channel Trigger
educational
A short post about the new bevy_channel_trigger
crate (mentioned in this issue) and stitching crossbeam together with observers.
Disable lint that interferes with rust beta CI compatibility authored by BenjaminBrienen
Rename `Rot2::angle_between` to `Rot2::angle_to` authored by tim-blackbird
Allow jobs to upgrade to macos-15 (using -latest) authored by richchurcher
Don't reëxport `bevy_image` from `bevy_render` authored by BenjaminBrienen
UI/text Example - Clarity Improvements authored by TurtIeSocks
Remove the measure func for image nodes with the default UI texture authored by ickshonpe
Fix not being able to run bevy_ui tests authored by StrikeForceZero
Add more Glam types and constructors to prelude authored by Jondolf
undeprecate `component_reads_and_writes` authored by mockersf
don't check doc in beta ci as it requires nightly authored by mockersf
Fix panic in UiSurface if Node is removed and re-added authored by UkoeHB
Clean up some yaml mistakes authored by BenjaminBrienen
Support `on_thread_spawn` and `on_thread_destroy` for `TaskPoolPlugin` authored by LogicFan
Fix missing import authored by BenjaminBrienen
Do not re-check visibility or re-render shadow maps for point and spot lights for each view authored by coreh
Gitignore all target folders authored by BenjaminBrienen
Add EntityMut::get_mut_by_id_unchecked authored by Soulghost
bevy_reflect: Add `ReflectDeserializerProcessor` authored by aecsocket
Add `unregister_system` command authored by grind086
UI anti-aliasing fix authored by ickshonpe
Minor docs fixes authored by richchurcher
Text2d scalefactor change detection fix authored by ickshonpe
Use the fully qualified name for `Component` in the `require` attribute authored by venhelhardt
Use normal constructors for EasingCurve, FunctionCurve, ConstantCurve authored by cart
Trivial `bevy_picking` refactor authored by ickshonpe
Fix sprite picking backend not considering the viewport of the camera. authored by andriyDev
`many_buttons` `--respawn` arg authored by ickshonpe
Make PCSS experimental authored by cart
Picking out order authored by NthTensor
Expose BRP system scheduling and add system set authored by villor
Fix meshlet private item regression authored by JMS55
Headless by features authored by mockersf
remove ViewUniformOffset from inactive cameras authored by mockersf
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.
Pull Requests Opened this week
Remove all `deprecated` code authored by BenjaminBrienen
Support for `get_many` and `get_many_mut` functions for `Assets<T>` authored by Rajveer100
Rename Pointer<Down/Up> -> Pointer<Pressed/Released> in bevy_picking. authored by harun-ibram
Handle `TriggerTargets` that are combinations for components/entities authored by BenjaminBrienen
Document why `MAX_JOINTS` and `MAX_MORPH_WEIGHTS` are set authored by BenjaminBrienen
Feature gate render in UI (fix bevy_test feature) authored by BenjaminBrienen
Add git hooks (opt-in) authored by BenjaminBrienen
Update rodio requirement from 0.19 to 0.20 authored by mnmaita
Remove deprecated `component_reads_and_writes` authored by bushrat011899
[bevy_ui/layout] Update internal mappings authored by StrikeForceZero
Adds some helpful methods to TextFont authored by mnmaita
Add a bindless mode to `AsBindGroup`. authored by pcwalton
Draft: add `http` & `https` asset sources authored by mrchantey
Adds basic support for working with system fonts authored by bushrat011899
Support component hooks closures authored by mnmaita
Add Immutable `Component` Support authored by bushrat011899
Only use physical coords internally in `bevy_ui` authored by ickshonpe
[bevy_ui/layout] extra hierarchy change handling authored by StrikeForceZero
Retain `RenderMeshInstance` and `MeshInputUniform` data from frame to frame. authored by pcwalton
Add optional transparency passthrough for sprite backend with bevy_picking authored by vandie
Rename box shadow rendering variable names authored by doup
Add sample_clamped method to animation curves, returning Boxed values authored by mbrea-c
Allow dense iteration for FilteredEntity(Ref|Mut) in more cases. authored by chescock
Use `IntoIterator` instead of `Into<Vec<..>>` in cubic splines interfaces authored by mweatherley
Add WebSocket support for RemoteHttpPlugin authored by villor
Add BRP `watch_id` and `bevy/unwatch` authored by villor
Issues Opened this week
Migrate `component_reads_and_writes` authored by BenjaminBrienen
Observers causes a panic in scenes authored by s-puig
msrv CI is insufficient authored by BenjaminBrienen
many_buttons regression authored by DGriffin91
Rustdoc fails to build with `fake_variadic` in `all_tuples`. authored by mintlu8
Separate Image asset from its metadata authored by s-puig
`cosmic_text` font fallback causes inconsistent text rendering results authored by TurtIeSocks
Difference between Scene and DynamicScene is not clear authored by s-puig
Inconsistent default behavior between UI picking and Interaction authored by inodentry
sprite picking not work with fullscreen ui node authored by foxzool
iOS example crashes in 0.15-rc.3 and in main authored by ferama
Bevy needs a simpler way to load in thousands of icon textures as an atlas authored by ethereumdegen
wgpu crashes on Redmi k60pro mobile phone due to too high of resolution authored by ysypnbh
TemporalAntiAliasing should require Msaa:Off authored by JMS55
Add a `OnReinsert` hook in addition to the current `OnReplace`/`OnInsert` authored by nakedible
Docs for ".entry()" in EntityCommands is confusing / incomplete authored by viridia
Observer entities should have names authored by msvbg
Ui Anti-aliasing radius setting authored by ickshonpe
Feature gate `bevy_pbr` in `bevy_animation` authored by BenjaminBrienen
Maybe rename `TextUiWriter` to `UiTextWriter` authored by Olle-Lukowski
`Option` and `Has` ignore sparse components in transmuted dense queries authored by chescock
Allow resources to be inserted via tuple authored by Wuketuke
Runtime required components do not work correctly for components added through `#[require(...)]` authored by Jondolf