Skip to main content
1 of 2
James
  • 3.9k
  • 1
  • 21
  • 21

I'm would actually have to say, despite proposing edits to focus on your train of thought, that looking into a true component design may help your design concerns. At the end of the day a component system breaks objects up into their specific collections of functionality. For example, you would make a component that handles the position of an object within the world. It would contain the data needed to represent that and then the component interface for a movement typed component would expose an Update() to handle movement updates over time, an other methods to kick off the movement processed by the update call like MoveTo(), TeleportTo(), RotateTo() and RotateBy() as examples.

This would make the answer be 'The object moves itself' I suppose, but it should be noted that the component design breaks the objects apart into their discrete functionality areas, otherwise known as, components. This has some added benefits, the one I like the most is maintenance (objects expand horizontally instead of vertically) followed by extensibility (you can often create entirely new objects by defining them instead of adding additional new components).

Hope this helps.

James
  • 3.9k
  • 1
  • 21
  • 21