Updated game loop