bevyengine / bevyengine/bevy

Sharing `Events<T>` between `World`s

Open
#3,816 5 comments 2 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?

There are many cases where `World`s need to share `Events`.
Examples:
- sending events to another world to process them, then recover the result
- sending events across network ( from @alice-i-cecile )

## Proposed solutions

### Solution 1
Add `Clone` trait to `Events`.

Pros:
- Easy to implement

Cons:
- Cloned resource won't send events properly

### Solution 2
Use some sort of MPSC to send & receive events with thread-safety.

Pros:
- Easy to implement

Cons:
- Would need to be implemented in `Events` or would require a custom `ThreadSafeEvents`
- Has low performance

Contributor guide

Open the contributing guide

Research direction

The issue names no file, test, or entry point. First resolve whether Events should be cloned or transferred through an MPSC, then define the chosen scope; done means events can be sent between Worlds and the result recovered, including the network case if it is included.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems, game-dev
Issue type
Feature
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.