I'd like to see how it compares to https://github.com/amethyst/specs , a rust-based ECS engine, for use in the multiplayer voxel world game Veloren ( https://veloren.net ), or https://github.com/TomGillen/legion
There’s not a particularly thrilling benchmark here: https://bevyengine.org/news/introducing-bevy/ Basically an ECS is not really a secret easy pattern to cache coherent data access. This benchmark shows its fast for the easy cases but says nothing about typical game requirements.
Bevy: A data-driven game engine and app framework built in Rust
41–50 of 108 posts
Re: Bevy: A data-driven game engine and app framework built in Rust
#42I was trying to see how Bevy embraced data-orientation, but I think it doesn't necessarily do so, since data orientation is more about reducing indirection, for ex., reducing or removing excessive data hierarchies. I think dod is also related to "mechanical sympathy" [2].
Edit: maybe the ECS part is the dod part? I saw the tree demo and it did not look very ECS to me. Maybe it is just the UI? :-)
1: https://meetingcpp.com/mcpp/slides/2018/Data-oriented%20desi...
2: https://mechanical-sympathy.blogspot.com/2011/07/why-mechani...
Re: Bevy: A data-driven game engine and app framework built in Rust
#43edit: and seems like I'm not the only one, as there's at least one upvote already. probably worth checking!
Re: Bevy: A data-driven game engine and app framework built in Rust
#44Just a note that data-driven is not the same as data-oriented-design [1]. I was trying to see how Bevy embraced data-orientation, but I think it doesn't necessarily do so, since data orientation is more about reducing indirection, for ex., reducing or removing excessive data hierarchies. I think dod is also related to "mechanical sympathy" [2]. Edit: maybe the ECS part is the dod part? I saw the tree demo and it did…
Yes, ECS' usually give you at least a good default that is data oriented. At a glance it seems like it does[0]. Notice how some systems (functions) iterate over components rather than entities, which implies a "struct of arrays" layout that benefits caching.
[0] https://bevyengine.org/news/introducing-bevy/#bevy-ecs
Also check here (in their book):
Re: Bevy: A data-driven game engine and app framework built in Rust
#45Purely a question. So why would I use rust instead of C++ or C# to develop games? what are the potential advantages of that.
Over C#: * Garbage collectors often scare game developers since they can lead to hard-to-fix latency spikes. * Rust has some cool libraries (specs, rayon, etc.) that let you safely parallelize computation. Over C++: * It's a memory-safe language, which instantly avoids tons of bugs. * Library interfaces are usually higher-level in Rust than in C++, for various reasons (sum types being a big one). * It's a much smalle…
In the inescapable hell of n+1 competing standards.
Re: Bevy: A data-driven game engine and app framework built in Rust
#46Purely a question. So why would I use rust instead of C++ or C# to develop games? what are the potential advantages of that.
Rust has other more technical advantages. But if you want to know why management is choosing it, it's because getting good C/C++ developers is a painful process nowadays.
Re: Bevy: A data-driven game engine and app framework built in Rust
#47Earlier quoted context omitted.
Video games don't really care about binary size.
Some don't, some do. Users living out in the sticks with poor satellite connectivity care about binary size. The HTML5 platform, which I see becoming increasingly important as things like wasm and webgpu mature, cares about binary size because you're potentially downloading it every time you play. It's slightly surreal poking about on itch.io where practically every game is 50 MB, even when most of them are simpler t…
Re: Bevy: A data-driven game engine and app framework built in Rust
#48Earlier quoted context omitted.
Great start here and a very compelling intro post. A couple of things I wondered about and didn't see answers to: 1. How ambitious is Bevy as an engine? Do you see it as aimed squarely at the casual-game space like ggez, or do you think it could eventually compete with Godot, growing more advanced features like GI? (I appreciate that competing with Unreal is probably, well, Unrealistic for the forseeable future.) 2.…
Video games don't really care about binary size.
We ran LTCG on every game I shipped.
Re: Bevy: A data-driven game engine and app framework built in Rust
#49Earlier quoted context omitted.
Some don't, some do. Users living out in the sticks with poor satellite connectivity care about binary size. The HTML5 platform, which I see becoming increasingly important as things like wasm and webgpu mature, cares about binary size because you're potentially downloading it every time you play. It's slightly surreal poking about on itch.io where practically every game is 50 MB, even when most of them are simpler t…
I would expect that for most games the vast majority of bytes will be assets (textures, models, sounds, etc.), not code. Even reducing the code size to 0 is unlikely to make much of a difference in the total size.
Harking back to ancient history for a moment, Frontier: Elite II was a AAA title for its day and was basically all code.
Re: Bevy: A data-driven game engine and app framework built in Rust
#50> "Bevy is a refreshingly simple data-driven game engine built in Rust."
The strange use of the word refreshingly implies that "bevy" could be related to beverage ... (bevy is Australian slang for beverage).
But apparently this is not the origin of the name...
> A bevy is a group of birds!