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
ECSY Three now has a fairly robust foundation to build on top of. We need to start discussing what components and systems we would like to see as a community and where they belong. Some will likely go into the core ecsy-three library and others can be implemented into external libraries.
My thoughts are that we should only include components and systems in the core ecsy-three library that are in the core three library. This means things like the animation mixer, loading assets, raycasting, etc. Things like physics, networking, WebXR interaction, etc. should be handled by external libraries. We can endorse libraries by having them live in the ecsyjs Github organization and publishing them under the @ecsy npm scope.
When creating these core components and systems I'd like to be careful that we don't abstract away large parts of the Three JS API without a good reason to do so. Our focus for components should be standardizing the data model needed for common components. Our systems can be opinionated, we can make systems that make common tasks simple and have opinions for how it does its work.
We should put a lot of thought into adding new components to the library, the data model for the components will likely be used by many external projects and changing or removing a property will be a breaking change. On the other hand, we should feel ok with having lots of systems. Systems should be simple and focused on a single task. They should be composable and thought of as building blocks that can be used to make larger features. Users shouldn't feel scared to replace a system with their own. If you need to modify a system, then you can just copy the code into your project and change it. Big monolithic systems make it harder for people to justify doing that, so we should try to keep systems small.
What core components and systems do people want to see in ecsy-three? What libraries are you looking for or currently working on?
The text was updated successfully, but these errors were encountered:
ECSY Three now has a fairly robust foundation to build on top of. We need to start discussing what components and systems we would like to see as a community and where they belong. Some will likely go into the core ecsy-three library and others can be implemented into external libraries.
My thoughts are that we should only include components and systems in the core ecsy-three library that are in the core three library. This means things like the animation mixer, loading assets, raycasting, etc. Things like physics, networking, WebXR interaction, etc. should be handled by external libraries. We can endorse libraries by having them live in the ecsyjs Github organization and publishing them under the
@ecsy
npm scope.When creating these core components and systems I'd like to be careful that we don't abstract away large parts of the Three JS API without a good reason to do so. Our focus for components should be standardizing the data model needed for common components. Our systems can be opinionated, we can make systems that make common tasks simple and have opinions for how it does its work.
We should put a lot of thought into adding new components to the library, the data model for the components will likely be used by many external projects and changing or removing a property will be a breaking change. On the other hand, we should feel ok with having lots of systems. Systems should be simple and focused on a single task. They should be composable and thought of as building blocks that can be used to make larger features. Users shouldn't feel scared to replace a system with their own. If you need to modify a system, then you can just copy the code into your project and change it. Big monolithic systems make it harder for people to justify doing that, so we should try to keep systems small.
What core components and systems do people want to see in ecsy-three? What libraries are you looking for or currently working on?
The text was updated successfully, but these errors were encountered: