I’m interested in a technical reason why a component in ECSx only allows for primitive values like float, atoms, etc and not something like structs or tuples. For example, rather than a PositionX
and PositionY
as separate components, instead have a Position
component that stores both x and y coords. I feel like there’s a technical reason like something to do with how ETS works or something but I couldn’t find anything in the code, docs, or blog post that gave a clue and it’s piquing my curiosity.
3 Likes
My guess, based on the original stated goals of the project:
- Type-checking for all component data
Supporting compound product data types like structs would mean ECSx has to build or bring a much more involved Ecto-schema style solution for component structure definition, coercion, and validation.
Nothing I know about ECSx’s implementation or how ETS works suggests to me that this is impossible: but I’d imagine it’s not a priority for the framework devs.
1 Like
Thanks! I must’ve missed that issue in my searching. I wasn’t suggesting that as a feature, more for my own learning so I appreciate the answer
1 Like