bevyengine / bevyengine/bevy

Being able to visualize the exact schedule order being used

Open
#18,310 0 comments 0 reactions 0 assignees View on GitHub
A-Dev-Tools A-ECS C-Feature C-Usability D-Complex S-Needs-Design X-Uncontroversial
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

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

We currently have some tools to debug system-ambiguities:
- printing system ambiguities
- bevy_mod_debugdump

Those tools can mostly list the systems/sets that are ambiguous with each other, but they won't tell you the exact order that the Schedule is using. The Schedule is created once at app start so the order (`schedule.topsort()`) is fixed.

Often when I'm debugging something, I notice that I have a bug that is system-order dependant (for example 50% of the time my app breaks, and 50% of the time it works). In this case it would be very useful if I could actually print the **exact system order** that is used so I can compare the difference between the cases where my app breaks and the cases where it works.

## What solution would you like?

It could be as some UI in the editor, or it could be a public method on Schedule that prints out the ordered list of systems (maybe via `topsort()`). Currently the schedule just outputs NodeId so we would have to map them back to system name or set name.

Contributor guide

Open the contributing guide

Research direction

Start by reading the Schedule and its topsort() behavior, then trace how NodeId values are currently produced and where system or set names are available. The work is done when users can inspect the exact scheduled order with meaningful system or set names, either through a public Schedule method or an editor UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.