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

Partial implementation of the ECS #2

Merged
merged 5 commits into from
Jul 29, 2021
Merged

Partial implementation of the ECS #2

merged 5 commits into from
Jul 29, 2021

Conversation

SmnTin
Copy link
Member

@SmnTin SmnTin commented Jul 29, 2021

Currently implemented features:

  • Storage, MutStorage, Component and System C++20 concepts to conveniently verify classes conformance to the rules.
  • A System can easily request arbitrary resource by simply listing a reference in the argument list of the update() method. It then automatically created and injected by the Dispatcher.
  • Component's storage is a resource too! It can be easily accessed by possibly-const SomeComponent::Storage &.
  • Components' storages can be efficiently joined via ecs::join() to iterate over entities that have all the specified components.
  • While joining you can exclude entities that have certain component.
  • And everything is implemented without a single virtual function using modern C++20 template programming.

@SmnTin SmnTin merged commit 5856f2b into master Jul 29, 2021
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

Successfully merging this pull request may close these issues.

1 participant