News for hackers. Stuff that matters.
Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @01:23PM (#35045230)
Creator and lead developer of Bevy here. Feel free to ask me anything!
Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @01:37PM (#35045509)
Can you post on hn when the statement that reads like, "btw don't use this package if you're not cool with breaking changes every four days" leaves your docs? I pretty much immediately decided I wasn't cool with that, even though bevy looks like a really interesting project.
Re:Bevy 0.10: data oriented game engine built in Rust by sho_hn on Monday March 06, 2023 @01:42PM (#35045585)
It's sort of a cultural tradition in the Rust community to link to interesting or potentially more stable alternatives in READMEs.
Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @01:52PM (#35045769)
https://bevyengine.org/learn/book/introduction/

The problem is that "the prototyping phase" isn't a real phase, and this doesn't specify if breaking changes will occur between major, minor, or patch versions. It gives developers no guidance of what semver to track based on their own willingness to endure breaking changes. Using a library that still can't tell you that is just asking for trouble.

Re:Bevy 0.10: data oriented game engine built in Rust by IceSentry on Monday March 06, 2023 @02:07PM (#35046030)
Bevy and rust in general uses semver with a special case for 0.x releases. See https://doc.rust-lang.org/cargo/reference/semver.html

> Initial development releases starting with "0.y.z" can treat changes in "y" as a major release, and "z" as a minor release. "0.0.z" releases are always major changes. This is because Cargo uses the convention that only changes in the left-most non-zero component are considered incompatible.

The 0.x is essentially used as way to tell people to use at their own risk since it isn't considered stable yet. Using a library like this isn't asking for trouble if you know what you are dealing with and in the context of bevy it currently means a breaking change every 3 months with a blog post and migration guide.

Re:Bevy 0.10: data oriented game engine built in Rust by nicoburns on Monday March 06, 2023 @02:06PM (#35046001)
> this doesn't specify if breaking changes will occur between major, minor, or patch versions

The entire Rust ecosystem works on a model of breaking changes for 0.x version happening in minor but not patch releases. In fact, I'm struggling to think of any software project that intentionally releases breaking changes in patch releases.

Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @02:10PM (#35046067)
I'm not sure what we're arguing about. You say "don't break bugfix releases." I say "don't break bugfix releases." Docs don't say "we don't break bugfix releases." Instead, docs say "we break all the time don't trust us" instead of "pin to a minor version if you don't want to break all the time."

It's specifically not a question of knowing how the Rust community usually does these things, it's a question of "does this package conform to Rust's semver conventions, the official semver conventions, or something custom?"

The statement, _as its written in the docs_ implies "we do something custom." Whether that's true or not is irrelevant. I read it, interpreted it as a lack of governance or adherence to standards, and moved on. Any professional engineer would do the same.

Re:Bevy 0.10: data oriented game engine built in Rust by laundmo on Monday March 06, 2023 @02:25PM (#35046294)
you're right, that warning could be improved as it assumes knowledge of how the Rust community usually does these things.
Re:Bevy 0.10: data oriented game engine built in Rust by IceSentry on Monday March 06, 2023 @02:49PM (#35046640)
No, the statement says that there will be frequent breaking APIs, it doesn't make any claim about release strategy. Releasing breaking changes on every 0.minor release perfectly fits in this definition.

Making a quick judgement based on an assumption that's provably wrong isn't really the definition of a professional engineer.

Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Tuesday March 07, 2023 @09:48AM (#35055919)
Tell me you've never had a job without telling me you've never had a job. Not having a release strategy at all is insta-trashcan at any enterprise I've ever worked at.
Re:Bevy 0.10: data oriented game engine built in Rust by cmeacham98 on Monday March 06, 2023 @02:07PM (#35046021)
Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @02:13PM (#35046117)
I'm not saying they're breaking the law and should be arrested, I'm saying if they're breaking shit in patch release, even on v0, I refuse to touch it until v1. If you're not breaking shit in patch releases, I'll touch v0 and pin to a minor.

People can run anything they want however the fuck they want, I just won't use it. How's that?

Re:Bevy 0.10: data oriented game engine built in Rust by cmeacham98 on Monday March 06, 2023 @02:34PM (#35046422)
You said

> doesn't specify if breaking changes will occur between major, minor, or patch versions

What I'm telling you is that it _does_ specify that: by using a 0.x.y version they are explicitly specifying that breaking changes can occur between _any_ version. If you don't want to use Bevy because of that, then that's fine.

Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @02:48PM (#35046625)
But you've just nailed the problem: this is NOT the convention used within Rust.

In Rust, 0.x.y would treat .y as NON-BREAKING, BACKWARDS-COMPATIBLE changes.

I don't think I'm stepping beyond the pale of reasonable engineering when I suggest that a package in the Rust ecosystem that doesn't follow the Rust semver guidance -- and doesn't EXPLICITLY STATE that they don't follow the Rust semver guidance -- is a library I won't touch.

The fact that there's so much confusion on this thread about what their semver policy actually is shows exactly why it should be stated upfront and not masked behind a generic "stability warning."

Re:Bevy 0.10: data oriented game engine built in Rust by cmeacham98 on Monday March 06, 2023 @04:02PM (#35047546)
This is incorrect. Using Semantic Versioning is the standard convention in Rust.
Re:Bevy 0.10: data oriented game engine built in Rust by burntsushi on Monday March 06, 2023 @04:52PM (#35048201)
Hi, I'm on libs-api. You are incorrect. Cargo always has, since its inception, treated changes to the leftmost non-zero number in the version as semver incompatible releases. That means 0.0.1 and 0.0.2 are semver incompatible. That means 0.1.2 and 0.2.8 are semver incompatible. 0.1.2 and 0.1.8 are semver compatible.

semver says that in 0.x.y, "anything goes." But that is just not true with Cargo.

This is also documented, emphasis mine:

> This guide uses the terms "major" and "minor" assuming this relates to a "1.0.0" release or later. Initial development releases starting with "0.y.z" can treat changes in "y" as a major release, and "z" as a minor release. "0.0.z" releases are always major changes. This is because Cargo uses the convention that only changes in the left-most non-zero component are considered incompatible.

https://doc.rust-lang.org/cargo/reference/semver.html

Re:Bevy 0.10: data oriented game engine built in Rust by steveklabnik on Monday March 06, 2023 @05:16PM (#35048522)
It’s more complicated than that. Maybe I’ll finally actually write a blog post.

While the semver spec has contained that line about 0.y.z, the semver spec also does not define ranges, that is, how specifying version requirements works. Cargo implements these things, like ^ and > and etc, the exact same way that every other semver implementation implements them.

That’s because very quickly the “use minor like major when major == 0” thing became the de facto way that people used semver in its earlier days. Implementations understood this, but the spec was never changed.

So Cargo does follow semver in practice, like everyone else. There’s a combination of discrepancy and under-specification in the spec; which is a great reminder that specifications tend to follow implementations, not the other way around.

It’s on my long list of things to do to eventually reconcile this in the semver specification, but it’s been a few years and I still haven’t managed it, so no promises there.

Re:Bevy 0.10: data oriented game engine built in Rust by burntsushi on Monday March 06, 2023 @05:24PM (#35048613)
Hmmm I'm struggling to see the difference between what you're saying and what I'm (and the Cargo docs) are saying. semver says anything goes at 0.x.y:

> Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

It is also simultaneously the case that "anything may change at 0.x.y" is not true for Cargo. Cargo is stricter than "anything may change."

Maybe what you're saying is that Cargo is consistent with semver, but "just" stricter? I'd agree with that, absolutely. That is why I try hard to not say "Cargo doesn't follow semver." (Although it's easy to slip on that one.)

Re:Bevy 0.10: data oriented game engine built in Rust by steveklabnik on Monday March 06, 2023 @05:37PM (#35048764)
Yeah I should probably actually write the post, haha. Commenting between sets at the gym just isn’t the same. I’ll let you know if/when I do. This comment of yours already helped me formulate a bit of it, I think, so thanks for that.

“Just stricter” is much more accurate than “doesn’t follow”, for sure.

“No semver implementation follows the major version zero sentence in the semver spec, and Cargo does what they all do” is maybe an even closer approximation. We’ll see how good I can do with more than 60 seconds rest between typing :)

Re:Bevy 0.10: data oriented game engine built in Rust by burntsushi on Monday March 06, 2023 @05:53PM (#35048953)
Ah okay great, sounds good! And yes, having something canonical to link to that explains this would be useful indeed.
Re:Bevy 0.10: data oriented game engine built in Rust by trhr on Monday March 06, 2023 @09:44PM (#35050901)
Rust's semver spec is very good, common-sense guidance that matches the level of risk most of us are comfortable with:

- Don't put 0.0.x in prod ever.

- Probably don't put 0.1.x in prod, either.

- Maybe put 0.40.x in prod. Pin to 0.40 if you do.

- Put 1.x.x in prod, because they're basically done with it.

I get upset when these conventions aren't followed and I'm using something expecting them to be.

Re:Bevy 0.10: data oriented game engine built in Rust by spoiler on Monday March 06, 2023 @02:20PM (#35046225)
FWIW, I've been tinkering with Bevy since like 0.6 I think, and don't remember many (if any?) patch breaking changes.

I did skip 0.7 since I remember upgrading from 0.6 to 0.8 directly, though.

The minor jumps are sometimes very small changes, sometimes giant ones (but alas, it's still a 0.x project, so I got not qualms)

Re:Bevy 0.10: data oriented game engine built in Rust by IceSentry on Monday March 06, 2023 @02:59PM (#35046758)
> I'm saying if they're breaking shit in patch release

You just assumed this, but this isn't true. Bevy uses semver like most of the rust ecosystem.

The warning is just telling people that the breaking changes will be frequent. It doesn't mean they will be in a patch release. I don't understand what's to be confused about here. Bevy never specified any custom release strategy because there isn't one, it's just semver like almost everything else in rust.

Re:Bevy 0.10: data oriented game engine built in Rust by pie_flavor on Monday March 06, 2023 @05:32PM (#35048709)
Rust has different rules. 0.x.y isn't compatible x-wise, but it is supposed to be compatible y-wise.
Re:Bevy 0.10: data oriented game engine built in Rust by LelouBil on Monday March 06, 2023 @01:51PM (#35045746)
Well, it's not even 1.0 yet
Re:Bevy 0.10: data oriented game engine built in Rust by nicoburns on Monday March 06, 2023 @01:56PM (#35045852)
You can see Bevy's release history here: https://github.com/bevyengine/bevy/releases where you can see that there have historically been releases with breaking roughly every 2 months (although the last one was back in Nov 2022)
Re:Bevy 0.10: data oriented game engine built in Rust by IceSentry on Monday March 06, 2023 @02:02PM (#35045940)
It's more like every >3 months because the .1 release aren't breaking
Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @02:28PM (#35046356)
Cheeky answer: I sure can! And people like it!

Real answer: Bevy is already very featureful, but we have a long way to go before we can start making "stable api guarantees". Locking things down right now would prevent us from achieving the best apis we can. We are building the engine in the open and people will naturally still take dependencies on us, even under these constraints. We are very careful about our messaging / provide warnings in the appropriate places.

In practice, migrating between versions is generally pretty straightforward and we provide migration guides to help the process. The dust is already settling on some of our APIs / they're starting to feel "stable". Many people (and companies) are happily building real products right now in Bevy (and porting them across versions).

Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @06:30PM (#35049362)
Follow up reply: I misinterpreted your question. I thought you were saying "(How) can you post this on HN when you are still unstable". But on a re-read it sounds like you just wanted me to post on HN when we have stability guarantees. I definitely can/will! If that is what you meant, I apologize for the misread (and unnecessary cheekiness).
Re:Bevy 0.10: data oriented game engine built in Rust by AlexAndScripts on Monday March 06, 2023 @01:26PM (#35045295)
How far do you think you are from a 1.0 release? What areas do you think need improvement?

I've been working on a project in Bevy for the last few weeks, having previously attempted it in TS+pixie.js and Godot. It's been a joy in comparison, with much faster progress - in TS I was constantly fighting the ecosystem, and GDScript is just awful, particularly it's type system. Thank you!

Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @02:20PM (#35046222)
I think we're about 2 years away. Some areas that need work: a visual Bevy Editor (not built yet but we're shifting focus to it this release cycle), audio (we have it but users need finer control), animation (more composition tools and editor integrations), ui (needs more widgets and ux improvements), asset system (I've been working on the next iteration for awhile to enable things like pre-processing assets), nice visual scene editing workflows (implemented inside the upcoming Bevy Editor).

Glad you're enjoying Bevy so far!

Re:Bevy 0.10: data oriented game engine built in Rust by echelon on Monday March 06, 2023 @02:25PM (#35046285)
I'd be happy to donate money specially to support animation (especially morph targets) and drive that forward. [1]

We want to make a break from Unreal pixel streaming and Rust on the frontend delivered over WASM/WebGPU would be so ideal. The rest of our stack is Rust, so it would slot right in with our Rust monorepo.

[1] I was donating to one of the devs until GitHub removed PayPal payments without warning or mitigation about a week ago. I'll fix that soon.

Re:Bevy 0.10: data oriented game engine built in Rust by AlexAndScripts on Monday March 06, 2023 @03:22PM (#35047036)
What would you plan to implement in a visual editor? I've found code works perfectly.
Re:Bevy 0.10: data oriented game engine built in Rust by alice-i-cecile on Monday March 06, 2023 @03:58PM (#35047493)
Scene editing, fast value tweaking (like in bevy_inspector_egui) and more powerful visualization tools for things like schedules are the big "this must be visual" features that I want to land first.

Code-first is lovely, but being able to fine-tune things without a recompile is key, and the workflow needs to work for any artists on larger teams too.

Re:Bevy 0.10: data oriented game engine built in Rust by t-eckert on Monday March 06, 2023 @01:43PM (#35045605)
I'm looking to start learning Bevy soon in preparation for the next Bevy Jam. Where can I sign up to be notified when the jam is scheduled?
Re:Bevy 0.10: data oriented game engine built in Rust by mahulst on Monday March 06, 2023 @01:46PM (#35045663)
The bevy discord has a dedicated channel for the jams!
Re:Bevy 0.10: data oriented game engine built in Rust by t-eckert on Monday March 06, 2023 @01:49PM (#35045712)
Fantastic! Thank you
Re:Bevy 0.10: data oriented game engine built in Rust by politician on Monday March 06, 2023 @01:50PM (#35045736)
Thanks! I have some questions about integrating ECS with cross-platform concerns.

How did you tackle the problem of components containing geometry for platform-specific graphics engines? Does Bevy use platform-specific components? If an application needs multiple offscreen textures to compose a frame, are there components that contain metadata for which passes they belong to (so, now, platform and pass specific components)?

Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @02:35PM (#35046439)
We handle this class of problem in a few different ways:

1. We build on top of cross platform abstractions with feature detection (wgpu is our cross platform low level graphics library, cpal is that for audio, etc). We build our features in a way that adjust the ECS app logic according to what features are available at runtime 2. In a few cases we do "compile time feature/platform detection" to select the appropriate code for a given platform. But most "Bevy features" don't use this / we opt for (1) more than anything else

In the case of geometry: that has a "dynamic" representation that can be adjusted according to the platform context (although in practice we don't do any platform-specific geometry transforms yet). And that gets written to the platform's gpu using wgpu.

Bevy has a "render graph", which feeds on Bevy ECS data. We adapt the render graph (and the ECS data that drives it) according to the features supported on a given platform.

Re:Bevy 0.10: data oriented game engine built in Rust by nicoburns on Monday March 06, 2023 @01:57PM (#35045871)
Bevy uses wgpu as it's graphics engine, which is cross-platform.
Re:Bevy 0.10: data oriented game engine built in Rust by bluejekyll on Monday March 06, 2023 @02:02PM (#35045946)
This is probably a very naive question, but for multi-platform support, is there any hope of Bevy ever being used to target consoles?
Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @02:22PM (#35046248)
I've been talking with someone that got Rust working / rendering shaders on Playstation. In the past people have been able to target Switch in Rust and I suspect Xbox is pretty approachable with UWP. I have a lot of hope :)

(not _yet_ my highest priority, but others are already investigating this)

Re:Bevy 0.10: data oriented game engine built in Rust by laundmo on Monday March 06, 2023 @02:06PM (#35046011)
There was a user on discord a while back who got bevy running in some capacity on, I think, Xbox and Switch. He had trouble with the PlayStation, though. Since you have to sign NDAs with the companies to do that, I don't know what came of it.
Re:Bevy 0.10: data oriented game engine built in Rust by cpeterso on Monday March 06, 2023 @02:11PM (#35046092)
It's exciting to see so much development happening in Bevy!

I see in the Bevy FAQ that you've contributed to other open source game engines. How did you get originally interested in game engine development? Are you developing a game yourself using Bevy? Or contracting with any studios using Bevy in their games?

https://bevyengine.org/learn/book/faq/

Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @03:27PM (#35047087)
I originally got interested in middle school because I liked videogames, technology, and art. In middle school I played with game maker and a cool piece of mmo tech called RealmCrafter. That eventually snowballed into a programming obsession, a computer science degree, ~6-ish engine prototypes in various languages and stacks, a job at Microsoft, a game called High Hat (built in Godot), Godot contributions, and ultimately Bevy.

Currently I only build small jam-like games in Bevy (I participated in https://itch.io/jam/bevy-jam-1 and https://itch.io/jam/bevy-jam-2). But I plan on picking up a larger project soon. I've got the itch :)

Re:Bevy 0.10: data oriented game engine built in Rust by artursapek on Monday March 06, 2023 @02:13PM (#35046127)
I’ve been learning Bevy for the last week and it’s been a lot of fun. Thanks for what you’ve done here.
Re:Bevy 0.10: data oriented game engine built in Rust by 999900000999 on Monday March 06, 2023 @02:20PM (#35046221)
Would you suggest Bevy for people who struggle with Rust.

Do I need to learn Rust first, or does Bevy use a limited subset of the language like Unity and C#. Although I'd argue till I'm blue in the face C# is a much easier language.

Re:Bevy 0.10: data oriented game engine built in Rust by laundmo on Monday March 06, 2023 @02:34PM (#35046428)
It does in a way use a limited subset. Specifically, the borrow checker is rarely a concern since Bevys ECS storage abstracts that mostly away from the user.
Re:Bevy 0.10: data oriented game engine built in Rust by iknowstuff on Monday March 06, 2023 @02:28PM (#35046355)
You can't code in Rust by just trying things and seeing if they work, you'll get very frustrated. This approach works for learning other languages but you'll hit a wall with Rust. Gotta read the book.
Re:Bevy 0.10: data oriented game engine built in Rust by james7132 on Monday March 06, 2023 @04:32PM (#35047935)
On the contrary, about 50% of my time with Rust is spent throwing shit at the wall and seeing if it works. The great thing is that the compiler will probably tell you that what you're doing is garbage and you might want to consider redesigning, which is where the other 50% goes. If you hack works, great, just need to get it through code review, which will probably reject most other garbage. If it doesn't, back to the drawing board, and you won't have spent the time pestering someone to read your hackjob.
Re:Bevy 0.10: data oriented game engine built in Rust by nicoburns on Monday March 06, 2023 @02:31PM (#35046386)
You absolutely need to learn Rust first. Bevy uses it's full feature set.
Re:Bevy 0.10: data oriented game engine built in Rust by alice-i-cecile on Monday March 06, 2023 @03:00PM (#35046767)
I learned Rust (and frankly, most of programming) with Bevy :) It was a good experience, although I definitely recommend learning the basics from the Rust Book as you go to reduce frustration and confusion.

In simple game code you don't need to write your own traits, use unsafe, and like laundmo says, the borrow checker pains are way easier than in most Rust codebases because there's already a nice architecture in place.

Re:Bevy 0.10: data oriented game engine built in Rust by s-lambert on Tuesday March 07, 2023 @04:19AM (#35053317)
I've been using Bevy to push me into learning Rust and it's working well for me, I haven't had to worry about lifetimes much and even without understanding references for a while I could still tinker with stuff.
Re:Bevy 0.10: data oriented game engine built in Rust by n42 on Monday March 06, 2023 @02:37PM (#35046466)
I'm unemployed, on a sabbatical, and looking to pour my heart into game development. Jumping into such a large, moving project can be intimidating. How can I get started effectively contributing to Bevy?

I'll add, a ton of work seems to be happening in rendering. This is not an area I can contribute or know enough about, but I am able/willing to help with just about everything higher level than that.

Re:Bevy 0.10: data oriented game engine built in Rust by james7132 on Monday March 06, 2023 @05:41PM (#35048812)
We explicitly label easy first issues in our issue tracker: https://github.com/bevyengine/bevy/issues?q=is%3Aissue+is%3A.... These should get you up to speed with the contribution process and, at the very minimum, get your feet wet with hacking against the engine, if not dive deeper into various specifics.

I strongly suggest any of the docs issues, as it doesn't require you to write any actual functionality, but forces you to get to know the architecture, the language, and the core parts of the engine itself.

Re:Bevy 0.10: data oriented game engine built in Rust by lwansbrough on Monday March 06, 2023 @02:38PM (#35046492)
Hey cart, with WebGPU coming to Chrome in 113/114, how is Bevy looking for supporting the WebGPU target?
Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @03:21PM (#35047032)
We've already gotten it working! https://github.com/bevyengine/bevy/pull/5027

The only reason we haven't merged it yet is we need to sort out a high level "app api" thing: WebGPU requires async init (as in the Rust async feature). The PR above solves this by making our plugin init async. This is the most straightforward, but it makes people put `.await` in their app init, which we're not sure is the right call yet. We're discussing alternatives that might "encapsulate" the async.

Re:Bevy 0.10: data oriented game engine built in Rust by lwansbrough on Monday March 06, 2023 @03:32PM (#35047159)
Great news, thanks for the update.
Re:Bevy 0.10: data oriented game engine built in Rust by rektide on Monday March 06, 2023 @03:33PM (#35047174)
FWIW there is a ~8 month old PR that purported to add WebGPU support. https://github.com/bevyengine/bevy/pull/5027
Re:Bevy 0.10: data oriented game engine built in Rust by raincole on Monday March 06, 2023 @02:40PM (#35046515)
While I hate Unity, I think one of the few things they did really well is the decision to make scriptable render pipeline. The game we're developing is high stylized. Istead of a shadow map for each spot light, we have a small shadow map for each character (rendered to a 4k altas). It's much easier to do in Unity than, say, Unreal.

How is Bevy going to approach this kind of render pipeline customization?

Re:Bevy 0.10: data oriented game engine built in Rust by james7132 on Monday March 06, 2023 @04:37PM (#35048007)
It's turtles all the way down. You can replace the renderer wholesale, or strip out the top, middle, and/or low level abstractions. You choose how much meat you want stripped off from the bones. It's not that well-documented (something I want to address soon), but IMO it lives up to Bevy's reputation of modularity.

For a comparison with Unity, it's equivalent to the scriptable render pipeline, but abandoning the default one doesn't mean you need to write your own pipeline from the ground up.

Re:Bevy 0.10: data oriented game engine built in Rust by raincole on Monday March 06, 2023 @04:49PM (#35048165)
That sounds very promising. Could you point me the right direction on how to learn about Bevy's render pipeline? I've had some rather superficial understanding of Bevy (mostly just by following along the examples on the official site)

And what's the equivalance of Unity's Frame Debugger? Since Bevy doesn't have a GUI editor yet, I guess the answer is just to use Render Doc?

Re:Bevy 0.10: data oriented game engine built in Rust by james7132 on Monday March 06, 2023 @05:13PM (#35048496)
> Could you point me the right direction on how to learn about Bevy's render pipeline?

The best 10,000ft view that doesn't just point you at the code itself is probably https://bevy-cheatbook.github.io/gpu/intro.html. If you need finer details, you'll need to read the code itself, or ask in the #rendering(-dev) channels on the Discord.

Again, I'm not happy with the state of public documentation for this, but as seen with this release, it's still heavily in flux. I don't think we've had a single release since 0.5 that hasn't made major architectural changes of some kind.

> And what's the equivalance of Unity's Frame Debugger? Since Bevy doesn't have a GUI editor yet, I guess the answer is just to use Render Doc?

Yep, just use RenderDoc right now. I don't think we'll have a good solution for this for a long while, since building one of those from the ground up is a huge undertaking.

Re:Bevy 0.10: data oriented game engine built in Rust by raincole on Monday March 06, 2023 @05:21PM (#35048583)
I don't mind to eventually read the code. I've learned how to use SRP by reading URP code anyway, because Unity's document in this regard isn't particularly great either ;p (of course my Rust fluency is still not at the same level of my C#).

Thank you very much for the answer!

Re:Bevy 0.10: data oriented game engine built in Rust by SleepyMyroslav on Monday March 06, 2023 @03:09PM (#35046881)
two questions: How big is the part of the engine that uses 'unsafe' Rust? What systems are to be multithreaded on release? Like Rendering, Physics etc.
Re:Bevy 0.10: data oriented game engine built in Rust by _cart on Monday March 06, 2023 @03:18PM (#35046994)
Bevy ECS has a good chunk of `unsafe` as we're doing granular parallel data access that the Rust compiler cannot reason about. Anything related to low-level system api bindings (Vulkan, audio, etc) is inherently unsafe. But basically all "engine logic" (like our actual renderer logic, scenes, assets, etc) is written in safe Rust. We only use unsafe if we _absolutely need to_ and give it a lot of scrutiny. Impossible to avoid it entirely in the engine space though!

The engine is very threaded in general. We do pipelined rendering so the next frame's logic is computed while the current frame is rendering, we multithread expensive potentially high-entity tasks like animation and transform propagation, all ECS systems run in parallel (which includes the renderer systems), etc. We'll use whatever cores you give us!

Re:Bevy 0.10: data oriented game engine built in Rust by yazaddaruvala on Monday March 06, 2023 @03:18PM (#35046991)
What are your expectations for Bevy's ability to compete with Unreal's Nanite and Lumen, and when might that become a priority?

Additionally, while obviously not perfect, are you following new developments in AI based animation[0] and prediction based light transport[1]? Do you expect these types of automation to eventually become first class within Bevy, or any thoughts on how they can be best integrated into a Bevy game?

[0] https://www.youtube.com/watch?v=L5KOQkZOusE

[1] https://www.youtube.com/watch?v=VxbTiuabW0k

Re:Bevy 0.10: data oriented game engine built in Rust by james7132 on Monday March 06, 2023 @05:18PM (#35048539)
I want to step back a bit. All of these require a more involved and production ready asset system, which we've sorely needed for a few releases now.

I'm one of the two developers currently behind our longer term animation efforts, and I am keeping up with the state of the art in terms of animation compression, streaming, composition, and generation, but there's still a sizable amount of groundwork and plumbing before any of that can even be attempted. We definitely need a lot more eyes on this area of the engine.

Re:Bevy 0.10: data oriented game engine built in Rust by cheeselip420 on Tuesday March 07, 2023 @12:03AM (#35051780)
How long until we have a Bevy Editor? How (specifically for an Editor) can we help?

I'm curious how the dynamic nature of an Editor will interact with rust.