3 ms·
> ECS is a very ergonomic abstraction for games: that's the only reason it's even put up with over data oriented models like DOTS which are much more performant
by klodolph 4y ago
> ECS is a very ergonomic abstraction for games: that's the only reason it's even put up with over data oriented models like DOTS which are much more performant
I'm a bit unsure what you're saying here. By my reckoning, building objects in Unity out of MonoBehaviour components is simply not ECS, and as far as I can tell, Unity ECS and DOTS go hand-in-hand. I haven't used DOTS, though. I have used ECS but not with Unity.
The reason Unity isn't ECS is because it's missing the "S" in ECS. Unity has entities and components, but you're left on your own if you want to create a system.
Agreed that there's a ton of bad code out there, in video tutorials and on the asset store. I avoid using code assets or copy/pasting code, but I'm mostly running into the next issue you mentioned--that it's a hard architecture problem to begin with.
- BoorishBears 4y agoUnity muddied the waters by naming a component in DOTS "ECS", but I'm referring to the pattern, not that package, and the fact that you need to include Systems to have ECS is debatable: https://en.wikipedia.org/wiki/Entity_component_system#Is_%22system%22_first_class https://en.wikipedia.org/wiki/Entity_component_system#Is_%22...? Even if you want to reduce it to "Entity-Component" the point is that the architecture they provide via Monobehaviors is ergonomic It creates a very workable mental model for assembling complex game entities without relying on inheritance, and it provides reasonable tools to orchestrate them without introducing hard dependencies