8 ms·
Bevy 0.5: data oriented game engine built in Rust
- serverholic 6y agoHuge release. Glad to see this engine is still making progress.
- alice-i-cecile 6y agoContributor here: there's so much cool stuff in this release. I was personally most involved in improving the docs, the reliable change detection work (you can now detect changes no matter when your system runs, even skipping arbitrary numbers of frames), and a great deal of the other ECS work. AMA if you have any questions or requests ;) I'm particularly curious about "I'd like to use Bevy but..." stories.
- anchpop 6y agoThank you for your contributions! I'm most excited about labeled run criteria and the other ECS improvements. For those not following along, the goal is to eventually implement statecharts [0], which are kind of a generalization of finite state machines that are more practical for specifying the behavior of complex systems. I think that's going to really put Bevy's ECS above most of the competition and push the field forward. [0]: https://statecharts.github.io/ https://statecharts.github.io/
- kodablah 6y ago> I'm particularly curious about "I'd like to use Bevy but..." stories. I am a game dev novice, but the concept I am wanting to develop requires mesh loading (fbx/dae), animation/skeleton/bone loading, and custom bone manipulation. Granted Bevy does seem to have the physics I need via the rapier plugin. I have been working with Godot to achieve my PoC, but would love to use Bevy instead. I admit to not keeping up with the current state of these features.
- alice-i-cecile 6y agoThanks for chiming in :) Animation is a common request, and definitely still not-very-usable. Thanks to the work of lassade, our resident animation expert, I expect we should have basic animation in place for 0.6. For skeletal animation in particular, they've been prototyping with a crate of their own [0] to hook into Bevy that seems like an excellent proof-of-concept. 0: https://github.com/lassade/bevy_spine https://github.com/lassade/bevy_spine
- hn8788 6y agoI've been using Godot for some small gamedev projects, but have been interested in Bevy because Rust is my primary language. The Bevy Book stil says that Godot should be picked for any big projects; is there a rough estimate of when Bevy would be at a point where you'd be confident recommending it for a Next Big Project™? I know timelines can be tough to nail down, but even something like "a very long time" or "a couple of years" would be helpful. Thanks for your work btw :)
- alice-i-cecile 6y agoDepends on your iteration speed, exact needs, and willingness to work on engine development. Personally, I'm building my turn-based tactical RPG in it, which is absolutely a Big Project, but I'm not planning to release for a year or two, don't need complex 3D features and am devoting half of my effort to engine dev. For single-player games that aren't very asset-heavy, I would say 3 months or so for UI to stabilize is a safe point to start work. For games that have complex animation or sound needs, require networking or want to use a ready-to-use physics library, I'd estimate about 2 years from now. If you're trying to build a game with very-little coding (and want something comparable to Unity or Godot), "a very long time" :)
- kibwen 6y agoOff-topic, but is your game open source? I'd love to see more examples of Bevy being used in the wild.
- alice-i-cecile 6y agoSource-available for now, we're still sorting out the exact licensing strategy. The Bevy code itself isn't very impressive at all yet; most of the work at the moment is on improving the engine and solving some of the remaining design challenges. We're currently blocked on "clone-able entities" (and ideally "indexes"), and I'm working on an RFC for each of those. Source: https://github.com/leafwing-studios/fop-game https://github.com/leafwing-studios/fop-game Rules / design doc: https://rules.fontsofpower.com/#/ https://rules.fontsofpower.com/#/
- beatothewitch 6y agoI'm a novice game dev and I'm currently using Godot so i'd like to use Bevy but i'm waiting for an editor UI. What's the roadmap looking like for that?
- alice-i-cecile 6y agoGreat question; it's hotly awaited by a lot of the community. Rough (and very unofficial) road-map is looking like: 1. 0.6 (June 2021): First-class ECS-integrated UI solution is architected and released. Asset management, animation and scenes are improved. Plugin architecture and data-driven workflows get a closer look. 2. 0.7 (August 2021): Editor MVP launches as a separate application built in Bevy, focusing on supplementing code-first Bevy workflows with things like property inspectors, scene management, system visualization and so on. Once that's launched, I expect that we'll be working on making Bevy more usable through the editor for low-code users, although the goal is to ensure that pure-code (and pure Rust) Bevy games have feature parity with anything you can do in the editor.
- lazybean 6y agoI really liked your (now abandonned) understanding-bevy book. So I'm so glad you are involved in improving the docs!
- _cart 6y agoLead Bevy developer here. Feel free to ask me anything!
- EamonnMR 6y agoWhat have the biggest challenges been?
- pointernil 6y agoKudos! What an impressive collection of features and display of substantial development in almost all areas of the framework! What's the current status of OpenGl Support? Any progress there? It would be really "cool" and inspiring to be able to develop on older yet otherwise good-enough hardware... thinking about all those very young future devs stuck with all that otherwise good-enough hardware here ;)
- TheRawMeatball 6y agoWe let wgpu https://github.com/gfx-rs/wgpu-rs https://github.com/gfx-rs/wgpu-rs handle our graphics backend abstraction, so our OpenGL support will come whenever they implement and release it. Currently, it seems to be a WIP.
- kvark 6y agoPlease share what that hardware is. On Linux, Vulkan support starts at Intel IvyBridge, which is 8 years old now. Do people develop games on older computers these days? On other OSes, we have D3D12/D3D11 and Metal support.
- smusamashah 6y agoHas basic 2D drawing (lines, rectangle, bezier curve etc) added yet? I remember it was in the plans in the very beginning.
- jamadazi 6y agoOfficially, not yet, but there is a good community-maintained plugin: `bevy_prototype_lyon`.
- terafo 6y agoAre there any benchmarks of Bevy ECS v2?
- alice-i-cecile 6y agoThere are some in the blog post, with more details in the corresponding PR: https://github.com/bevyengine/bevy/pull/1525 https://github.com/bevyengine/bevy/pull/1525 Ctrl+F for "Benchmarks" to find the right section :) Eventually it would be nice to update the cross-engine ecs_bench_suite fully to reflect the changes.
- 1-6 6y agoIt's easy to market what Bevy is when it's called a 'Game Engine' but I hope this platform can really become the next Omniverse-type collaborative 3D environment for the Architecture/Engineering/Construction market. Right now, there isn't a great place to park BIM files.
- alice-i-cecile 6y agoYeah, there's been a ton of interest in using Bevy for non-game applications. We have at least two projects doing CAD with it, several trying to use it for machine learning, exotic high-performance database-like applications, and some interest in using it as an ergonomic fully cross-platform GUI builder once our UI solution is built out.
- adamnemecek 6y agoCan you link the CAD projects?
- alice-i-cecile 6y agoOne of them is closed-source, with a paid dev team. CAD for mining I believe :) The other is aevyrie's[0] pet project, with an eye towards eventual open-source commercialization. Right now, he's been working on building out the fundamentals needed, with a fantastic set of plugins for frustum culling, picking, bounding boxes and so on that will be needed. He's @aevyrie on the Discord[1] if you'd like to ask him more questions. 0: https://github.com/aevyrie https://github.com/aevyrie 1: https://discord.gg/bevy https://discord.gg/bevy
- adamnemecek 6y agoIf you re interested in Rust game dev, check out the rg3d engine https://github.com/mrDIMAS/rg3d https://github.com/mrDIMAS/rg3d. Join the rg3d discord channel https://discord.gg/xENF5Uh https://discord.gg/xENF5Uh Here’s a sample game made with rg3d https://github.com/mrDIMAS/StationIapetus https://github.com/mrDIMAS/StationIapetus
- serverholic 6y agoIt seems a bit tasteless to promote another game engine in this thread.
- adamnemecek 6y agoI’m mentioning alternatives.
- epage 6y agoAlternatives are only useful when adding to the conversation. Otherwise it comes off as tasteless promotion. One example of a way alternatives add is comparing how the new release stacks up with alternatives.
- Can_Not 6y agoThe name-dropping/link-dropping with an extra discord link that will likely expire long before everything else is tasteless. A tasteful mention would look like this: > If you're looking for a scene graph based engine instead of an ECS based engine, checkout $PROJECT_NAME at $PROJECT_LINK and here's an example $EXAMPLE_LINK I can't vouch for the accuracy of the statement, but it clearly lays out the primary difference in value proposition, and 2-3 distinctions in value proposition would be good. The goal should be to help people find what they are looking for, not spam.
- the_duke 6y agoYou constantly promote other libraries in semi-related topics on Reddit as well. I find this quite weird, what's the point? At the very least post a comparison of why X is better/more interesting than Y.
- aimor 6y agoI've been anticipating this, glad it's released! I started using Bevy a few months ago on version 0.4 and have had a really great experience learning the tool and getting help from the community. The documentation isn't as full as I'd like, but there's lots of examples and people available to answer questions. This post is just to encourage anyone interested to go ahead and try it out.
- TheRawMeatball 6y agoCheck out https://bevy-cheatbook.github.io/ https://bevy-cheatbook.github.io/ ! It's a WIP, but it covers all the basics very well.
- jamadazi 6y agoFor anyone interested in learning / trying out Bevy, have a look at The Unofficial Bevy Cheatbook (i'm the author): https://bevy-cheatbook.github.io https://bevy-cheatbook.github.io. I did a major overhaul of the book for the new 0.5 release, and it's better than ever! Many pages were expanded or rewritten, new content added, and community feedback addressed. This is now one of the most detailed learning resources for Bevy. Enjoy, and have fun making things with Bevy! (the book is a continuous work in progress, even more content and improvements coming soon!)
- argv_empty 6y agoWhat does it mean for a game engine to be data oriented or data-driven?
- brundolf 6y agoBroadly it means there's an emphasis on creating your content declaratively, often in a config file format (i.e., not in code). Saying "there's an entity X, it has these behaviors, it has these properties" in XML or JSON or whatever else. And then actual code is written separately, to handle specific logic that uses those declarative properties. I'm sure somebody else can give a more precise definition
- Narishma 6y agoI think what you describe is "data-driven". This engine is "data-oriented", which is a different thing.
- _cart 6y agoI personally consider us to be "both" (and we've ping-ponged back and forth on the right term to use in our taglines). Our app model is "data driven" in that we encourage users to drive logic off of raw data whenever possible and provide tools to respond to data changes. We are also "data oriented". We spend a lot of time optimizing our ECS data structures to maximize cache efficiency. We are _also_ "data driven" in that we try to use hard numbers to motivate design decisions whenever possible (although i consider that to be a secondary descriptor of the project).
- jamadazi 6y agoIt's in contrast to Object-Oriented Programming. In OOP, you define classes of objects, with behaviors/functionality attached to them. In Bevy, the focus is on the data. The ECS is like a big table (if you are not familiar, you can think of it by analogy with a database or spreadsheet). It stores all your data. Components are like the columns of the table, and entities are like rows. You then write functionality separately. You can query the ECS to get the data you need. Your logic is not attached to any particular "object instance" or "object type".
- sylvain_kerkour 6y agoCongrats! For people (like me) who want to see what can be made with bevy, have a look here: https://github.com/bevyengine/awesome-bevy https://github.com/bevyengine/awesome-bevy
- dang 6y agoBevy 0.4: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=25480321 https://news.ycombinator.com/item?id=25480321 - Dec 2020 (23 comments) Bevy 0.3: game engine built in Rust - https://news.ycombinator.com/item?id=24983956 https://news.ycombinator.com/item?id=24983956 - Nov 2020 (55 comments) Bevy 0.2 - https://news.ycombinator.com/item?id=24530698 https://news.ycombinator.com/item?id=24530698 - Sept 2020 (43 comments) Bevy: A Game Engine in Rust - https://news.ycombinator.com/item?id=24334307 https://news.ycombinator.com/item?id=24334307 - Aug 2020 (42 comments) Bevy: A data-driven game engine and app framework built in Rust - https://news.ycombinator.com/item?id=24123283 https://news.ycombinator.com/item?id=24123283 - Aug 2020 (103 comments)
- yagizdegirmenci 6y agoBevy: A Game engine built in Rust - https://news.ycombinator.com/item?id=26131350 https://news.ycombinator.com/item?id=26131350 - February 2021 (117 comments)
- reitzensteinm 6y agoThe activity on this story seems to have triggered the flamewar protection mechanism - any chance of vouching for it to get it back on the front page?
- gwittel 6y agoIf you can't get to the bevyengine.org web site, you can view the release announcement in the Bevy projects' web site Github repo: https://github.com/bevyengine/bevy-website/blob/master/content/news/2021-04-06-bevy-0.5/index.md https://github.com/bevyengine/bevy-website/blob/master/conte...
- kgeist 6y agoTheir ECS implementation sounds like a full-fledged in-memory DB. Have there been serious attempts to use ECS outside of gamedev? The concepts are pretty interesting.
- alice-i-cecile 6y agoYou're not alone: the Bevy community's been exploring this too, both on the application side and the ECS-innovation side. The query caching is a neat trick that learns directly from DB's. Some of our most anticipated planned ECS features include secondary indexes (for things like looking up all entities in a particular cell) and relations (components that also point to another entity, inspired by FLECS[0]). 0: https://ajmmertens.medium.com/flecs-v2-3-and-v2-2-is-out-893d7888b508 https://ajmmertens.medium.com/flecs-v2-3-and-v2-2-is-out-893...
- epage 6y agoThat was the eye opener to me to understanding ECS and how to apply it, that Entities are just Primary Keys and Components are Tables in a database, just in-memory and with native types. Systems are just processing stages in attaching a feedback loop to the database
- deleted 6y ago[deleted]