Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement an efficient ECS #10

Open
jidoc01 opened this issue Jul 10, 2023 · 2 comments · May be fixed by #12
Open

Implement an efficient ECS #10

jidoc01 opened this issue Jul 10, 2023 · 2 comments · May be fixed by #12
Assignees
Labels
enhancement New feature or request

Comments

@jidoc01
Copy link
Owner

jidoc01 commented Jul 10, 2023

Currently, our ECS is poorly implemented: no parallelism, no systems (handlers), and no cache efficiency. That is because what I wanted was just to imitate a data-oriented structure on a large scale (e.g. an entity with multiple components being added or removed).

Instead of inventing the wheel, we can make use of the existing ECS libraries in rust:

Especially, bevy is actively in development, and a popular rust-written Minecraft server uses it (https://github.com/valence-rs/valence). It would be a decent choice to apply bevy to our project.

@jidoc01 jidoc01 added the enhancement New feature or request label Jul 10, 2023
@jidoc01 jidoc01 self-assigned this Jul 10, 2023
@jidoc01 jidoc01 linked a pull request Mar 8, 2024 that will close this issue
@jidoc01 jidoc01 linked a pull request Mar 8, 2024 that will close this issue
@jidoc01
Copy link
Owner Author

jidoc01 commented Mar 8, 2024

I have recently found a new ecs library, evenio (https://github.com/rj00a/evenio). This library seems to be introduced by one of the maintainers of valence-rs.

One of the key ideas in evenio is that it is based on an event mechanism that provides event-handling even for each entity, whereas bevy does not. And the other benefits of using bevy, such as parallelism with rayon and efficient querying system, are still supported in the library. The library is relatively immature compared to bevy but I like the ideas of it.

@jidoc01
Copy link
Owner Author

jidoc01 commented Jun 3, 2024

Our ECS engine is currently built on evenio, and we may refer to the rewriting process of valence-rs: valence-rs/valence#596

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant