Games have a different architecture and control flow than apps. Both seem to respond to user input instantly, but while an app does this by setting listeners and reacting to events with method calls (most commonly the
onClick method calls the
OnClickListener), this approach is not valid for a real-time game (although it is valid for non-real-time games).
Once a game is running, it must evaluate and update everything as fast as possible. This is the reason why it cannot be interrupted by user events. Those events or states should be recorded instead and then read by the game objects during its update.
The game engine should be created inside the fragment that runs the game, because we only need the game engine running while we are ...