3 ms·
What do you think of Unity's ECS approach, and how are you approaching it differently with Bevy?
by allanjansen2 6y ago
What do you think of Unity's ECS approach, and how are you approaching it differently with Bevy?
- _cart 6y agoFirst: I won't pretend to be a Unity DOTS expert, but I have worked with it briefly. There are many similarities: 1. The general data model: entities, components, systems 2. Running systems in parallel 3. Archetypal ECS: a specific ECS storage strategy that groups entities of the same "data layout" together to increase cache friendliness during iteration. Bevy has a lot of query/filtering/change detection features that I haven't seen implemented the same way elsewhere. But I can't comment on whether or not Unity DOTS has those features because I don't have enough experience with it. I think we differ the most in UX. Wild (hard to verify) claim: I think Bevy has the most ergonomic ECS in existence. If you compare a Unity example (https://github.com/Unity-Technologies/EntityComponentSystemSamples/tree/master/ECSSamples/Assets/HelloCube https://github.com/Unity-Technologies/EntityComponentSystemS...) to a Bevy example (https://github.com/bevyengine/bevy/blob/master/examples/2d/sprite.rs https://github.com/bevyengine/bevy/blob/master/examples/2d/s...), I think its clear which one is easier to read/write (especially when you factor in the fact that the Bevy example is fully self contained). But its also worth pointing out that Unity is still one of the _more_ ergonomic ECS-es out there. Its still pretty good.