4 ms·
I'm not sure I follow. In ECSs that I'm familiar with, entities are integer IDs, not class objects. So adding or removing components (roles) to an entity doesn'
by fenomas 5y ago
I'm not sure I follow. In ECSs that I'm familiar with, entities are integer IDs, not class objects. So adding or removing components (roles) to an entity doesn't make use of any language-level features, it's just calls to the ECS library. E.g. in JS:
var id = ecs.createEntity() // returns an int
ecs.addComponent(id, 'house')
ecs.addComponent(id, 'boat')
So, very different from the class-based approach being floated a few comments ago. Does that answer your question?
- raiph 5y agoLiz suggested `but`, but that creates a new entity with the role mixed in. Instead one can use `does` to mix in to an existing entity: role House {} role Boat {} my \id = 42; id does House; id does Boat; say id ~~ House; # True (What's missing is the ability to drop a mixin once it's been added via `does`.)