Re:Bevy 0.9: data oriented game engine built in Rust
by User23 on Saturday November 12, 2022 @05:48PM
(#33577955)
What does data oriented mean in this context? My gamedev experience is limited to writing MUDs and roguelikes over two decades ago so I have basically no context.
[ Parent
| on HN ]
Re:Bevy 0.9: data oriented game engine built in Rust
by james7132 on Saturday November 12, 2022 @06:07PM
(#33578110)
https://en.wikipedia.org/wiki/Data-oriented_design
The intent is to layout structures in memory in a way that is conducive to how it's actually accessed in the physical hardware.
For video games, this typically means leveraging contiguous pieces of memory to minimize cache misses while iterating over the objects in the game. This can see some huge performance gains over other ways of structuring the game's code.
Think of Bevy's ECS as a ultra-high performance in-memory columnar database that you're scanning 60+ times a second. Then building your game as a series of (potentially parallelizable) mutative queries over that database.
Re:Bevy 0.9: data oriented game engine built in Rust
by _cart on Saturday November 12, 2022 @05:57PM
(#33578028)
It is a pretty broad term, but it generally implies some combination of cache-friendly design and composable (sometimes component-driven) behaviors. ECS intersects with it, but "data oriented" is a much broader category.