3 ms·
That link says O3DE uses EC, not ECS. These are terribly named and often cause confusion, but they are different. In "Entity Component" systems (think Unity),
by mkishi 5y ago
That link says O3DE uses EC, not ECS. These are terribly named and often cause confusion, but they are different.
In "Entity Component" systems (think Unity), entities own components that give them data and behavior.
In "Entity Component System" systems (think Unity DOTS), components are just data, and behavior is driven by systems that live outside entities.
They are similar in some aspects and both are radically different than a deep OOP hierarchy, but ECS is quite more hardcore on decoupling. It's been a few years and it's still not unanimous whether adopting Unity DOTS over regular Unity is easy or even worth it, for instance.
Still, Godot isn't very OOP either, working mostly with composition of behaviors.
- Andrex 5y ago> In "Entity Component" systems... > In "Entity Component System" systems... Something something Douglas Adams.
- djur 5y agoIt's less confusing when written "Entity−Component−System architecture". That is, it's a list of the three concepts -- Entities, Components, and Systems -- that predominate in the architecture.
- mcphage 5y agoHow old and how widespread is the “EC” vs “ECS” naming distinction? Both of those used to be called ECS (at least as far as I understand).
- badsectoracula 5y agoEC predates ECS and goes back to at least 2008 or so.
- bmn__ 5y agohttps://news.ycombinator.com/item?id=26292671 https://news.ycombinator.com/item?id=26292671 ECS was popularised with http://enwp.org/Dark_Engine http://enwp.org/Dark_Engine in 1998. The architectural style probably existed already earlier, but I have no evidence I can point to.
- badsectoracula 5y agoAre you sure about the Dark Engine bit? I remember comments from people who've seen the code saying that it was an OOP mess with weird macros over C++ features that looked like COM on a bad day, which sounds completely antithetical to what people call ECS nowadays. Perhaps it was confined to some part of the engine? ECS didn't come out of thin air after all, it is a generalization of practices people already used for things like particles, etc.
- blarg1 5y agoAh I got excited for a second, I'll stick with ue4 if its only EC
- geokon 5y agoDo you have an good references for implementing an ECS? I've only found very high level descriptions but they all are a bit handwavey and avoid the implementation details. I know Entt is a highly praised library, but I'd be interesting in folding in ECS as a general design pattern in my programming. https://github.com/skypjack/entt https://github.com/skypjack/entt