The first thing we should implement for the Core of the game is GameStates and a GameStateManager. Each GameState should act as a scene object and house everything that State will need. The games can be broken up into different states (MainMenu, Pause Menu, Options, Gameplay, GameOver, etc) and can be stacked on top of each other (so you can always leave a state loaded in memory or draw states over one another like a Pause Menu).
This decouples the game from the engine even more as the engine only needs to know about the first game state.
The first thing we should implement for the Core of the game is GameStates and a GameStateManager. Each GameState should act as a scene object and house everything that State will need. The games can be broken up into different states (MainMenu, Pause Menu, Options, Gameplay, GameOver, etc) and can be stacked on top of each other (so you can always leave a state loaded in memory or draw states over one another like a Pause Menu).
This decouples the game from the engine even more as the engine only needs to know about the first game state.