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

Invent a Component System #21

Closed
gorlak opened this issue Mar 6, 2013 · 0 comments
Closed

Invent a Component System #21

gorlak opened this issue Mar 6, 2013 · 0 comments
Assignees

Comments

@gorlak
Copy link
Member

gorlak commented Mar 6, 2013

It needs to support pool allocation and host game update logistics as well as tools-time content hosting and generation of game-side run data.

@aclysma
Copy link
Member

aclysma commented Mar 7, 2013

Pool allocation: Complete
Game update logistics: Complete
Tools-time content: The component system supports placing components on any type that implements IHasComponents and this interface can be used by the component to get whatever it needs (i.e. owning world, owning entity, owning entity proxy, etc.). These functions should be implemented in a best-effort way, i.e. it would be appropriate for World::GetOwningEntity() to return null. World-level components shouldn't use that function. At some point it would be nice to add some validation that components assuming they get put on an object of type X do not get put on an object of type Y, but as for being able to do tools-only components, the current implementation will function (and is already allowing us to have entity components and world components).
"Cooking" data - This is the asset system's responsibility. Components can consume any data provided by the asset, so this is essentially ready to go. Although we may want to look closer at how assets should be allowed to cook data.

The whole system will get minor improvements as time goes on, but it already meets all the requirements above, except the final one which in my opinion is an asset issue rather than a component issue. Let me know if you feel that one or more of these issues is not sufficiently addressed by the current design/implementation.

@aclysma aclysma closed this as completed Mar 7, 2013
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

2 participants