-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Currently, there is an issue with one of Bevy's dependencies, see bevyengine/bevy#22127.
This happens because PistonWindow and Bevy depends on two different WGPU versions.
The underlying problem is a difference in ecosystem policy.
Bevy has a release schedule of 3-4 months, which is usually slower than the Piston project.
The Piston project uses Eco for ecosystem analysis, that guarantees ecosystem integration when libraries are updated.
Thus Piston uses a continuous publishing model, which makes it easier to use the latest version of WGPU.
The idea of adding an ECS library under "batteries" is to let people try out ECS if they want to.
Piston uses a MVC pattern by default, that works well for many kinds of applications.
ECS is useful for some games that have a certain complexity.
If we remove Bevy, then people can simply add it as an extra dependency.
It is more likely that those who want to go full ECS on everything will use Bevy directly.
Perhaps the best way for PistonWindow is to offer ECS alternatives that serve a middle ground between MVC and ECS.
I think Hecs might be good alternative for people to explore to ECS paradigm.
However, I rarely need more than 64 components, so I prefer Nano-ECS.
They are similar in design, except that Nano-ECS stores all components in a single array and you can initialize entities with a set of components that it is allowed to use. This is a tradeoff that many games might use, but it requires knowing more about the data.
We could add both these alternatives, Hecs that is more robust and safe, Nano-ECS for those who like to hack in the ECS paradigm.