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

Hi from a McDonald's in Nanaimo! I've moved, but I'm still waiting on a few small things like, say, wifi and all of my furniture. Nevertheless, the must go on!

Instead of sitting on my floor at home, let's take a look at the 26 community-reviewed PRs in the backlog! There's a ton of exciting stuff in here: we were holding off for the past bit as we got Bevy 0.15 out the door <3

github.com/bevyengine/bevy/pul

A. github.com/bevyengine/bevy/pul

Ah ECS, true home of the combinatorial explosion of methods. This time we're filling in the feature grid by implementing sorts over queries that iterate multiple entities at once. github.com/bevyengine/bevy/pul has a nice table!

Well-made and definitely annoying to be missing if you want it. But I agree with Chescock's concerns about duplication. We should merge this and try to abstract over it once we have more of the grid filled out I think.

GitHubimplement the full set of sorts on QueryManyIter by Victoronz · Pull Request #13443 · bevyengine/bevyBy Victoronz

B. github.com/bevyengine/bevy/pul

Retained mode gizmos. Wild! I was initially skeptical of adding an optional more performant retained mode to these debug tools, but talking to users in the CAD space convinced me that they're useful and perf-sensitive enough for this to matter.

Perf is uh, 80 *times* better. Geez. Code is remarkably simple :) I think that we should consider refactoring the gizmos API completely once BSN is in. It's obscuring a "make anything immediate mode" API. Merge conflicts :(

GitHubRetained `Gizmo`s by tim-blackbird · Pull Request #15473 · bevyengine/bevyBy tim-blackbird

C. github.com/bevyengine/bevy/pul

Oh-ho-ho: petgraph begone! This is a no_std replacement of petgraph, extracted from that crate and degenericized. Here in the ECS schedule construction is the only place we use it.

no_std is useful for weird platforms, but apparently this PR also improves schedule building perf meaningfully. No one was expecting that but it seems to reproduce. Sure I'll take that. Merging :)

GitHubRemove `petgraph` from `bevy_ecs` by bushrat011899 · Pull Request #15519 · bevyengine/bevyBy bushrat011899

D. github.com/bevyengine/bevy/pul

And similarly, no_std-ification of bevy_math. This was delayed to 0.16 because it was not very useful at all on its own.

But now that we're in a new cycle, it's time to press the button! There's even a CI check to validate that this keeps working :) Good stuff <3

GitHubAdd `no_std` Support to `bevy_math` by bushrat011899 · Pull Request #15810 · bevyengine/bevyBy bushrat011899

E. github.com/bevyengine/bevy/pul

Another simple change that was delayed due to risk management. This time, it's a taffy version bump. Should fix a few minor UI layout bugs, but it's useful to keep up with the latest changes as a matter of principle.

Merging.

GitHubUpgrade to Taffy 0.6 by nicoburns · Pull Request #15844 · bevyengine/bevyBy nicoburns

F. github.com/bevyengine/bevy/pul

Bevy cares a lot about providing a flexible base to its users who are trying to do weird things, and so a lot of assorted internals end up exposed. This means more breaking changes (and ways to shoot yourself in the foot), but that's generally a tradeoff the advanced users are willing to take.

In this case, it's exposing the raw windowing events from Winit. Good docs telling people not to use this :D Seems solid, merging.

GitHubbevy_winit(emit raw winit events) by HugoPeters1024 · Pull Request #15884 · bevyengine/bevyBy HugoPeters1024

G. github.com/bevyengine/bevy/pul

A fun little rendering optimization PR that skips a normalization step when computing face normals for meshes. This will mostly be useful for procedurally generated geometry: normals are shipped with the mesh for authored meshes (usually) and can be tuned by artists.

The side-by-side investigation (and especially the GIF) was great, but the "it's the same picture" effect is why I'm not a rendering engineer 😂 Looks good though, merging.

GitHubCompute better smooth normals for cheaper, maybe by shanecelis · Pull Request #16050 · bevyengine/bevyBy shanecelis

H. github.com/bevyengine/bevy/pul

Ah, another rendering PR :) This time, we're getting "native unclipped depth". Uh, what does that mean exactly? Well, it turns out that GPUs have tools to quickly and automatically clip objects that are outside of a predefined range. For some things (like shadows), we want to turn that off. But only some platforms (namely native OS's like Windows or Linux) support this.

The rendering people think this is a good idea, and I have no reason to disagree. Merging :)

GitHubNative unclipped depth on supported platforms by JMS55 · Pull Request #16095 · bevyengine/bevyBy JMS55

I. github.com/bevyengine/bevy/pul

Oh my god, entity cloning?? I opened an issue for this back in February 2021, when I was trying to get PoE-style projectile duplication working.

I really like the solution presented here: sensible reflection-powered defaults (clone everything you can, skip everything else), with a nice configurable override. There's optimization work to do here, but that's fine for followup. It even has hierarchy support?? Really nice 👌 Merging with pleasure.

GitHubEntity cloning by eugineerd · Pull Request #16132 · bevyengine/bevyBy eugineerd

J. github.com/bevyengine/bevy/pul

As part of our effort to get rid of our junk-drawer that is bevy_utils and contribute back to the broader Rust community, we've been spinning out useful micro-crates from stable well-contained functionality.

In this case, it's a set of tools to fake variadic generics with macros, called `variadics_please`. This is already published, we just need to update Bevy to use it. Trivial PR, merging :D

GitHubMove `all_tuples` to a new crate by BenjaminBrienen · Pull Request #16161 · bevyengine/bevyBy BenjaminBrienen

K. github.com/bevyengine/bevy/pul

The no_std-ification of Bevy continues: this time with bevy_reflect. Because bevy_reflect is useful to more broadly (seriously, it's nuts), I'm particularly excited about this work.

Shockingly easy: these changes are quite mechanical. Bushrat has been doing an awesome job leading this initiative, and I'm excited to see where it leads. Do send me photos of Bevy running on your toasters! Merging :)

GitHubAdd `no_std` support to `bevy_reflect` by bushrat011899 · Pull Request #16256 · bevyengine/bevyBy bushrat011899

L. github.com/bevyengine/bevy/pul

Ah rendering feature interactions: so hard to test and so fiddly. This combination is hierarchical levels of detail dithering plus prepasses. Thank goodness for pcwalton testing Bevy in serious, rendering-heavy projects.

Straightforward enough, merging :) Good bonus bug found and fixed by BenjaminBrienen here. I love community reviews :D

GitHubMake visibility range (HLOD) dithering work when prepasses are enabled. by pcwalton · Pull Request #16286 · bevyengine/bevyBy pcwalton

M. github.com/bevyengine/bevy/pul

bevy_picking bikeshedding time! We're moving from Pointer<Down> / Pointer<Up> to Pressed / Released for consistency with other forms of buttons.

I like this change, but it got punted from 0.15 to make the migration from bevy_mod_picking to bevy_picking as smooth as possible. With that done, everyone likes this, so it's time to merge.

GitHubRename Pointer<Down/Up> -> Pointer<Pressed/Released> in bevy_picking. by harun-ibram · Pull Request #16331 · bevyengine/bevyBy harun-ibram

O. github.com/bevyengine/bevy/pul

The first steps to the fabled "bindless" rendering?? From what I've been able to piece together, data needs to be assigned to various predefined slots in rendering. This sucks, but it doubly sucks because there's fixed limits for how many of each kind you can use. This triply sucks because these limits vary by platform.

It might also be faster, but mostly I want to stop having rendering features break on random platforms 😁

GitHubAdd a bindless mode to `AsBindGroup`. by pcwalton · Pull Request #16368 · bevyengine/bevyBy pcwalton

O cont. The PR description by pcwalton has more technical details, and is totally worth a read.

This very much warrants a release note, so it gets the labels. Well-made and well-reviewed, as expected. Let's merge this and see what nonsense the rendering folks get up to with it :D

P. github.com/bevyengine/bevy/pul

Okay, time for another banger: immutable components. While it seems like removing functionality might be pointless, when combined with hooks (and lifecycle observers) you can get incredibly powerful control over invariants.

Well-made, but there's a few things that will be easier to fix now. Requesting changes but those should be easy to resolve. Very very excited for this.

GitHubAdd Immutable `Component` Support by bushrat011899 · Pull Request #16372 · bevyengine/bevyBy bushrat011899

Okay, time to hit the brakes on this merge train for a bit! It's time to migrate to another location with free wifi >.> See you in an hour or so!

Alright, back on the , this time from the library! To steal a joke, it's just like an ordinary merge train, except I don't say "choo-choo!" after each merged PR ;)

It sure is beautiful up here, even if Nanaimo is *very* car-centric.

Q. github.com/bevyengine/bevy/pul

Okay, another fun PR: sprite picking that only selects non-transparent regions of the sprite. This is a good default behavior: much more intuitive!

Really pleased to see this sort of improvement being made from random community members: this stuff is a big part of why I'm excited about bevy_picking being upstreamed. Bevy is *ours*: if you see something you want to improve, take a crack at it!

Merging :)

GitHubAdd optional transparency passthrough for sprite backend with bevy_picking by vandie · Pull Request #16388 · bevyengine/bevyBy vandie

@alice_i_cecile
Restrictions give useful properties. So important in framework design

@alice_i_cecile this is all a ploy to get Doom running in bevy so this can happen.

@alice_i_cecile this PR comment 😂
"Awesome work! Can't wait to have reflection on my smart mirror!"

@chrisvest That was the intent! Great for showing colliders and view frustums and so on. Turns out though people will do all manner of things with your pretty polylines :p

@alice_i_cecile so that explains why they’re (now) drawn over all other stuff regardless of Z coords

@alice_i_cecile
Oh that's still Canada, I looked it up! Tiny things like furniture and interwebs remaining so practically done

@faassen Yep, furniture, internet and our car 😅 It's fun exploring the city on foot and being forced out of the house, but very time and energy inefficient. I need to go buy a bike!