Skip to content
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

Add a first-party schedule visualizer #10981

Open
ItsDoot opened this issue Dec 14, 2023 · 1 comment
Open

Add a first-party schedule visualizer #10981

ItsDoot opened this issue Dec 14, 2023 · 1 comment
Labels
A-Dev-Tools Tools used to debug Bevy applications. A-ECS Entities, components, systems, and events A-Editor Graphical tools to make Bevy games C-Feature A new feature, making something new possible

Comments

@ItsDoot
Copy link
Contributor

ItsDoot commented Dec 14, 2023

What problem does this solve or what need does it fill?

In traditional OOP-based game development, per-frame logic flow is generally easier to deduce because (usually) the call-stack is the schedule. We don't have that luxury with today's data driven scheduling mechanism.

What solution would you like?

A way to visualize the schedule graph with all ordering constraints displayed. This could (and should) be part of the Bevy Editor when we get there, but a first-party solution now would also be nice.

Recommended Features:

  • Viewing individual Schedules.
  • Searching by System Sets and Systems to see their scheduling constraints.
  • See which Plugins registered which Schedules, System Sets, and Systems.
    • Also extend this to registered hooks and observers, if possible.
  • Live visualization of the schedule graph, with the ability to freeze the visualizer at any point for review.
  • Breakpoint-style visualization freezes whenever a Schedule is modified.

Those last two will be very important for debugging if/when we get runtime schedule modification.

What alternative(s) have you considered?

Continue using bevy_mod_debugdump as-is.

Additional Context

Prior Art: bevy_mod_debugdump

@ItsDoot ItsDoot added C-Feature A new feature, making something new possible A-ECS Entities, components, systems, and events labels Dec 14, 2023
@alice-i-cecile alice-i-cecile added P-High This is particularly urgent, and deserves immediate attention A-Editor Graphical tools to make Bevy games and removed P-High This is particularly urgent, and deserves immediate attention labels Dec 14, 2023
@james7132
Copy link
Member

Might be a good idea to add it to CI and serve it up on https://dev-docs.bevyengine.org/ like https://jakobhellermann.github.io/bevy_mod_debugdump/ that is always kept up to date with main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Dev-Tools Tools used to debug Bevy applications. A-ECS Entities, components, systems, and events A-Editor Graphical tools to make Bevy games C-Feature A new feature, making something new possible
Projects
None yet
Development

No branches or pull requests

3 participants