Maybe this is something that should go into game_loop directly...