we always talk about separating game logic from visualization. here's how i like to think of the different architecture layers in a game