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

Create an ECS #5

Open
10 of 22 tasks
foodelevator opened this issue Mar 13, 2022 · 0 comments
Open
10 of 22 tasks

Create an ECS #5

foodelevator opened this issue Mar 13, 2022 · 0 comments
Assignees
Labels
ECS🏴󠁥󠁣󠁳󠁿 Relatet to the Entity Compnent System Enhancement🚀 New feature or request Game Engine👨‍💻 This is related to the Game Engiene

Comments

@foodelevator
Copy link
Collaborator

foodelevator commented Mar 13, 2022

The plan is to create an ECS which will be used to store all entities and their components. Creating systems in the ECS will also be the main way for game scripts to interact with the game world.

1. Features that should be implemented before merging anything into main

  • Keep track of entities
  • Store components
  • Query for (multiple) components
  • Iterate over all entities matching a query
  • Resources

2. Features that should be added soon after

  • Some way of getting access to components in a type safe way from Rust.
  • Optionally get handle to Entity with query
  • Add a way to create and despawn entities while a query is active
  • Add a way to loop through entities twice, as in a nested for-loop. (mutably)

3. Features that would be nice to add later on

  • Add support for optionally querying for components.
  • Add introspection to allow the IDE to edit components.
  • Manage Child & Parent relationship
  • Manage Local & Global position
  • Add support for filtering queries, so that you can have two mutable queries at the same time for a component if the queries are known to not give access to the same entity.
  • Registering systems with required queries
  • Scheduling systems (including multi-threading)
  • Integration with scripting language
  • Add change detection
  • Events
  • Optimize Entities
  • Add different data structures for storing components
  • Optimize stuff
@foodelevator foodelevator self-assigned this Mar 13, 2022
@foodelevator foodelevator added Enhancement🚀 New feature or request Game Engine👨‍💻 This is related to the Game Engiene labels Mar 14, 2022
@ollisco ollisco added the ECS🏴󠁥󠁣󠁳󠁿 Relatet to the Entity Compnent System label Mar 15, 2022
This was referenced Mar 15, 2022
@foodelevator foodelevator linked a pull request Mar 18, 2022 that will close this issue
5 tasks
@foodelevator foodelevator removed a link to a pull request Mar 18, 2022
5 tasks
@foodelevator foodelevator mentioned this issue Apr 18, 2022
2 tasks
@foodelevator foodelevator mentioned this issue May 4, 2022
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ECS🏴󠁥󠁣󠁳󠁿 Relatet to the Entity Compnent System Enhancement🚀 New feature or request Game Engine👨‍💻 This is related to the Game Engiene
Projects
None yet
Development

No branches or pull requests

2 participants