-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge bevy_app into bevy_ecs #3786
Comments
The alternative is to make In some ways, I still think merging them probably makes sense; I can't recall a single usage of |
There are people that want to simply use |
Yeah, this is about my perspective too. |
@CGMossa as the author of #2931: there's a difference here. bevy_app is fundamentally a fairly thin usability layer on top of bevy_ecs, and doesn't add dependencies fundamentally different from bevy_ecs. bevy_core, however, doesn't have a real "identity" in what it's for. It conflates multiple purposes, with the bevy_time functionality and glue code sort of arbitrarily in one location. Moving the bevy_core components around as described in #2931 is an improvement to the organization of bevy code because it clarifies the internal dependency graph, and as a side effect, it makes it more practical to depend on a subset of said graph. bevy_app and bevy_ecs could go either way; either bevy_app doesn't reëxport significant chunks of bevy_ecs, or bevy_ecs absorbs the orchestration of bevy_app. Either way could clean up the clarity of which crate does what, and merging the orchestration into bevy_ecs is simpler. |
Only because Thinking of use cases where bevy ecs is used as a general purpose way of structuring an application as ECS outside game development; with a custom event loop, "stages" etc. |
I agree, this and things like Then, move |
What about instead moving |
That's an interesting split. I like it better than our current setup. I wonder if that dividing line would continue to be clean as we add more functionality 🤔 |
bevy_app
is a thin layer overbevy_ecs
, and is nearly impossible to use on its own.Moreover, most standalone uses of
bevy_ecs
would be better suited by using the tools provided withbevy_app
; particularly if we had better documentation around custom runners and manually controlling theApp
loop.For example:
bevy_app
re-exports all ofbevy_ecs::event
.This is pointless, because
bevy_ecs
is an explicit dependency of all users ofbevy_app
.Furthermore, it creates confusion in the main Bevy docs, since the
bevy_app
version is listed.This re-export can and should just be removed.
The text was updated successfully, but these errors were encountered: