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

System order reporting and visualization #2137

Open
alice-i-cecile opened this issue May 10, 2021 · 2 comments
Open

System order reporting and visualization #2137

alice-i-cecile opened this issue May 10, 2021 · 2 comments
Labels
A-ECS Entities, components, systems, and events C-Feature A new feature, making something new possible C-Usability A targeted quality-of-life change that makes Bevy easier to use D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design-Doc This issue or PR is particularly complex, and needs an approved design doc before it can be merged

Comments

@alice-i-cecile
Copy link
Member

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

The order in which systems can execute is critically important for understanding and debugging but this information is typically spread across an entire app.

What solution would you like?

  1. Provide a user-friendly method to log the schedule. This should be human-readable to both ease parsing and make it usable for vision-impaired users.
  2. Create a graph visualization from this log.
  3. Create an example showing how to use these features.

What alternative(s) have you considered?

None.

Additional context

This has been discussed informally repeatedly, but I somehow couldn't find an issue.

https://github.com/jakobhellermann/bevy_mod_debugdump is fantastic prior art.

Other more advanced functionality (e.g. filter by component / resource type, showing which execution order was actually used, filtering by stage or module) can be added on top of this once the initial PR is merged. Those should have separate issues for clarity.

@alice-i-cecile alice-i-cecile added C-Feature A new feature, making something new possible A-ECS Entities, components, systems, and events C-Usability A targeted quality-of-life change that makes Bevy easier to use labels May 10, 2021
@alice-i-cecile
Copy link
Member Author

Ideally this should be integrated with #2025 as well.

@alice-i-cecile alice-i-cecile added D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design-Doc This issue or PR is particularly complex, and needs an approved design doc before it can be merged labels Dec 12, 2021
@dimvoly
Copy link

dimvoly commented May 11, 2024

What's the current method for debugging system execution order problems?

It seems the best way right now is to guess & check which is quite ineffective.

I've got code where I've put things into sets and either they don't run as expected or run out of order. Despite using .chain() and .run_if() etc.

Be nice to have something that could be dumped out to a text file, even if it's quite ugly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ECS Entities, components, systems, and events C-Feature A new feature, making something new possible C-Usability A targeted quality-of-life change that makes Bevy easier to use D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design-Doc This issue or PR is particularly complex, and needs an approved design doc before it can be merged
Projects
Status: Needs Design
Development

No branches or pull requests

2 participants