bevyengine / bevyengine/bevy

Introduce an `app::run_system_set()` function

Open
#12,717 3 comments 0 reactions 0 assignees View on GitHub
A-ECS C-Feature
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?

For testing or benchmarking purposes, I would like to run a bunch of systems of my App that are all in the same SystemSet.
Bevy currently provides a function `app.run_schedule(schedule)` and `app.run_system()` (for registered one-shot systems) but there is no helper to run an entire system set.

## What solution would you like?

Have an api `app.run_system_set(schedule_name, system_set_name)` which runs all the systems inside a SystemSet once.

## What alternative(s) have you considered?

I could try to put all those systems in a separate Schedule, but:
- from what I understand, two schedules cannot run in parallel, and I would like those systems to run in parallel with other `PostUpdate` systems
- it would be a big refactoring of my app to just gain some testing capabilities

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing app.run_schedule(schedule) and app.run_system() entry points and the issue's requested app.run_system_set(schedule_name, system_set_name) API. Trace how schedules and SystemSets are executed, then define completion as running every system in the named set once while preserving the requested scheduling behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.