3 ms·
Personally, deep object ontologies make my eyes glaze over. Its not like these objects evolved in the wild and their ancestry is somehow interesting. Give me in
by jvanderbot 6y ago
Personally, deep object ontologies make my eyes glaze over. Its not like these objects evolved in the wild and their ancestry is somehow interesting. Give me interface definitions any day. ECS is nicer for that.
- vvanders 6y agoYup, "has a" vs "is a". From my experience in gamedev the former is a lot more common than the latter. Had an engine where each entity could only have one mesh object since it was a part of the base entity type rather than a component. Led to a lot of multi-entity shenanigans that were brutal from a sync/off-by-one-frame perspective.
- ephimetheus 6y agoMight be wrong here, but isn’t that also a limitation for most component column based ECS implementations? (I mean each entity can have only one instance of each component)
- vvanders 6y agoDepends on the ECS, most systems I've worked in will let you do two addComponent calls of the same type and then they'd just get added to the array of components to batch process. This is really common for mesh components (although there's usually mechanisms to specify dependency/ordering to avoid off by one frame issues).
- jvanderbot 6y agoGotta thank @cjhandmer for that rant, but it really stuck with me.
- Shorel 6y agoFrom the article: Using ECS Nothing prevents you to use an ECS solution in Godot. In fact, I strongly suggest to check Andrea Catania's fantastic work on Godex, which aims to bring a high performance ECS pluggable implementation.
- yellowapple 6y agoThat paragraph really should've been the focus of the article, front and center - and from there an explanation on why it ain't built-in.
- UnpossibleJim 6y agoI'm a fan of Godot, so I'll state that in the beginning, so I'm biased. But I took a look at her(?) GitHub page and wondered why there isn't more effort being put into this branch. Even from his own words, ECs is a more efficient style when a large number of objects/nodes are involved, or when optimization becomes important. At the moment Godot is really only viable as a 2D engine, as it tends to bog down when used as a 3D game engine even though it has all but replaced the default Blender engine (their recommendation). So in order to get a viable 3D project, a user would have to use an experimental ECS version (no offense to the creators, they are working hard and I do have high hopes for this project. I'll most certainly be experimenting with it) using the C# version, which is still fairly new. Now, the fact that a small group of devs can make an indy project/proof of concept with Blender and Godot, or students can make a group portfolio that is viable - these things are AWESOME. Granted. But it still comes out of a quasi Frankenseinian lab as they have chosen to go with OOP instead of ECS, it seems, even though a path does seem laid out before them. P.S. here's the link to the ECS project: https://github.com/GodotECS/godex https://github.com/GodotECS/godex
- pezezin 6y ago> But I took a look at her(?) Seems to be a guy, Andrea is a male name in Italian, and female in pretty much any other language.
- gameswithgo 6y agothere is avoiding object trees, there is ecs, then there is not doing either of those things, which is often the best and simplest option. no need for a fancy ecs system if you have like five entities