Expose ECS system stepping over the Bevy Remote Protocol - #25826
Conversation
f4d9a70 to
cfa81c7
Compare
|
Once #25239 is merged, it would be good to support it as well (not blocking, just for reference) |
| pub const BRP_SCHEDULE_GRAPH: &str = "schedule.graph"; | ||
|
|
||
| /// The method path for a `stepping.status` request. | ||
| #[cfg(feature = "bevy_debug_stepping")] |
There was a problem hiding this comment.
I think it's worth splitting this out to a different file and gating that file. To be honest this file is too big anyways
alice-i-cecile
left a comment
There was a problem hiding this comment.
Plenty of glue, but this is extremely valuable to expose to debugging tools over BRP. LGTM, although I intend to merge the system set stepping work first and will want this to be rebased on top of it.
Yea agreed, and fine with me - this will form a lot of our debugging and visual tooling around systems in general |
1cc28c3 to
9e11668
Compare
9e11668 to
935ff61
Compare
e1a091a to
f86e54a
Compare
|
Ping me when CI is green to get this in <3 |
seems to be failing due to a syn upgrade? might have to just rebase |
|
all green @alice-i-cecile :) |
Objective
Part of #23013.
The system stepper can only be driven from inside the app. Remote tooling has no way to pause a running game and step it.
This pauses the ECS simulation, not the clock. Render and remote schedules keep running so the world stays inspectable.
Solution
Five instant methods on the main world, all returning the same status object
stepping.statusreports whether stepping is on, the added schedules, and the cursor positionstepping.enableandstepping.disablestepping.step_frameandstepping.continue_frameThe cursor is resolved to a schedule label and system name. Labels use the same format as
schedule.list.Gated behind a
bevy_debug_steppingfeature onbevy_remote, folded into the engine feature of the same name. Status on a world with no stepper returns a disabled response. The mutating methods return an error.Breakpoints and always run and never run controls are left for a follow up.
AI disclosure
AI assistance was used to help port these changes and to plan this upstream series from our existing Jackdaw functionality. All changes were reviewed by a human before submission.