mastodon.gamedev.place is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server focused on game development and related topics.

Server stats:

5.3K
active users

Alice I. Cecile

Welcome to 2025: it's time for this year's first :) Every Monday, I go over the backlog of community-approved pull requests to @bevy: the engine for (and apparently!) that I'm paid to maintain.

We're somehow at 18 PRs with two approvals: let's do a final review and get these merged :) github.com/bevyengine/bevy/pul

@bevy 1. github.com/bevyengine/bevy/pul

Ooh, a PR from October is ready. Nice to see: changes have a rapidly decaying half-life in an active code base like Bevy.

I like the sounds of this: I love tests, *hate* panics, and mesh picking is a good candidate for performance improvements. Reviewed by the original author too!

Quality looks good; will merge once conflicts are fixed. Strong yes please to pre-validated meshes, but that's another PR.

GitHubRemove panics and optimise mesh picking by tbillington · Pull Request #16148 · bevyengine/bevyBy tbillington

2. github.com/bevyengine/bevy/pul

Two-level bins: not just a storage solution! pcwalton's been leading the way on performance-oriented refactors to Bevy's renderer: dragging it kicking and screaming into a modern form that plays nice with the hardware. The semi-automated screenshot testing for failures that Francois has maintained (powered by our examples) has been invaluable for catching problems.

Good reviews, tested and regressions have been fixed. Merging.

GitHubIntroduce two-level bins for multidrawable meshes. by pcwalton · Pull Request #16898 · bevyengine/bevyBy pcwalton

3. github.com/bevyengine/bevy/pul

Speaking of "rendering is hard because of the explosion of features and platforms and poor automated tests", here's a nice community fix for rendering on low-end embedded platforms. ESP32 microcontroller apparently!

Some simple fixes (curse you feature flags), and a weird double cast of `f32 -> i32 -> u64` that has a very nice comment. Merging!

GitHubFix depth_bias and build errors on less capable platforms by nandee95 · Pull Request #17079 · bevyengine/bevyBy nandee95

4. github.com/bevyengine/bevy/pul

Shiny rendering feature time! This time: "anamorphic bloom", which is just rendering jargon for "stretched out glowies". Check out that rendered car with this effect: what a time to be alive!

Surprisingly simple to do, and great comments to help make sure this is maintainable. I think I agree with the decision to split the shader code with an ifdef for now, but thorough benchmarking would convince me to merge the paths again.

Merging!

GitHubAnamorphic Bloom by aevyrie · Pull Request #17096 · bevyengine/bevyBy aevyrie

5. github.com/bevyengine/bevy/pul

More tech debt that feels like it comes from our decision to special-case UI rendering to use an implict camera. That choice has been good for beginner UX, but bad for maintainability and features (like worldspace UI). Bah.

In this case, we were re-extracting the default UI camera once for *every* UI node. Bad! And of course this mistake is copy-pasted into three different spots :(

Good simple fix though, merging.

GitHubdefault UI camera extraction fix by ickshonpe · Pull Request #17100 · bevyengine/bevyBy ickshonpe

6. github.com/bevyengine/bevy/pul

Oh hey, this one's mine! Even maintainers follow the "two community approvals" rule :D This is a basic framework for directional focus navigation, usually (but not always) with gamepads between UI elements.

There's more to do here (automatic building! full examples! gamepad API improvements!), but this is good enough for one PR. Merging and refining; thanks for the reviews <3

GitHubAdd basic directional (gamepad) navigation for UI (and non-UI) by alice-i-cecile · Pull Request #17102 · bevyengine/bevyBy alice-i-cecile

7. github.com/bevyengine/bevy/pul

A fix to a fix: we're still getting erroneous duplicate asset loader warnings apparently. Open source is really good at fixing these kinds of annoyances: they're not hard to fix, but they're easy to neglect since they're never "vital". Huge thanks to the community for the *thousands* of PRs just like this over the years. It really adds up!

Good change; merging. It's in the 0.15.2 milestone since it's a low-risk bug fix.

GitHubFix duplicate asset loader registration warning by arunke · Pull Request #17105 · bevyengine/bevyBy arunke

8. github.com/bevyengine/bevy/pul

Earlier in the 0.16 cycle, we allowed queries to access resource data, for things like indexes and the asset changed query filter.

While *in theory* you could also write resources with this data, it doesn't work yet, and the use cases for that are more limited (and confusing to users!). This PR fully removes the capability / tests for that, speeding up access and simplifying safety.

This is the right move for now, but this could be useful in the future. Merging.

GitHubDisallow requesting write resource access in Queries by vil-mo · Pull Request #17116 · bevyengine/bevyBy vil-mo

9. github.com/bevyengine/bevy/pul

Another PR in a series of changes to enforce new clippy lints across the code base. There was a *lot* of changes, including some tricky ones (curse you unsafe code), so it's been scattered into a dozen small PRs.

Messy, and really something I'd like to enforce at the workspace lint level, but I still think it's the right path operationally. This one is trivial though, so let's merge and move forward :)

GitHubbevy_audio: Apply `#![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)]` by LikeLakers2 · Pull Request #17119 · bevyengine/bevyBy LikeLakers2

10. github.com/bevyengine/bevy/pul

Oh hey, another "default UI cameras only need to be looked up once" bugs. Bah! Good find by ickshonpe: I really value their attention to detail.

Look things up *outside* the loop if they're not going to change! Merging.

GitHubMore DefaultUiCamera fixes by ickshonpe · Pull Request #17120 · bevyengine/bevyBy ickshonpe

11. github.com/bevyengine/bevy/pul

A straightforward safety / usability fix for a random rendering API. `get` should return `Option<T>`, rather than just slicing recklessly and silently panicking!

I *still* hate that design choice by : array slicing looks so convenient! But it just casually panics if anything goes wrong. Cleaning up the migration guide and merging.

GitHubMake the `get` function on `InstanceInputUniformBuffer` less error prone by Bleachfuel · Pull Request #17131 · bevyengine/bevyBy Bleachfuel

12. github.com/bevyengine/bevy/pul

A simple "expose things from winit" PR, allowing users on iOS to hide the status bar. Tested by a maintainer, and confirmed by another user that the underlying winit API works.

That's good enough for me: merging.

GitHubcan hide status bar on iOS by mockersf · Pull Request #17179 · bevyengine/bevyBy mockersf

13. github.com/bevyengine/bevy/pul

A performance improvement / fix for the ghost-node-free path in bevy_ui. Good to fix this regression, and I suspect that even the ghost node path can be made a fair bit faster.

Like I discuss in the thread though, that sort of optimization should probably wait until we're further along in the experimentation process: ghost nodes are still a solid "maybe we want this", and Cart's relations work will *also* thoroughly mess with this.

Merging the fix.

GitHubSimplified UI tree navigation without `ghost_nodes` by ickshonpe · Pull Request #17143 · bevyengine/bevyBy ickshonpe

14. github.com/bevyengine/bevy/pul

The `EntityPtr` working group is starting to yield fruit! This working group is trying to tackle some of the muddy semantics and extreme API duplication of all of our "entity but this time it's mutable with non-structural world access" types.

For now, just a cleanup PR to make their later work easier. Less unsafe, more consistent, fewer tuple structs (I hate these lol). I would merge this regardless! Five approvals with minimal comments: very clean.

GitHubCleanup entity reference types by ItsDoot · Pull Request #17149 · bevyengine/bevyBy ItsDoot

15. github.com/bevyengine/bevy/pul

Another allow -> expect PR, this time from bevy_sprite. We should really write that bevy_ecs safety comment for them 🤔

Classic git though: they broke the commit history in mysterious ways, so they're just redoing the work on a new branch / PR. Good call, especially for simple stuff.

LGTM; merging.

GitHubbevy_sprite: Apply `#![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)]` (Attempt 2) by LikeLakers2 · Pull Request #17184 · bevyengine/bevyBy LikeLakers2

16. github.com/bevyengine/bevy/pul

A missed deprecated item: Camera2dBundle. We generally keep deprecated items around for a single cycle: the migrations are pretty simple. I do really like the attribute: it's good to be able to provide compiler-powered suggestions that don't stop your game from running while upgrading.

Anyways, trivial PR: merging.

GitHubRemove `bevy_core_pipeline::core_2d::Camera2dBundle` by LikeLakers2 · Pull Request #17185 · bevyengine/bevyBy LikeLakers2

18. github.com/bevyengine/bevy/pul

Finally, a fix for a random complaint spotted on Reddit: our animation example was too complex! To me, examples are a lot like tests: there are "unit" examples, which teach exactly one thing in the simplest way possible, and there are "integration" examples that show realistic uses of features. Those shouldn't be mixed: be clear about the purpose!

Merging. I do think we should rename these examples, but in the interest of moving forward I've spun out an issue.

GitHubSplit up `animated_fox` example by rparrett · Pull Request #17191 · bevyengine/bevyBy rparrett

That's all for this week! If you have a moment, please take a look at the much-awaited "command error handling" PR: github.com/bevyengine/bevy/pul. User feedback here is really important to me, even if this isn't in its final form yet (smaller PRs better).

JaySpruce has done an exceptional job leading the work here and responding to feedback: it feels great when one of the complex tasks in my backlog is handled by contributors and all I need to do is provide review.

Thank you all so much <3

GitHubAdd `Result` handling to `Commands` and `EntityCommands` by JaySpruce · Pull Request #17043 · bevyengine/bevyBy JaySpruce

@alice_i_cecile Would it surprise you to know this is very similar to how I did it for Far Cry 3: Blood Dragon? 😀

@skylark13 :D That's so cool to hear. We have a ton of self-taught contributors coming from outside of games, so validation that our approach to problems is normal / sane is often quite helpful!

@skylark13 @alice_i_cecile

Never thought I'd get a comment like this on one of my PRs. Blood Dragon is one of my favorite DLCs/expansions of all time!

@aevyrie @alice_i_cecile

👍

Blood Dragon was the 2nd project I shipped in the games industry (Far Cry 3 was the 1st). I got into gamedev a bit late, with experience in the vis-sim industry. I was an active contributor to OpenSceneGraph in my previous job which helped me get in at Ubisoft Montréal as mid-level graphics programmer.

Given the style and tone of Blood Dragon, this was something I tried, showed to people and they liked it so it went in after a few more days exposing/polishing it.