Live data from Hacker News

Bevy: A data-driven game engine and app framework built in Rust

bevyengine.org

41–50 of 108 posts

Re: Bevy: A data-driven game engine and app framework built in Rust

#41

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.

ECS has been used relatively heavily in game dev since like late 90's.

Re: Bevy: A data-driven game engine and app framework built in Rust

#42
Just 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 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

#43
I'm getting security warnings visiting the site, on both Firefox and Chrome (though chrome's could be due to an external check, redirects me to malware.opendns.com). "Error code: SEC_ERROR_UNKNOWN_ISSUER" on FF at least.

edit: 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

#44

Just 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…

> maybe the ECS part is the dod part?

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):

https://bevyengine.org/learn/book/getting-started/ecs/

Re: Bevy: A data-driven game engine and app framework built in Rust

#45

Purely 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…

> * It has an easy-to-use package manager, and I'm not sure where C++ is on that front.

In the inescapable hell of n+1 competing standards.

Re: Bevy: A data-driven game engine and app framework built in Rust

#46

Purely a question. So why would I use rust instead of C++ or C# to develop games? what are the potential advantages of that.

For some, theoretically it's easier to train new Rust developers than it is to fix the bugs of new C/C++ programmers. Folks are trying to move the cost to training and dev bringup time instead of bug-fixing time.

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

#47
post #37
post #31

Earlier 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…

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.

Re: Bevy: A data-driven game engine and app framework built in Rust

#48
post #31
post #20

Earlier 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.

On a console every 1mb of binary is one less mb for assets.

We ran LTCG on every game I shipped.

Re: Bevy: A data-driven game engine and app framework built in Rust

#49
post #47
post #37

Earlier 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.

For AAA titles, sure, but there's a long tail of indies, game jam entries etc. For something retro-styled like Dwarf Fortress or Baba Is You, I can absolutely believe that asset size is relatively minor compared to e.g. a Unity baseline footprint.

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
From the docs [1]

> "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!

[1] https://bevyengine.org/learn/book/introduction/

Post reply on HN