Hacker News new | ask | show | jobs
by CyberDildonics 60 days ago
What you just described is a data structure that gets used. If the user brings the behavior what is the ecs? It's the data structure.

Of course it will be used somehow. I don't call a std::vector a "vector system" because someone uses it, but I guess people think using this data structure makes it a "system".

1 comments

It's a data structure, except it doesn't describe how data is actually stored, only how its elements interact, so it's a data structure that doesn't actually structure data. If you are the kind of person that considers stuff like MVVM and Clean Architecture to be data structures, then I suppose it would be consistent. Most people don't.
It does store data so it is a data structure. Every implementation is meant to store data and the whole point is to have more memory locality so how it stores data is actually crucial.
No, not every ECS implementation is about data storage (to be more precise, component storage). This architecture's abstraction being better suited for data locality is the main appeal, yes, but many appreciate the mere separation of the GameComponent's Components into Components and Systems. So your assertion about it being strictly meant for data storage is just wrong. As [2] states:

> Data is often stored in cache-friendly ways which benefits performance.

Notice it says often, not always.

And bear in mind, generally, data structures aren't just about storing data. They are about storing data in a very particular way.

(to be more precise, component storage)

That's data, so it stores data, meaning it is a data structure.

So your assertion about it being strictly meant for data storage is just wrong.

No, using a data structure doesn't mean it isn't one.

Notice it says often, not always.

This doesn't matter. You're way off the map in what causes 50MB binaries.

data structures aren't just about storing data. They are about storing data in a very particular way.

Same thing, you're pretty deep in the replies and still not making a point.

> That's data, so it stores data, so it's data structure.

Technically, the component storage is, at best, a ADS. But that's grasping at straws given that you can just store components directly in a function's stack frame. Still, the component storage isn't "the ECS" in the same way that a service injector isn't "the Clean Architecture ", even though you'll always have them in some form in each.

> No, using data structure doesn't mean it isn't one.

Now, where did I say that?

> This doesn't matter.

For the discussion of whether ECS is a data structure, it is, given that you previously stated that ECS was meant for storing data, and "often" contradicts that.

> You're way off the map in what causes 50MB binaries.

I haven't asserted anything about it. You did, and you have yet to prove it.

> Same thing

Pretty much everything stores data in someway. Which brings us back to the "kernel is a data structure in your eyes?" question from earlier. I don't think it is me who isn't making much of a point.

No one knows or cares about whatever "ADS" is, injector services or 'clean architecture'. It seems like you're caught up in so much nonsense that you don't think that a class meant to store data is a data structure.