I have several questions:
In a lot of (official and professional) tutorials, the game-manager script manage the objects of the game and also the other objects knows the game-manager. is it not circular dependency and wrong programing architecture?
Another thing that I can't figure out, how to decide where to put each script/behavior? for example, if there is some gift that the player can collect, where (and why) I need to put the code that detect the collision and performs what needs to be done? are there some rules that can help me to decide?
What is the best practice to produce communication between objects and scripts? (A way in which not all objects know everyone)