The way I chose to structure my project is putting Player's scene outside of Map's scene, and I have a main node called "Game" that glue all together. But sometimes the Map node need some information about the player, like position, velocity, etc. and for this, I created a Singleton_called Player_ that stores the player instance and other pertinent information (like MAX_SPEED, ACCELERATION, etc.). Constant/enums variables isn't a big deal to have in global scope, right? But having a global variable to point for Player's instance breaks OOP good practices. How can I manage to have access to player object without using global variables?
A real example: all the enemies instances are inside Map's scene, these enemies need to know where the player is located all the time, and for this, they are using the Player's singleton to get information about the player.