I used Entity as my catch-all, base-class kind of thing and basis for my wannabe ECS architecture. It, like the Object structure in the tutorial, just has a bunch of Option fields.
Which, as mentioned in #43, leads to some ugly code because these components are common to most all critters.
43 is one way of handling this -- destroy the base-class concept altogether and simply have a pure ECS system. This solves a lot of issues, but adds a lot of weirdness -- how do actions and commands work?
Another way to handle this is to refactor these components into a smaller set of things that almost always correlate. For instance, I think all actors have FoV and species and so forth. But I can think of exceptions to any given case. Which is why ECS works in the first place.
I used Entity as my catch-all, base-class kind of thing and basis for my wannabe ECS architecture. It, like the Object structure in the tutorial, just has a bunch of Option fields.
Which, as mentioned in #43, leads to some ugly code because these components are common to most all critters.
43 is one way of handling this -- destroy the base-class concept altogether and simply have a pure ECS system. This solves a lot of issues, but adds a lot of weirdness -- how do actions and commands work?
Another way to handle this is to refactor these components into a smaller set of things that almost always correlate. For instance, I think all actors have FoV and species and so forth. But I can think of exceptions to any given case. Which is why ECS works in the first place.