add recursive update, depth-first, and breadth-first traversal to GameState tree