5 ms·
Bevy: A Game Engine in Rust
- acp2020 6y agoWhy every time I read about Rust the title is in form "xyz written in Rust"? For example Unreal engine is a game engine. Not "a game engine written in C++".
- timw4mail 6y agoBecause the default is generally C++?
- acp2020 6y agoSince when it's been the most interesting thing about the software in which language it's been written in? I mean sure sometimes it is but show me a Rust software that didn't advertise itself being written in Rust.
- Jaxan 6y agoThere are a lot of “X in C++” posts here on HN as well. I don’t think it is really new or specific to rust. I also dislike the emphasise on the programming language, but many people seem to find it important.
- AQuantized 6y agoGenerally it's interesting when almost all of that type of software isn't written in the advertised language.
- ruricolist 6y agoRipgrep?
- untog 6y ago> Since when it's been the most interesting thing about the software in which language it's been written in? Presumably because I'm going to be writing the same language when I interface with it. Rust can export to a C API but if I'm using Rust myself the API is going to be better.
- gnlnx 6y agoIt's to get adoption by that particular group that uses X and has to deal with the issues of that domain and the default language they all use ... It's a way of saying: you could be doing all your _real_ development in Rust
- codetrotter 6y agoI write software in Rust, so to me it is relevant to learn about new libraries and frameworks that are written in Rust. There are enough existing and new game engines and frameworks that if the title was simply “Bevy: A Game Engine”, then I might not have bothered to clicked on it only to find that it was written in C++ or Lua or Python or what have you. I use other languages too, mind you, it’s not that – it’s just that aside from Unreal, Unity and Godot, the only other game engine or framework that I am interested in knowing about at the moment is one that is written either in Swift or in Rust. Conversely, stating it upfront also allows anyone that does not want to write in Rust to avoid this particular game engine at the moment. I see only benefits of stating it.
- Minor49er 6y agoIt's interesting if it's truly unexpected. For example, there's a game that's been in development called Black Annex that's written in QB64 which looks quite complicated for having been written in a BASIC variant. But for Rust, which is commonly advertised as a C/C++ replacement, it seems unnecessary. I think that developers include that information because they don't feel that Rust's traction isn't being given enough recognition.
- gravypod 6y agoWhen I go to a store and buy Milk the carton doesn't say "Milk made by Cows". When I go to buy Milk/Milk-substitutes from other sources they'll be called "Almond Milk", "Goat Milk", etc. It seems like you stop saying "made by Cows" when it's not surprising that the Milk you'd be buying is from cows.
- smt923 6y agoI think it's actually pretty common that when a fairly typical thing is written in a newer/modern/less common language, it's often stated as "X written in <new language>"
- mrkeen 6y agoThe first thing I look for in a game engine is what language it's written in. The second thing I look for is what language(s) it lets the user write games in.
- ragnese 6y agoI think the people rationalizing are wrong. You're right that you see a lot of posts with "X is a Foo written in Rust!". A few years ago I saw a bunch about Go, too. That seems to have died down. But I think the real reason is that people are excited to use Rust for "real stuff". And a lot of Rust fans don't get to use Rust at $dayJob or whatever. There's also a bit of naysayer criticism that it isn't a practical language, etc. So, no, it doesn't really matter that something is written in Rust. It's just Rust fans being hyped up about it. It might be a little annoying, but replies like yours aren't really any better, honestly.
- nwsm 6y agoBecause it implies that it is extendable/scriptable in that language. Unity and Unreal, for example, are not scriptable in Rust. Anyone interested in writing games in Rust would surely be more interested in an engine that supports it.
- moomin 6y agoOP here: without being clickbaity, the idea was to choose a title that gave people some idea of why they might want to read about it. And titles can’t be that long. I’m told Bevy does really interesting things with traits, for instance, but even that is too long for a title.
- elihu 6y agoIn this case, the thing we're talking about is a library that uses Rust data types and interfaces. It might be possible to create language bindings for C or C++ (or whatever language you want to use), but the docs on the website seem specifically targeted to Rust users. So for now, the only people likely to be interested in using this are Rust developers (though people coming from other languages might find the general design interesting).
- city41 6y agoOn the surface it sounds similar to Godot. Is that a fair assessment?
- mhh__ 6y agoCould be an interesting alternative - C# is a popular choice to avoid C++ and I always find myself really worried about performance and correctness compared to C++. I'm more productive but there's no const-correctness (for example)
- bluejekyll 6y agoFrom other docs on the site: “Bevy aims to be a general purpose game engine capable of handling any 2D or 3D workload. However Bevy is still in its infancy. We are currently in the prototyping phase: important features are missing and APIs will change constantly. If you are currently trying to pick an engine for your Next Big Project™, we recommend that you check out Godot Engine. It is currently much more feature-complete and stable. And it is also free, open-source, and scriptable with Rust!” https://bevyengine.org/learn/book/introduction/ https://bevyengine.org/learn/book/introduction/
- smt923 6y agoA big distinction for me is not having a nice UI for level design and 'arranging' everything that isn't the code, though a lot of the other aims do seem pretty similar
- lachlan-sneff 6y agoThere's going to be an editor, but these things take time.
- smt923 6y agoof course, just pointing out that right now it's a pretty large distinction between the two
- adamnemecek 6y ago
- codetrotter 6y agoWhile the page mentions the project being in an early stage, I skimmed through the Bevy Book and what I read so far looks promising. The text is detailed, relevant and has good grammar, which to me inspires confidence. On the page https://bevyengine.org/learn/book/getting-started/resources/ https://bevyengine.org/learn/book/getting-started/resources/ however I am not able to navigate to the next page after it on mobile, because the arrow linking to the next page is almost entirely off-screen and can not be touched. This is in Safari on iOS 13.6.1
- echelon 6y agoFor someone with better first hand experience, how does this compare to other Rust game engines [1] [2] [3]? Is Bevy flexible enough to let you drop down into raw OpenGL? I'm writing code that does a mix of point cloud rendering and traditional asset rendering (I'm new to all of this), and I'm wondering if I should adopt an engine instead of rolling everything myself with a mix of OpenGL, matrix math, and Imgui. I'm trying to do due diligence, but I'm too new to games and 3D to know what to look for. [1] https://github.com/amethyst/amethyst https://github.com/amethyst/amethyst [2] https://github.com/PistonDevelopers/piston https://github.com/PistonDevelopers/piston [3] https://arewegameyet.rs/ecosystem/engines/ https://arewegameyet.rs/ecosystem/engines/
- adamnemecek 6y agoRight now bevy only supports webgpu. Webgpu is going to take over the world.
- steveklabnik 6y agoFor that specific comparison, I recently read https://community.amethyst.rs/t/bevy-engine-addressing-the-elephant-in-the-room/1645 https://community.amethyst.rs/t/bevy-engine-addressing-the-e... While I haven't tried either of these engines seriously yet, I really enjoyed reading that thread.
- Waterluvian 6y agoThanks for that link. I think that's a wonderfully judicious and maturely big-picture perspective on Bevy.
- lachlan-sneff 6y agoThe rendering backend is a work in progress. In the near term, it'll let you use several levels of rendering abstraction, down to wgpu, which is what it currently uses, and eventually vulkan as well. At the very least, you should move to a more modern rendering api like vulkan, wgpu (though I'm biased), metal, or dx12.
- 6y ago
- nwsm 6y agoPrevious discussion from 20 days ago (556 points): https://news.ycombinator.com/item?id=24123283 https://news.ycombinator.com/item?id=24123283
- freedomben 6y agoPossibly OT but: For a very experienced dev who knows numerous languages ranging C/C++/Go to Ruby/JavaScript to Elixir, what's the most effective way to learn enough rust to be dangerous? I like the Rust book a lot but it's a bit too slow moving. It explains concepts I already know so I have to skim, but then I miss something. Perhaps the best thing doesn't exist yet! Maybe I'll write it someday. But I thought I'd ask ;-)
- MayorMonty 6y agoRust By Example helped me to get off the ground pretty quickly and give me some ideas when I was stuck. But honestly just making something is the best way to learn rust, the compiler will hold your hand enough for it to be a pretty good learning experience
- umanwizard 6y agoI assume by "the Rust book" you mean "The Rust Programming Language". There is also "Programming Rust", which you might like better.
- moomin 6y agoOne of the smartest people I know swears by “Too many linked lists”.
- brundolf 6y agoI agree that the Book unfortunately moves a little slow for an experienced programmer, but I think it's still important to push through at least most of it and get all those little tidbits. After that I really like this resource, which gets much more practical about problem-solving borrowing issues and introduces some really important tools from the standard library: https://rust-unofficial.github.io/too-many-lists/ https://rust-unofficial.github.io/too-many-lists/ If the Book teaches you what features Rust has, this teaches you how to use Rust in practice. It also taught me that it was a fool's errand to go and try to implement all the core data structures as a part of my learning process, because that kind of pointer-twiddling is one of the hardest possible things to do in safe Rust :)
- 6y ago