in game_iterator, sleep until next frame *OR UPDATE*
change tail recursion to explicit loop
remove PrepareUpdateLoopState; change asserts to if