Composition is great and indeed it sounds like you are 10% of the way there for an efficient ECS, but are still clinging to the old ways. It takes time believe me as I've worked on mine for years as things go.
10% sounds kind of rough to me, now, after all these months of 'research and pain'
You're doing it wrong.. ;p This screams thinking more about the separation of data and the systems that process it. In an ideal scenario a 1:1 or 1:N arrangement is good. 1 data component containing everything a system component needs to process this data and complete a task.
I guess, i thought it would be intelligent, to tidy stuff away in a class object and just initializing my Component with it when some more complex data is needed
So thats the OOP way of thinking, i have to get rid of then for an ECS. And now where you point it out to me(and i've read a lot of times on the sites, 'you'll need time time to change your mindset'...)
Hmm... But classes.. are so.....hmmm....tidy and you can put everything int them and extend them
Also, i usually tried to not have 1:1 or 1:N arrangement the way you say it should be, i tried to aim for: => Less components,but more 'modular' and also less systems, but more specific, 1:1 or near, seems more (unecessary?)system/components, just to get to that ratio.
But having though about it, i see that some components really are complex, but could still contain every data needed, for a system to process it. But then some of my components will get a little bloated, which is then pretty much inevitable with this approach, right? Oo
But what about Enum states? I guess i can use Enums which are globally visible (don't know if thats the right terminology for enum's), or at least where i need them,
allthough enums are objects. I don't know how 'fine grained' the ECS needs to be...
So: Component(contains ALL data, data only)-->runs through a System(static method/obj. method) identified by EnumSet mask ?
Plus, with making components without any composition apart from enums, my problems with saving/loading will be nicely solved with a clean JSON, and i can handle this myself!
It takes time believe me as I've worked on mine for years as things go.
How does yours roughly work? I've started with the GUID where every entitiy is an id and only has components somehow referenced to it, but i'm not feeling ready for this;p Plus, i've seen so many approaches i don't know which to use. Eventually i'm going to need references from entity to entity,which will be a problem when saving if i use my current setup, id's would make these things easier. (I think i need to dump my current Entity class + component map thingy)
I'll leave it a that for now, so you don't have to read so much :x
Thank you very much again for your patience!, you are helping me big time, and the 10% of being on my way to a descent ECS, has given me some kick to put some effort into it again