Description
When toying around trying to understand what is bevy
and how is it organized internally, I've tried to make a simplest possible application without using DefaultPlugin
by adding plugins
one by one when necessary.
It turned out that there are many dependencies between plugins, or, better say, expectations of particular aspects such as resources
, components
or systems
. These aspects are usually provided by existing plugins, but unfulfilled expectation manifests itself as a runtime crash. Usually message is descriptive and tells what aspect is missing but it does not (and can not) tell what plugin provides it.
It would be of great help for n00bs like me if existing plugins had such expected aspects and corresponding plugins documented.
Here are some example of such expections
I've encountered so far:
bevy_winit::WinitPlugin
requires some aspect (dont remember which one) provided bybevy_a11y::AccessibilityPlugin
(what if one does not what to use accessibility?)bevy_asset::AssetPlugin
requiresbevy_app::TaskPoolPlugin
bevy_render::RenderPlugin
requiresbevy_render::texture::ImagePlugin
bevy_render::RenderPlugin
requiresbevy_diagnostic::FrameCountPlugin
- reflection is not always behind
feature flag
, for examplebevy_render::RenderPlugin
; maybe plugin should issue a warning it can not function property without reflection, but developer turns offreflection feature flag
of thebevy
crate