Hi haegarr, thanks for your replys. It is replies like these that really help me learn and iterate my design...
a) When each system fetches components at update time
Ahh, so so by default, it will have to loop over every GameObject weather or not it has or needs to update the component or not. I guess this is were ECS comes in? Ensuring the entities are processed in an efficient way.
b) The fact that a game object has a TransformComponent instance means
That is true, I will probably split it to TransformComponent and PlacementComponent to make that obvious, thanks for that!
c) The player's game object is something special, of course.
I see, so the movement system should update anything with a TranasformComponent. Once I add some enemies I will need to workout where InputComponent and AiComponent fit into this.
A) There is a pool of game objects that should be added to the scene at the next opportunity.
This sounds good. So all of this should happen in a gameObjectManager.update() step? I think I will just implement the simple one then go from there.
B) Sub-systems need not be all at the same level.
I do not quite understand what you mean by this? So each loop, i would call PlayerControllerSystem.update() and AiAgentControllerSystem.update(), and they in turn would call the 'lower' MovementSystem.update()?