bevyengine / bevyengine/bevy

Unify Entity References

Open
#23,032 0 comments 4 reactions 0 assignees View on GitHub
A-ECS C-Goal X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## Goal Description

Bevy currently has many duplicate "entity reference" types, each with their own redundant implementations: EntityRef, EntityMut, EntityWorldMut, EntityWorldRef, EntityRefExcept, EntityMutExcept, FilteredEntityRef, FilteredEntityMut.

This is _a lot_ of redundant API surface. We should unify it as much as possible.

## 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**: No staffing SME
- **Working Group Link**: [link](https://discord.com/channels/691052431525675048/1308513055000498226)
- **Design Documents**: [Working Group Proposal](https://hackmd.io/@bevy/By4NcOYzkg)

Contributor guide

Open the contributing guide

Research direction

Start by reading the linked Working Group Proposal and reviewing the listed entity reference types: EntityRef, EntityMut, EntityWorldMut, EntityWorldRef, EntityRefExcept, EntityMutExcept, FilteredEntityRef, and FilteredEntityMut. Coordinate through the linked working group to establish the intended unification scope; done requires an agreed design and implementation that reduces the redundant API surface.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.