bevyengine / bevyengine/bevy

Fast and Flexible Change Detection

Open
#23,152 1 comment 2 reactions 2 assignees Claimed by @cart View on GitHub
A-ECS C-Goal S-Needs-Design-Doc X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## Goal Description

Bevy's component change detection is always on for all components, some of which may not need it, and is too slow for some critical systems that do, like rendering and physics simulations. In particular, iterating a query with a `Changed` filter requires a "table scan" that checks every entity in the query one-by-one. Change detection should be opt-in, configurable on a per-component basis, and flexible enough to adapt to different performance requirements.

## Goal Status

This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.

- **Staffing SMEs**: @alice-i-cecile, @cart
- **Working Group Link**: [Link](https://discord.com/channels/691052431525675048/1479222830120828958)
- **Design Documents**: Design documents not yet written

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.