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

Allow components and resources to be defined at run-time #318

Closed
RiscadoA opened this issue Feb 22, 2023 · 3 comments
Closed

Allow components and resources to be defined at run-time #318

RiscadoA opened this issue Feb 22, 2023 · 3 comments

Comments

@RiscadoA
Copy link
Member

RiscadoA commented Feb 22, 2023

Blocked by #415.

Currently components and resources must be defined as C++ types.
This is a problem if we want to define components or resources in scripts, which are only known at run-time.

To change this we need to make the ECS completely untyped, making component storages store memory blobs, for example.

@RiscadoA RiscadoA added this to the Core: ECS 1 milestone May 3, 2023
@RiscadoA
Copy link
Member Author

Making the ECS type-erased could speed up compilation quite a bit and make it way easier to understand - the current code has tons of templates to make up for bad design.

@RiscadoA
Copy link
Member Author

RiscadoA commented May 26, 2023

I think it would also be cool to end global registration of components altogether: #378 has become a problem anyway.
This would make #300 impossible, but I think thats not a problem.
We would need to move the name definition to another place - I like cubos.addComponent<Position>("position");.

With that out of the way the only remaining thing for cubinhos to handle would be serialization function definition. We could generalize it to [[cubos::serializable]] instead of [[cubos::component]].

@RiscadoA RiscadoA modified the milestones: Core: ECS 1, Core: Reflection 1, Core: Reflection 2 Jun 20, 2023
@RiscadoA RiscadoA self-assigned this Jun 27, 2023
@RiscadoA RiscadoA modified the milestones: Core: Reflection 2, Jammable Engine Aug 27, 2023
@RiscadoA RiscadoA added A-Core B-Reflection S-Blocked Blocked on another issue or PR S-Triage Issues whose priority still has to be figured out S-Needs-Design Demands some time designing an implementation and removed core S-Triage Issues whose priority still has to be figured out labels Aug 28, 2023
@RiscadoA RiscadoA mentioned this issue Aug 29, 2023
13 tasks
@RiscadoA RiscadoA removed S-Needs-Design Demands some time designing an implementation S-Blocked Blocked on another issue or PR labels Oct 3, 2023
@RiscadoA
Copy link
Member Author

RiscadoA commented Oct 3, 2023

Closed in favor of #462

@RiscadoA RiscadoA closed this as not planned Won't fix, can't repro, duplicate, stale Oct 3, 2023
@RiscadoA RiscadoA removed this from the 0.1 Jammable Engine milestone Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants