game loop extended