TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Bevy 0.7: data oriented game engine built in Rust

199 pointsby _cartabout 3 years ago

9 comments

OnionBlenderabout 3 years ago
I&#x27;ve been trying to learn Bevy on and off for months but I&#x27;m finding it difficult. The official Bevy Getting Started tutorial is very short. I&#x27;ve looked through many of examples but I find them difficult to follow because I&#x27;m not familiar with how Bevy wants you do to things. I find that the API docs don&#x27;t explain what things are used for. I feel like I&#x27;m missing some core concepts but I don&#x27;t know where I&#x27;m supposed to learn them.<p>Some examples. What are commands? What is the world? How should I be creating and destroying objects? How do I ensure some systems run before others? How should I delay loading most of the systems until a button is pressed on the first screen? How do I unload systems? How do I pass information between systems?<p>I&#x27;m not looking for someone to answer all of these questions, I just want to know where I&#x27;m supposed to read about them because I feel like I&#x27;m missing some important docs.<p>The Unofficial Bevy Cheat Book looks promising because it appears to explain some of the core concepts. However, it is weird that I have to read an unofficial book to learn these things. Without the Unofficial book, where was I supposed to learn the coordinate system convention or how to use events?
评论 #31044673 未加载
评论 #31045414 未加载
评论 #31045767 未加载
评论 #31044459 未加载
评论 #31044521 未加载
djmcnababout 3 years ago
A change I find interesting in this release is the addition of `Deref`&#x2F;`DerefMut` derives[0]. It addresses a very real pain point in bevy, due to `#[derive(Component)]`&#x27;s interaction with the orphan rules requiring newtypes[^1].<p>But it&#x27;s potentially not idiomatic within the Rust language, at least at the moment (as mentioned in the OP). However, I think that the tide is likely to turn on that; for example, in the api-guidelines repo, there&#x27;s a PR[2] to remove this advice. This appears to have stalled, although that appears to be not for reasons of it being controversial, just lack of reviews; the discussion had broad support.<p>We have discussed (in Discord[3]) a kind of &#x27;internal&#x27; `Deref`, which would use lenses to do automatic unwrapping for queries. See #4413 [4] for an example of what this would look like. I&#x27;m not sure how necessary that is if we can just use `Deref[Mut]`, but it&#x27;s definitely another angle we could go down long-term.<p>[0]: <a href="https:&#x2F;&#x2F;bevyengine.org&#x2F;news&#x2F;bevy-0-7&#x2F;#deref-derefmut-derives" rel="nofollow">https:&#x2F;&#x2F;bevyengine.org&#x2F;news&#x2F;bevy-0-7&#x2F;#deref-derefmut-derives</a><p>[^1]: This newtype requirement isn&#x27;t a negative for bevy, since it makes it much easier to avoid interoperability headaches between different crates.<p>[2]: <a href="https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;api-guidelines&#x2F;pull&#x2F;251" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;api-guidelines&#x2F;pull&#x2F;251</a><p>[3]: <a href="https:&#x2F;&#x2F;discord.gg&#x2F;bevy" rel="nofollow">https:&#x2F;&#x2F;discord.gg&#x2F;bevy</a><p>[4]: <a href="https:&#x2F;&#x2F;github.com&#x2F;bevyengine&#x2F;bevy&#x2F;pull&#x2F;4413" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;bevyengine&#x2F;bevy&#x2F;pull&#x2F;4413</a>
评论 #31044522 未加载
andrewmcwattersabout 3 years ago
Any plans to provide out of the box multiplayer? Lots of engines today don&#x27;t think about it at all, and instead seem to focus on the sort of feature set provided by Unreal and Unity.<p>I don&#x27;t think there&#x27;s a whole lot of value in that design, but that&#x27;s my personal opinion having built an engine for the Lua community that did somethings no one else was doing.<p>Mainly, providing an out of the box experience for, typically, hobbyist developers who don&#x27;t actually know anything about multiplayer serialization or prediction, etc.<p>The sort of younger developers and people who are playing around with code and posting on Reddit and such.<p>A lot of engines are just wrappers around popular libraries and I don&#x27;t know if there&#x27;s a tremendous value around that sort of thing.<p>Consider, for example, audio. It&#x27;s really easy to provide audio bindings to, I don&#x27;t know, let&#x27;s say OpenAL, because I don&#x27;t know what else is used these days. But game developers eventually mature enough where they don&#x27;t just care about playing audio.<p>What they&#x27;ll eventually want is to play a sound, with DSP, and have that audio automatically networked by the engine to play on different connected client&#x27;s based on visibility rules or at least a simple emit sound networked event.<p>There&#x27;s an entire class of hobby engines that don&#x27;t consider these things, and leave it as an exercise for the user to implement. They are entirely non-trivial features that the users will never implement, though, and instead just never pursue that feature because the engine doesn&#x27;t provide it.
评论 #31044433 未加载
评论 #31044207 未加载
评论 #31044226 未加载
评论 #31045020 未加载
评论 #31044185 未加载
评论 #31044215 未加载
_cartabout 3 years ago
Lead Bevy developer (and creator) here. Ask me anything!
评论 #31044043 未加载
评论 #31044014 未加载
评论 #31044313 未加载
评论 #31044582 未加载
评论 #31043875 未加载
评论 #31044457 未加载
评论 #31044425 未加载
Sparkle-sanabout 3 years ago
I&#x27;m impressed by the speed of this release. I started checking out Bevy after reading Hands-on Rust[1] and wasn&#x27;t expecting any updates given 0.6 came out in January.<p>[1]<a href="https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;hwrust&#x2F;hands-on-rust&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;hwrust&#x2F;hands-on-rust&#x2F;</a>
评论 #31044028 未加载
alserioabout 3 years ago
For everyone who&#x27;s following this awesome tutorial has been updated: <a href="https:&#x2F;&#x2F;mbuffett.com&#x2F;posts&#x2F;bevy-snake-tutorial&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mbuffett.com&#x2F;posts&#x2F;bevy-snake-tutorial&#x2F;</a>
malwrarabout 3 years ago
This is exciting! Bevy is the rendering engine equivalent of python’s Flask module in terms of ease-of-use &amp; flexibility, and if you’re looking to render things I think it’s a pretty solid bet to put your time into.
评论 #31044885 未加载
rosenjcbabout 3 years ago
This reminds me a lot of Amethyst.
评论 #31044959 未加载
评论 #31045041 未加载
Shadonototraabout 3 years ago
other than &quot;written in Rust&quot;, what it does different than the billion other open source game library?<p>&quot;written in Rust&quot; won&#x27;t make the game by itself
评论 #31044324 未加载
评论 #31044407 未加载
评论 #31044142 未加载
评论 #31044318 未加载