My group in school is tasked with creating an application of our own choosing which follows good object oriented design principles. The group has chosen to make a tower defense game with help of libGDX (a Java game framework) and we are currently debating whether the update loop of the game (code that is executed each frame) should be implemented in the controller with libGDX pre-existing functionality or in the model itself in the form of a custom update loop.
Is there anything that clearly goes against the model being able to update itself? Some in our group argue that having the model being updated by the controller makes it too dependent on a specific controller, while some argue that having the update loop inside the model narrows the possible usage of the model to only being used by views and controls that works correctly with the high update frequency of the model state.