You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Entity Component System in the Mezzanine is still undergoing a large number of refactors to get it to a place we want it to be.
Most recently the WorldObject class was refactored into something that actually managed the storage of Proxies, allowing us to implement over 30 of the previously pure virtual methods that existed on the class, and dramatically reduced the amount of overrides that were needed to derive from it.
Going forward, there are still a number of requirements before the ECS can be considered stable:
WorldObjects should probably be renamed to include the word "Entity" somewhere, for clarity.
WorldProxies should probably be renamed to include the word "Component" somewhere, for clarity.
"Components" should come in transformable and non-transformable varieties.
WorldObjects should probably store the two major types of components separately, to facilitate transform updates between components. This is really the only bit of meaningful logic on the WorldObject class. It's mostly a container.
We need to be able to support offsets for transformable components in a lightweight manner.
The WorldObject managers should probably be consolidated/merged into one WorldObjectManager.
Spawners for WorldObjects need to be implemented.
A pure interface for the WorldObject class needs to be created, for flexibility.
Something to address the notion of a "Multi-WorldObject" needs to be created or at least investigated.
Decide on a home for the more "generic" components that need to be created (such as a TimeToLiveComponent or AttachmentComponent).
Address the need for some components that will inevitably rely/depend on the existence of other components.
UnitTests.
In addition to these requirements the notion of ownership over the components has come up a few times and may want to change WorldObjects so they actually own their components rather than just store them. We may end up not needing to address this at all, however we may be able to clean up the system by reducing the number of raw pointers to various objects in the ECS system, as well as clean up our serialization scheme. This should be considered and properly assessed.
The text was updated successfully, but these errors were encountered:
The Entity Component System in the Mezzanine is still undergoing a large number of refactors to get it to a place we want it to be.
Most recently the WorldObject class was refactored into something that actually managed the storage of Proxies, allowing us to implement over 30 of the previously pure virtual methods that existed on the class, and dramatically reduced the amount of overrides that were needed to derive from it.
Going forward, there are still a number of requirements before the ECS can be considered stable:
In addition to these requirements the notion of ownership over the components has come up a few times and may want to change WorldObjects so they actually own their components rather than just store them. We may end up not needing to address this at all, however we may be able to clean up the system by reducing the number of raw pointers to various objects in the ECS system, as well as clean up our serialization scheme. This should be considered and properly assessed.
The text was updated successfully, but these errors were encountered: