
Grappling Hooks, Marching Cubes, and alphas
2024-11-04
Bevy's 0.15 release candidate process is well under way, which means fewer major features making it in as the release candidates stabilize and the official release gets closer.
In the meantime we've got grappling hooks, marching cubes implementations, and game jam games to cover.
We also see the alpha period start for Untold Dawn, a roleplay required text-based multiplayer game.

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


WASABI-16
showcase
WASABI-16 now runs on the web and includes a debug view that visualizes "draw calls" in real time.

Do you like cats?
showcase
An implementation asking questions of the user using bevy_asky. In this case, whether the user likes cats.

Noumenal
showcase
This is Noumenal, a 3D solid modeling app, running on an iPhone using Facet (CSG), Impulse Drive (physics), and others in a reusable set of plugins. It is using vanilla Bevy 0.14.

GTR
showcase
GTR is this developer's first game. It includes implementations for player control, enemy interactions, and score tracking.

Molecular Explorer
showcase
A live on-the-web version of the molecular explorer we've featured in previous issues.
The source is also available in a GitHub repo.


visibility graph pathfinding
showcase
An implementation of visibility graph pathfinding using an algorithm called a "supercover".

Dungeon Generator MVP
showcase
An MVP dungeon generator using Eller's algorithm. The algorithm will be expanded to carve out rooms and Prim's algorithm might be an alternative in the future.


bevy_copperfield uv-unwrapping
showcase
bevy_copperfield is a Bevy plugin for procedural modeling and now supports automatic uv-unwrapping.
The paper Least Squares Conformal Maps for Automatic Texture Atlas Generation was used in the implementation.

Crates
New releases to crates.io and substantial updates to existing projects
Voxy v0.2.0-alpha.1
crate_release
A voxel engine for Bevy now with support for named scene models from MagicaVoxel
tiny_bail v0.4
crate_release
tiny_bail is a set of convenience macros for logging or discarding errors (instead of returning them with ? or panicking with unwrap).
cargo-sweep v2
crate_release
cargo-sweep is used in Github Actions to prevent cached target directories from snowballing in size and while not directly bevy-related, is used by the ecosystem including in Leafwing-Studios/cargo-cache.

Devlogs
vlog style updates from long-term projects
Untold Dawn
devlog
Untold Dawn, a roleplay required text-based multiplayer game written with Bevy's ECS, is going to open its door for alpha on November 5th. A two-week pre-alpha period just ended. The game has seen a couple of hundreds accounts created, with a few persistent connected players, and has seen very low CPU usage

Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins
Bevy 0.14 to 0.15 cheatsheet
educational
A cheatsheet built from the author's experience migrating their own applications from Bevy 0.14 to Bevy 0.15's new release candidates.
- Undeprecate is_playing_animation authored by mgi388 
- Move `ContentSize` requirements from `Node` to the widget defining components authored by ickshonpe 
- Layout rounding debug example authored by ickshonpe 
- Move `UiImage` from `ui_node` to the `widget::image` module authored by ickshonpe 
- Adding alpha_threshold to OrderIndependentTransparencySettings for user-level optimization authored by hexroll 
- Cosmetic tweaks to `query_gltf_primitives` authored by rparrett 
- Emit picking event streams authored by NthTensor 
- Mesh picking fixes authored by aevyrie 
- More `#[doc(fake_variadic)]` goodness authored by bash 
- `ReflectBundle::remove` improvement authored by BenjaminBrienen 
- Update notify-debouncer-full requirement from 0.3.1 to 0.4.0 authored by mnmaita 
- Require `ContentSize` on `UiImage` again authored by ickshonpe 
- Remove custom rounding authored by ickshonpe 
- Fix linux nvidia + xwayland freeze at startup authored by eero-lehtinen 
- Fix AsBindGroupError display for InvalidSamplerType authored by Henauxg 
- fix: removed WinitPlugin from headless_renderer example authored by cxreiff 
- Reduce compile time of bevy_ptr::OwnedPtr::make function authored by clarfonthey 
- Rename `ComputedNode::calculated_size` to `size` authored by ickshonpe 
- Make some associated functions of `Color` const authored by mamekoro 
- Constify `ComputedNode` authored by ickshonpe 
- Remove the `Globals` binding from the box shadow shader authored by ickshonpe 
- Fix pointer constructor order authored by NthTensor 
- Improve `SubApp` documentation example authored by BenjaminBrienen 
- Add `button_just_down` and `button_just_up` methods to `PointerInput` authored by NthTensor 
- Fix typo in bevy_ecs authored by JusSchw 
- Mesh::merge: count_vertices instead of initializing positions authored by stepancheg 
- Indices::extend authored by stepancheg 
- Support prefers_home_indicator_hidden authored by Soulghost 
- Remove the invalid system ordering in the animation example. authored by chendaohan 
- Derive same attributes as MainEntity for RenderEntity authored by Vrixyz 
- Picking example touchups authored by aevyrie 
- Fix and improve MSAA documentation authored by Jondolf 
- simplify example, replace get_single to Single Query authored by foxzool 
- Correctly feature gate `custom_cursor` authored by Friz64 
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
- Fix resizing window in example crashes authored by BenjaminBrienen 
- Add argument to ci for test threads and build jobs authored by BenjaminBrienen 
- `OnMutate` Observers/`on_mutate` Hooks authored by grace125 
- Make `BinnedRenderPhase` fields for accessing batchable and unbatchable entities public authored by BenjaminBrienen 
- Lifetime code style consistency in `impl`s and other easy grabs authored by BenjaminBrienen 
- Entity cloning authored by eugineerd 
- Move `all_tuples` to a new crate authored by BenjaminBrienen 
- Fix blending for CameraOutputMode::Skip authored by chronicl 
- Expanded `ui` example authored by ickshonpe 
- Add tests and remove sources of panics in mesh picking authored by tbillington 
- Make doc CI use nightly authored by BenjaminBrienen 
- UI anti-aliasing fix authored by ickshonpe 
- enable_state_scoped_entities() as a derive attribute authored by mockersf 
- Fixed comments in async_compute example to reflect #10400 changes authored by gramsey 
- Don't reëxport `bevy_image` from `bevy_render` authored by BenjaminBrienen 
- move mesh uniform construction out of Core3d authored by robtfm 
- mutate observer authored by pyhinox 
- Use `stack_z_offsets` in all the cases we create a `TransparentUi` authored by doup 
- bevy_image: PCX image support (off by default) authored by lupine 
- Suggestions refactoring authored by sharma-shray 
- Share implementation of sort methods. authored by chescock 
- Fix WGSL formatting inconsistency on mesh_view_binding authored by jatimix 
- Disable lint that interferes with rust beta CI compatibility authored by BenjaminBrienen 
- BRP System Ordering authored by mnmaita 
- Adding `ScheduleGraph::contains_set` authored by urben1680 
- Implement `Measured2d` for `Arc2d`-based primitives. authored by lynn-lumen 
- Improved the global transform api to access rotation and scale authored by Sigma-dev 
- Add EntityMut::get_mut_by_id_unchecked authored by Soulghost 
- Allow components to be "explicitly required". authored by andriyDev 
Issues Opened this week
- Randomly sprite does not render and systems do not function authored by Frost2779 
- Improve Picking Query Expressiveness authored by aevyrie 
- `Val` variants based on the size of the root UI node authored by ickshonpe 
- Const all the floating point arithmetic authored by alice-i-cecile 
- Changing backing image of a `RenderTarget::Image` causes rendering to that image to stop authored by aecsocket 
- Position-only vertex buffer for shadow map / depth prepass authored by JMS55 
- PCSS issues authored by JMS55 
- Required plugins authored by simbleau 
- Consider removing headless plugins authored by alice-i-cecile 
- Use const arrays with dynamic indexes, shader code cleanup authored by BenjaminBrienen 
- Anisotropy example has gaps and continuity errors authored by hukasu 
- Document expectations of Bevy crates authored by mockersf 
- Add a toon shader authored by alice-i-cecile 
- Add a sprite outline shader authored by alice-i-cecile 
- Expose `SystemMeta` for system exploration and configuration authored by MiniaczQ 
- The words "image" and "texture" are used interchangeably in some doc comments authored by ickshonpe 
- Screenspace shadows (contact shadows) authored by JMS55 
- Rename `PointerInput::button_just_down` and `just_up` methods authored by alice-i-cecile 
- Resizing 2D camera's viewport drops FPS and crashes (with HDR and bloom enabled) authored by bloopyboop 
- Require components that can't be defaulted authored by andriyDev 
- Enforce formatting for yml files in CI authored by alice-i-cecile 
- Consistently use pressed / released terminology in `bevy_picking` authored by alice-i-cecile 
- Extend the information included in HitData authored by m-edlund 
- Shadows in 3D scene are flickering authored by lonegamedev 
- Allow certain components to be marked immutable authored by nakedible 
- Make the NULL semantics of entity clear authored by iiYese 
- Get Entity from scene hierarchy authored by Fidius-jko 
- `Camera::viewport_to_world_2d` doesn't take into account the viewport position authored by Jaso333 
- `observe` on `WorldEntityMut` may cause the reference to be invalidated authored by nakedible 


















