break game loop into discrete steps