For instance, if I had an RPG that had a questing system, would it be the game controller that manages that?
It would not be the game controller, it would be a game controller.
A controller is a class which notices when it's time to do something and then makes that happen. In the context of game development, each controller is usually responsible for one game feature. This is called the single responsibility principle. If you try to squeeze every single feature of your game into one controller, you will end up with a huge god object. In a very simple game you might get away with that, which is why many of the basic Unity tutorials follow that pattern. But if your game is more complex, then your controller-class will become so huge that it will be completely unmaintainable.
The controller for your quest system would be the QuestController
. Its Update
-method would check if the success-condition or failure-condition of any quest is met and when that is the case trigger whatever is supposed to happen in that situation.
When you delve deeper into Unity, you will encounter some controllers which are provided by the Unity engine itself and dedicated to specific engine features, like the AnimationController
or the CharacterController
.
Is it everything that doesn't involve user input?
User-input would actually also be handled by a controller, which most people usually name InputController
or PlayerController
.