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

Automatic parallel System execution #8

Open
louisponet opened this issue Apr 30, 2021 · 2 comments
Open

Automatic parallel System execution #8

louisponet opened this issue Apr 30, 2021 · 2 comments

Comments

@louisponet
Copy link
Owner

One thing that may be achieved by having something along the lines of the current requested_components would be to do some basic reasoning which systems could run in parallel.

Questions

  • How to specify the exact sequence of Systems, i.e. the provenance needs to be carefully checked
  • System "blocks"? i.e. only systems inside one block are allowed to be run in parallel
  • explicitly linked Systems?
@c42f
Copy link
Contributor

c42f commented Apr 30, 2021

This is interesting, but tricky I think.

One thing I found in using Overseer is that sometimes you want to use some state which is stashed outside of the components (maybe carried around in a custom ledger). I'm not sure what I did was "right" in ECS-land, but certain state doesn't necessarily fit well into the ECS model and a hybrid can be useful. So it would be nice to have enough customization to deal with state outside of the entity list.

Also, what about deleting entities? Doesn't this implicitly cut across all components regardless of requested_components? Would systems which run in parallel be forbidden from deleting any entities?

@dumblob
Copy link

dumblob commented Sep 9, 2021

One thing I found in using Overseer is that sometimes you want to use some state which is stashed outside of the components (maybe carried around in a custom ledger). I'm not sure what I did was "right" in ECS-land, but certain state doesn't necessarily fit well into the ECS model and a hybrid can be useful.

Yes, exactly. That's the primary motivation of the synchronicity (ECS is strictly synchronous) & asynchronicity merger (it doesn't matter from the API standpoint whether it runs concurrently or in parallel).

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

No branches or pull requests

3 participants