Move main game loop into GameState class