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.1K
active users

Welcome back to Monday's edition of the ! Well, they're always on Monday 😅 But! If you like , or , I think you'll enjoy following along as I help merge Bevy's community-approved PRs.

Check them out at: github.com/bevyengine/bevy/pul

As we've already cut the 0.16 release candidate, we're only looking at 11 of the 14 doubly-approved PRs: only fixes at this point. The whole community is pulling together to polish and test as best as we can <3 The other work can wait until after the 0.17 release: there's no sense risking new bugs!

1. github.com/bevyengine/bevy/pul

A serious performance fix for nine-patched sprites and 2D text. I'm relieved to see this got two rendering reviews finally (after I nagged!): we had a nasty perf regression in 0.15 that we didn't spot. Francois has plans there though: dedicated hardware for benchmarks??!

GitHub`ExtractedSprites` slice buffer by ickshonpe · Pull Request #17041 · bevyengine/bevyBy ickshonpe

This is a nice PR though: the core strategy is "reduce allocations". Shocking! ;) Really nice performance benchmarks: you know you're in for a good time when the histograms don't overlap at all.

Unsurprisingly for ickshonpe, the code is clean. There's a few doc nits, but they're not worth blocking.

2. github.com/bevyengine/bevy/pul

Some security-oriented fixes for assets! That's fun: Bevy really is maturing. Asset loading/saving is one of the critical security surfaces for a game engine: file system access is *sensitive*.

While game devs can obviously access whatever files they want by virtue of, you know, using a real programming language, malicious assets (think modding!) shouldn't be handed free arbitrary file system access by pretending to access related assets.

Very happy with this after some feedback-polish cycles. Secure defaults, good docs, escape hatches, sensible plugin-based config. Sweet! While this doesn't actually take advantage of the memory safety of , this sort of secure-by-default design is definitely in line with its philosophy. Merging.

3. github.com/bevyengine/bevy/pul

A dependency bump for accesskit, the delightful cross-platform cross-framework accessibility framework that we use. We should definitely do a better job with integration, but this is an important chore. Merging.

4. github.com/bevyengine/bevy/pul

A performance improvement for bloom: that neon-y glowing light around bright regions that can either be really pretty or painfully overused!

No benchmarks, but I trust IceSentry and Jasmine that this is a sensible performance design for a minor feature. Merging.

5. github.com/bevyengine/bevy/pul

Another little dependency bump, this time for bincode. I am eternally grateful for the contributors who do these random little chores for us! Not vital for 0.16, but it's not going to conflict with anything (slow changing region of the code, small changes), so eh...

6. github.com/bevyengine/bevy/pul

A re-export to reduce stutter in some new entity collections. Fair enough. That's exactly the sort of papercut that you only see after people try out your code. Thanks release candidate process! Merging once conflicts are resolved.

7. github.com/bevyengine/bevy/pul

One thread at a time, we're untangling our rendering code organization. This time, by preferring the lighter-weight bevy_mesh over the bevy_render crate that depends on it. The way that parallelizes compilation by crate has really far-reaching implications :/ LGTM.

8. github.com/bevyengine/bevy/pul

Panics are bad! Don't panic! In this case a user was running into surprising panics from weird temporary files created by their IDE. We can gracefully handle this by simply not unwrapping in our asset code. +2/-2 with a couple of unwraps becoming ? operators. Perfect.

9. github.com/bevyengine/bevy/pul

Apparently a) floor and ceiling operations are not no_std compatible (bizarre!) and b) bevy defines a no_std equivalent for floor but not ceiling. Anyone know why?

Anyways, yes we should have both. Merging.

10. github.com/bevyengine/bevy/pul

Oh hey, this one is mine! I've spent the last couple of days cleaning up a messy corner of our ECS. Back in 0.15, we introduced `Single`, which skips systems when a query doesn't contain exactly one entity.

occuros

@alice_i_cecile 10. Is my favorite! So glad we have again a concise way to define the run condition in a localized manner.