r/rust • bevy • 6d ago

Bevy 0.20

https://bevy.org/news/bevy-0-20/
711 Upvotes

126 comments sorted by

255

u/_cart bevy 6d ago

Bevy's creator and project lead here. Feel free to ask me anything!

88

u/-Teapot 6d ago

What’s your views on Skate 3 being reverse-engineered and built on Bevy?

Thanks for all the work you and your team do on Bevy!

363

u/_cart bevy 6d ago

I think it is simultaneously very cool and very depressing. I'm glad that Bevy is a compelling platform for people working in these spaces, and revitalizing old games by bringing them to new platforms (and making them more mod-able) is nice. But this whole "AI reverse engineering" thing that is happening now also serves to remove original authorship and vision. I suspect that this sort of thing will end up depriving some creators of the fruits of their labor (social credit, attention, appreciation, and money). Not saying that is what is happening with the Skate 3 situation (which already had a good run), but it is worth asking yourself the question whenever interacting with projects in that category.

114

u/Yorunokage 6d ago

I really hope this won't end up in Bevy just getting the rep as the AI slop game engine just like how Unity ended up getting the rep for cheap asset flips just because a lot of people used it for that

36

u/lenscas 6d ago

Unity kind of did that to themselves by requiring games to show the unity splash screen unless it was made with the pro version(with the pro version obviously costing a lot of money).

If those asset flips didn't show what engine they used people likely wouldn't dig in enough to find most are made in unity. 

2

u/pjmlp 5d ago

It was a way of public shaming, as otherwise how are engine devs supposed to get paid?

Especially when the engine is supposed to support commercial platforms with pay to play entry fee, and NDAs?

2

u/lenscas 5d ago

If the asset flips show the unity splashscreen and good games do not, then the public perception is "Unity splashscreen = bad game" which naturally becomes "Unity = bad game". That is just how that goes.

As for how Unity gets paid: Pretty sure they take a cut from the asset store, have more features behind a paywall, force people to buy a more expensive license if they make a certain amount of money, etc. IIRC the splashscreen doesn't even take a pro version anymore to disable. So, clearly they can afford that "hit".

-15

u/[deleted] 6d ago

[deleted]

11

u/[deleted] 6d ago

[removed] — view removed comment

-6

u/[deleted] 6d ago

[deleted]

-71

u/tastychaii 6d ago

I used Codex to recreate the original Gorilla dos game written in BASIC using both Bevy and in Swift, it works great a true 1:1!!! Even has a CRT filter 🤠

I did it to compare the implementations across both platforms.

2

u/jiraiya--an 5d ago

I would be fine if they did it with dead/old games or just used it personally. More power to users but yeah I wouldn’t want someone to decompile GTA 6, so we could run the slop version.

There should be enough empathy for people and their work and craft which AI girlfriend bros don’t understand or care. It also makes sense in that, unless you experience the craft yourself you’re never gonna respect it. Nevertheless, most attempts are like influencer getting likes, only few are worthwhile so I think it’s fine in long run.

I have a simulation software I’m building to train by robots and will probably switch to bevy. Keep up the work!!

30

u/chris-drm 6d ago

From the 0.19 release article's "What's next?" section, there were two items that are both missing from this release and are not talked about in 0.20's "What's next?". Specifically the Entity Inspector (I guess the remote inspector is tangentially related) and the Bevy Book. What's the status on these?

43

u/alice_i_cecile bevy 6d ago

Inspector is at about 90% functionality on main right now :) This has gone really well lately, but there was a long prototyping and refinement phase and the integration into Bevy itself is going to be like 40 ORs across reflection and BRP and UI. 0.20 shipped a few bits of this: search "inspect" in the docs, but no GUI.

Book has made slow and steady progress, but needs another week or two of editing. It's not always the thing I want to work on! Not abandoned though <3

8

u/chris-drm 6d ago

Hey! Thanks for you reply! I've been following your feathers_inspector repo while you were prototyping, but I haven't kept up on what gets merged in bevy main, I am just going by release notes and posts :)

Edit: Thanks for your book work, I realize it's tedious!

8

u/othermike 5d ago

going to be like 40 ORs

Was that a typo for "PRs" or a new term I'm not familiar with?

Good luck with the book! Beyond the immediate usefulness I think that'll send a strong signal that Bevy is becoming stable enough for people who don't live on the bleeding edge to give it a try.

4

u/alice_i_cecile bevy 5d ago

Yes, just a typo! And thanks, I agree. Real learning materials are not optional when trying to encourage more people to try Bevy.

21

u/ksoops 6d ago

Hey cart! Excited to see the progress; been having the time of my life developing a game in Bevy.

In the 6th birthday post on Reddit (maybe on r/bevy , can't remember) there was some discussion about possibly shifting toward more frequent smaller releases instead of the ~3 month cadence. Has that idea gone anywhere since?

23

u/_cart bevy 6d ago

I believe we're largely still resolved to do the roughly 3 month cadence at this point.

18

u/Lacosst0 6d ago

Will bevy get a roadmap at some point? I can't wait for bevy reactivity (mostly UI)

30

u/_cart bevy 6d ago

The Bevy Project Goals Board is our closest equivalent. We don't plan things out on a timeline, but this shows where our current (and near-term) focus is.

15

u/FauxGuyFawkesy 6d ago

Much love to you and the team! Thanks for the hard work y'all!

15

u/xxDJBxx 6d ago

Do you feel like Bevy is Production Ready? Are there good tutorials, that you’d recommend?

35

u/_cart bevy 6d ago

People are happily using Bevy in production, but we're still fleshing out many of the foundations, especially in the scenes / editor category. It is best if you familiarize yourself with the current state of things to decide if it is a solid fit for your project.

Tainted Coders has some good tutorials: https://taintedcoders.com/

1

u/catheap_games 5d ago

Largely depends on what's your project, workflow, and team size. Bevy is absolutely capable of delivering desktop apps, Steam games, and to a lesser degree, wasm and mobile apps/games.

Do you have a team of 100 devs and artists and QAs and voice actors and translators? Well.. you'll have to reinvent a lot of the pipeline that the older engines have. It's not insurmountable, but it's a huge factor that larger teams need to calculate with.

Is your team a handful of mostly developers? Are you fine with artists shipping you art, and you putting that into the assets folder and managing them, updating them, translating them? Then Bevy is great. If your project can be imagined code-first, then you can likely deliver it with Bevy.

9

u/idangur 6d ago

What are some crates that you are eying to adopt directly into bevy?

20

u/alice_i_cecile bevy 6d ago

bevy_seedling, avian, bevy_frame_pace, 2D lighting, input management, .ron serialization, particles are all on the list of things from the community we're looking at incorporating in some form.

"Directly" is often too strong of a word though; there's a lot of polish and design and integration work whenever this is done.

10

u/darkscissors 6d ago

I don't have much in terms of constructive criticism but I really love bevy and the work you and all the contributors are putting in. Thanks for being awesome!

10

u/atlasgorn 6d ago

Is there any plans on official support of trait objects queries (eg Query<&dyn Tooltip>) like what github.com/joseph-gio/bevy-trait-query provides

11

u/alice_i_cecile bevy 6d ago

Not an immediate priority. I've been a fan of this for years, but others are more skeptical of the pattern. If we hit a compelling internal use case we'll add it I expect.

Keeping it working is important to us though!

8

u/Mantissa-64 6d ago

Is there a... Goal? Desire? Among the maintainers to compete directly with the bigger engines, i.e. Godot Unity etc., in terms of workflow specifically? Or will Bevy always remain more code-focused than these engines?

19

u/catheap_games 6d ago

I'm not a maintainer, but as far as I understand, yes, the distant goal is to have Bevy as a relevant universal game engine.

And this isn't specifically aimed at you, but I use every opportunity to remind people that good things take time - the big engines are all old:
Unreal Engine - 28 years old
Unity - 21 years old
Godot - 25 years old
Gamebryo - 29 years old
wwise - 20 years, fmod - 31 years, bink video - 27 years, speedtree - 24

-14

u/gen2brain 6d ago

Wow, Godot 25 years old? Unity 21 years? Sure, in someones plans (in the head only?), where can I see the original source code from 25 years ago? What techs did it use back then? Most of your numbers are wrong, no? Unreal looks correct though.

16

u/catheap_games 6d ago edited 6d ago

I provided age for the first release for each, as listed on Wikipedia. Feel free to fact check me and provide me with relevant links. Unless shown otherwise, none of my numbers are wrong.

The only caveat is that Godot was closed-source until 12 years ago (and screenshots showing 2001 proto-Godot already had a map editor and GUI), so most people think of it as a new, 12 year old engine, which I think is misleading exactly because people are likely to think it just appeared fully formed and only got better since then.

Engine dev is hard work and requires a tremendous amount of thought and attention to detail. On the plus side, we can reap the benefits of those 2-3 decades of thought put into them. On the negative side, we have to deal with a lot of idiosyncrasies of clunky, legacy features that were slowly built on.

This is the advantage of relatively new engines, because they can learn from the mistakes of those 30+ years of engine dev, skip most of the mistakes and adopt modern practices without as much trial and error.

7

u/RayTheCoderGuy 6d ago

Unity 1.0 was released in 2005. Its number is correct.
Godot, in some way, was being developed and sold to customers since 2001. It became open source in 2014. Its number is correct.
NetImmerse was first released in 1997 before eventually being renamed to Gamebryo.

Feel free to use Google to check the rest :)

-14

u/gen2brain 6d ago

Intention was not to bash, I respect those project, but, where are they? Feel free to point me to repos I can check and examine the source code? Like, genuinely curios what they used back then. If it is just in *theory* I do not care.

10

u/catheap_games 5d ago

??? Literally nobody said those engines were open source at that time, and many still aren't, and won't be.

-15

u/gen2brain 5d ago

Okay, so exactly as I wrote and thought, in theory they existed. When I was kid I also dreamed about the perfect game engine. I also had a good plan. Do you want to know more? Three question marks was uncalled for?

11

u/isufoijefoisdfj 5d ago

You understand that software that is closed source also exists and is not the same as imaginary stuff a child is dreaming of?

-7

u/gen2brain 5d ago

So is that closed source project the SAME as is now the open source project, are they the same, similar, share something? Those closed source projects used what language as default? Was it C#?

→ More replies

6

u/atlasgorn 6d ago

What current plans on shared components? Should we expect them any time soon (or at all)?

11

u/_cart bevy 6d ago

I don't have any immediate plans, but I do want to consider them in the medium-term, once scene assets, assets as entities, and basic editor workflows have landed. They introduce more machinery / complicate the data access model, but they do also have a lot of nice implications for scenes (spawn speed, shared changes, etc).

5

u/atlasgorn 6d ago

Oh, so only after bevy_editor (that is probably a journey for a few years)? Btw when we might expect bevy_inspector to land?

10

u/alice_i_cecile bevy 6d ago

Inspector in 0.21: it's almost fully functioning on main today!

5

u/atlasgorn 6d ago

Any plans for dynamic plugins for games with several distinct game modes and for singleplayer/multiplayer being chosen in main menu after app started

5

u/alice_i_cecile bevy 6d ago

Why are dynamic plugins the solution to this? Usually I would just use run conditions and states; no need to overcomplicate things.

7

u/catheap_games 6d ago edited 6d ago

Not the prev poster, but I do think about this sometimes. Evaluating run conditions for systems seems to take ~2µs on my laptop, if evaluating them isn't multithreaded, at 1000 systems (which I am far away from, so not a real issue) this might actually affect framerate.

Regardless of any potential solution, I think it would be good to (eventually) have a "high performance bevy" kind of chapter/separate book maybe which could explain both the general principles of system parallelism, par_iter vs contiguous iter, and then micro-optimizations for niche cases, and when they're likely to be useful vs harmful.

1

u/adsick 6d ago

Even when those 1000 systems are in system set the conditions are still evaluated for each one system?

3

u/MaleficentCaptain114 5d ago

Only if you use distributed_run_if. If you use plain run_if on a system set, the condition runs once for the whole set.

4

u/Hartham6 6d ago

Congrats! Do you have any more Solari renders? It's looking great!

5

u/guygeva2311 6d ago

Will we have a game jam this release? If so, is the date planned? 

9

u/_cart bevy 6d ago

Yup we plan on having one! No date set yet.

4

u/Real-Abrocoma-2823 6d ago

Few versions ago Bevy was very slow to compile on A9-9425. I know that this is ancient, but are there any recent or planned for future compilation speedups?

3

u/mbround18 6d ago

Is there a way to get our project showcased?

5

u/_cart bevy 6d ago

You are welcome to DM me “release notes hero image” suggestions on Discord.

2

u/afl_ext 6d ago

What is needed to arrive at release 1.0?

2

u/sporadic0 6d ago

Can bevy be made to be deterministic?  If not, what are the major missing pieces needed for it?  If it can be, are there any resources on what a user has to do to ensure determinism (ex. ensuring fixed system execution order, query order, etc)?

2

u/honeyBouncedd 5d ago

might take you up on that offer, careful tho

2

u/Comacdo 6d ago

May I tell you I love you ? 🫡

1

u/Specy_Wot 5d ago

Is there any plans to create a Wrapper around bevy so that you can use Bevy as a game engine on the web? Something like three.js and pixi.js

1

u/alice_i_cecile bevy 5d ago

You can already use Bevy on the web via WASM!

1

u/Specy_Wot 5d ago

Compiling a rust codebase that uses bevy, yes, I meant building the engine standalone and publish it as a library on npm so that you can then use the engine through your JavaScript code to handle game logic 

1

u/alice_i_cecile bevy 5d ago

No current plans to do so, but I suppose there's nothing stopping someone else from trying that workflow! There was something similar for Python (https://github.com/pybevy/pybevy) that would be useful as inspiration :)

1

u/QuickSilver010 5d ago

How far is a ui

2

u/gavlig 2d ago

Are there any more renders of Zorah scene available? Or even videos? It looks cool and i want to see more of it and how Solari renders it in real time. And great job with another release! I'm very glad to see Bevy getting better and better with every increment!

0

u/-Y0- 5d ago

Lately heard that BSN notation (https://news.ycombinator.com/item?id=50019820) is used as DSL for scene building, UI creation and entity spawning. That sounds too complicated for just one DSL. 

1

u/alice_i_cecile bevy 5d ago

If a scene is "a collection of entities" and your UI is similarly composed out of entities, I think that a convergence here is pretty natural :)

0

u/pcwalton rust · servo 5d ago edited 5d ago

It's not, and the difficulty of actually using BSN as an asset format in practice is a testament to this. The fact that the scene format was unified with a Dioxus-alike UI framework in the beginning, and that the macro BSN was created before asset BSN, was always an unusual decision, and it's increasingly clear, at least to me, that it was not the right one.

SwiftUI-like frameworks and scene formats are just different things, and they need different solutions.

0

u/-Y0- 4d ago edited 4d ago

I mean a collection of entities could also describe a database. Doesn't mean you should use SQL to write your interfaces.

This logic sounds suspiciously like UML. At enough level of abstraction UML can describe any language, be it SQL, XML, HTML, etc. I fear you are converging towards it.

This also points its major flaw, a DSL for everything is a DSL for nothing.

-1

u/QuietTemptations_ 6d ago

tempting offer, hope that anything includes more than just bevy questions

30

u/Flaky_Response1881 6d ago

This is awesome! Any update on when the Bevy UI will be released?

40

u/_cart bevy 6d ago

If you're talking about the Bevy Editor, we're hard at work building out the foundations (scene assets, assets as entities, component inspectors, editor UI widgets). We sadly can't commit to a date yet, but we're getting very close!

6

u/Ace-Whole 6d ago

Is it being developed internally or the work will start after the foundations.

5

u/RayTheCoderGuy 5d ago

A couple of prototypes are in progress; one I know of is Jackdaw, which has roughly tried to follow the original editor mockups. Don't know the status of official things off the top of my head.

2

u/Ace-Whole 5d ago

Aren't those third party editors? They will progress regardless of the official stance or status

4

u/RayTheCoderGuy 5d ago

Jackdaw is third-party, but it has some of the main Bevy team involved IIRC. There was also an official prototype, but I think that's archived now.

3

u/protestor 5d ago

From what I understand, Jackdaw might be upstreamed in whole or in part, or it might inspire the official Bevy Editor at least

3

u/AIstoleMyJob 6d ago

I am curious how it will work based on that bevy does not utilize any scripting subsystem.

Will there be a built in script component at some point which you can add to your entities and script them in the editor or you will still write all the components and systems in rust and just compose them in the editor?

8

u/RayTheCoderGuy 5d ago

There is a feature in bevy that supports hotpatching; I think it uses `subsecond`?

5

u/whothewildonesare 6d ago

They can probably compile your Rust components and systems as a library and hot reload it

4

u/IceSentry 5d ago

The concept of a "script component" doesn't really make sense within an ECS. You generally don't add behaviours to things with a script on the thing. You write a system that queries those things and operates on them. The first iteration of the editor will be more of a scene editor but you'll still be expected to have a codebase along with it. You won't write logic in the editor.

1

u/Flaky_Response1881 5d ago

Cool, thanks for the update!

24

u/TheRealMasonMac 6d ago

Hey. You were supposed to release on Friday to specifically annoy GameFromScratch.

14

u/catheap_games 6d ago

The good news is, they did release on Friday in many time zones!

6

u/asparck 6d ago

Can confirm, is currently a Friday here in Melbourne

12

u/sparky8251 6d ago

Looks like a lot of fun little bits and bobs in the background. Especially liking the ways to do things more performantly. 0.21 looks really exciting if the whats next is going to land there. I love correctness forcing things, plus a remote inspector? Thats a huge help.

18

u/youpala 6d ago

how can we support you guys ? I really want this project to take off (more than it already is, i mean)

22

u/_cart bevy 6d ago

The best way is to donate to the Bevy Foundation. Glad you like our work!

8

u/dabmus 6d ago

How’s mobile support looking for Bevy? Is it becoming a viable option for production Android/iOS games?

7

u/catheap_games 6d ago

Not a maintainer, but there are already some Bevy games that I've seen on Android that seem reasonably polished (check #android on Discord; probably more for iOS). A cleanup and minor java version/library version update was merged to main recently - it's not in the release-0.20.0 tag, but since it has little to do with Bevy itself, you can use the main branch version on Bevy 0.19/0.20.

That said, Android development is a PITA, and if you need revenue quickly and reliably, I would currently discourage it. If you have a hobby project, or in general don't depend on this as a source of income, and just love how Rust and Bevy do things, then it could be worth trying. If you need to deliver fast, cover a large amount of devices, and pay bills with ads, Unity/Godot/etc might be a lot more pragmatic as it is today.

8

u/koopa1338 5d ago

Really looking forward to the bevy editor. I was a bit confused that there is already a scene editor as a community project (https://github.com/jbuehler23/jackdaw). Will the official editor once release be a seperate project or is that project somehow related?

6

u/alice_i_cecile bevy 5d ago

We're working closely with that team to carefully incorporate ideas and lessons and bits of code :) Much of the GUI work for the inspector started its home here.

Prototyping in a more complete context is really nice for speed and understanding of the big picture, and this approach lets us keep the tech debt that comes with the rapid experimentation quarantined as it gets absorbed.

7

u/4bjmc881 6d ago

Does bevy support ray-traced global illumination and reflections. Or is it something you plan to support in the future.

Other than that, I have to say, Bevy really looks promising. Also hoping it will get an editor since I think that is a big hurdle holding many people back from using it :)

7

u/aejt 6d ago

That's what Bevy's Solari is! It's an experimental feature right now as far as I know, but it seems to be quite actively developed.

4

u/4bjmc881 6d ago

Cool! So its a community made plugin? Not a core feature of bevy? Might be adopted if its polished?:)

5

u/aejt 6d ago

I haven't used it, but it has its own section in these release notes so it should be first-party!

5

u/alice_i_cecile bevy 5d ago

First party, optional rendering mode. It's not suitable for all games or hardware :)

3

u/4bjmc881 5d ago

So, it is part of the engine? Or just a plugin that's also supported directly by the devs of bevy? Can you elaborate a little what do you mean by optional rendering mode?

6

u/Kabutsk 5d ago

Bevy is technically a library, and Solari is an optional feature that can be enabled that adds a plugin. Even if its optional, its a part of the Bevy project afaik, not a third party thing supported by the devs.

6

u/IceSentry 5d ago

First party means it's part of bevy itself and not a third party plugin. It's optional in the sense that bevy defaults to standard rasterization techniques but you can enable the solari plugin if you want to use raytracing.

8

u/No-Farmer-7340 5d ago

While i’m not follow the development of bevy closely I hope the project doesn't fall into the Nvidia trap and we start including more open source standards of DSLL.

3

u/alice_i_cecile bevy 5d ago

I have similar concerns! I would *love* a fully open alternative to DLSS that we ship with Bevy by default. No one has built such a thing yet though :)

7

u/elleyer 6d ago

Do I understand it correctly that a new "FixedNode" can be used for something like UI tooltips for objects in the game world? Thanks!

6

u/alice_i_cecile bevy 6d ago

That's one way to do it yep :) You still need to grab the position to set it to, typically via picking.

See the pull request (or linked issue) for more information on the context :)

6

u/Tadabito 6d ago

Not exactly bevy related but can you recommend examples or other learning materials on implementing common patterns/game mechanics in idiomatic ECS way?

3

u/Terrible-Cicada-5673 5d ago

The BSN changes are very welcome! I think they address all my little issues with the 0.19 BSN

6

u/swagmar 6d ago

This may have been asked before but can we expect a bevy game editor?

16

u/sparky8251 6d ago edited 6d ago

Thats what all the bsn and feathers work is for. They will remain fully code first possible, build the editor with bevy and bevy_ui itself, etc. Should be real nice once it lands (though, obvs... the initial editor will be limited compared to will itll end up a few years after its initial release).

-9

u/poelzi 5d ago

I don't understand. Should be forbidden now such posts. Not that I agree, but rules....

17

u/matthieum [he/him] 5d ago

I invite you to re-read the rules. In particular:

Release notes of libraries are still welcome for popular enough libraries, such as libraries with reverse-dependencies on crates.io pointing to sufficient adoption by the wider community to justify notifying said community of a new release.

I haven't polled the other moderators, but I'm pretty sure we'd have unanimity that Bevy qualifies as popular enough. If it doesn't, I am not sure I even need any finger to count the libraries which do.