alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar

Welcome to Monday's edition of Cracking the Cryptic . Today we have 13 community-reviewed PRs in our backlog for me to take a look at :) There's a couple of truly exciting ones today, so do follow along.

https://github.com/bevyengine/bevy/pulls?q=is%3Aopen+is%3Apr+label%3AS-Ready-For-Final-Review+-label%3AS-Controversial+-label%3AS-Blocked+-label%3AS-Adopt-Me+

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar

Before we get started, a brief note about CI: ours mildly broke again 🙃 This time, MIRI is playing badly with doc tests. See: https://github.com/rust-lang/miri/issues/3404. A fix was out, and I saw a PR get merged successfully earlier, so fingers crossed that we can actually merge PRs today!

A new contributor was rather confused by this: took me a little bit to troubleshoot what they were seeing!

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/10164

The big one: meshlets! Designed for rendering ultra-high geometry scenes, this is the first major step towards Nanite-like rendering in Bevy. Not for every game, but very cool.

This is the culmination of multiple person-months of work, between JMS55 (the main author), Vero (who helped troubleshoot) and several reviewers. We have sign-off from the Rendering SMEs to merge this proactively and iterate: most of the changes are in an experimental module for now. Merging!

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/11654

Next up, a much simpler PR: to calculate normals (basically, the direction that a face on a mesh is pointing) when working with indexed meshes.

Nice to see this get adopted. Looks like only one formal approval, but pcwalton signed off below in the comments: the iterator change he suggested doesn't actually compile.

Merging :) I would really love to see our whole mikktspace code cleaned up and tested, but that's 3 months of careful drudgery... GSOC project maybe?

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12134

A 0.13.2 PR, nice :D It's good to see Bevy slowly taking bug fixes and stability more seriously as it matures. We'll never be at "no breaking changes" (or "no bugs"), but we can certainly do better.

In this case, this is a web PR for fetching assets via web workers. Great example of learning from another Rust crate to find a good solution though! Well-reviewed and documented, happy to merge.

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12205

And another big step forward: gets Bevy building on the web with multithreading enabled. This isn't quite "Bevy runs multithreaded on web", but it is the first, necessary step. Kettlecorn has been working throughout the ecosystem to make this a reality: I'm very excited for what this means as we start to challenge things like three.js head on.

Huge impact for Bevy; I hope we can trailblaze.

It also fixes a soundness problem with our web support, whoops. Merging!

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12394

Another really fun PR: it gets the new Needs-Release-Note label so we don't miss it. Line styles for gizmos! Look at those dotted lines!

solis-lumines-vorago is a new contributor this cycle, and have been doing awesome stuff on colors / gizmos / math.

There's work to be done reorganizing the now-bloated gizmo examples: lemme make an issue out of that.

Overall a nice little feature, and very naturally designed to extend and polish in the future. Merging!

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12398

A small ECS quality-of-life feature: request the Archetype and EntityLocation of each entity directly in your query. This was simple to add, and may be useful for folks trying to really optimize their code: likely in networking.

I really like seeing how easy it is to just modularly extend the core ECS patterns like this. Less than a hundred lines of straightforward code per feature. And it just composes! Merging: looks like it finally passed CI.

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12476

This one is a crunchy ECS optimization PR, courtesy of (you guessed it) james7132. Here, we're using union types (?!) to reduce duplicate storage of metadata. Because the answer to "which arm is this data matched to" is able to be determined at const time, we don't need to waste memory on storing the discriminant of the enum.

I think this is the first non-C-interop application of unions I've seen in Rust. Neat read! Less memory good: merging.

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12568

I love UI scaling and scale factors... Yet another bug caused by them, this time in our shiny new UI outlining dev tool. Great to catch now.

I wonder how we can improve our automated (or easy) detection of these problems: most users aren't regularly changing this so it's easy to get overlooked.

Anyways, fix looks good: merging.

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12593

The state of our examples are periodically screenshot and diffed (thanks Francois!). To make these tests more reliable, we should eliminate non-determinism in the examples. However, doing so can look weird to beginners who are learning!

This PR adds an explanation to our uses of this pattern. We also recently swapped to a cross-platform-stable RNG for the same reason.

Merging :)

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12640

In a previous PR, some code for handling panics on web was split out from bevy_log (why?!) into its own crate. I talked to the other maintainers about this, and we agreed that this isn't currently worth separating out. Instead, we agreed to merge it into bevy_app.

I agreed to make the change, but I first wrote up the issue. While I was busy, a new contributor decided to tackle it and we've been mentoring them on the change :D Thanks! Needs merge conflicts...

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12684

Aha, we're making use of the new A-Cross-Cutting label I added yesterday I see. In this case, we're tackling issue #3824, which I made more than two years back, by denying unsafe code in most of the engine.

Bevy will never be fully safe (performance and platform interfaces), but it's nice to have this as a bit of reassurance for the users. It will flag usages of unsafe as weird and suspicious for reviewers and contributors.

Merging :)

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12696

Favicons! Logos! Branding! Apparently you can set these on crates.io, which will make the officially affiliated Bevy crates appear more official. Neat :) Merging.

Would be great to have workspace inheritance for this.

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar
  1. https://github.com/bevyengine/bevy/pull/12698

And finally a fix for a UI regression that we shipped in 0.13.1 by mistake. Whoops! Bugs are supposed to strictly go down in point releases.

We broke the previous behavior of mimicking absolute positioning for multiple UI root nodes, and several users complained that their UI just vanished upon updating. Some good detective work by the users with a minimal reproducible example, and the original PR author came through with a fix and regression test. Merging!

alice_i_cecile,
@alice_i_cecile@mastodon.gamedev.place avatar

Alright, that's everything for this week :D I'm still on @bevy part-time this week: while the donations are at a level I'm comfortable with to get started, Cart's talking to lawyers and doing research as he figures out how exactly the Bevy Foundation should hire me. International boundaries, plus flexiblish salary complicates things!

Works fine for me: I have personal matters to keep me busy this week. I'm itching to have a solid routine and more bandwidth though!

https://bevyengine.org/donate/

Vrixyz,
@Vrixyz@mastodon.gamedev.place avatar

@alice_i_cecile to share stack trace on web, check https://github.com/loopystudios/web_panic_report out ! That initially prompted that change 👍 #rust #bevyengine #webdev

  • All
  • Subscribed
  • Moderated
  • Favorites
  • opensource
  • DreamBathrooms
  • magazineikmin
  • modclub
  • Durango
  • Youngstown
  • rosin
  • khanakhh
  • slotface
  • ngwrru68w68
  • mdbf
  • thenastyranch
  • kavyap
  • InstantRegret
  • tester
  • JUstTest
  • everett
  • normalnudes
  • GTA5RPClips
  • osvaldo12
  • ethstaker
  • cisconetworking
  • tacticalgear
  • anitta
  • provamag3
  • cubers
  • Leos
  • megavids
  • lostlight
  • All magazines