Encode a QBF as a game graph. ∃-moves and ∀-moves alternate.
Sipser §8.3, Theorem 8.11: TQBF ≤p GG. Given a TQBF₃ instance, build a graph G whose Geography game has Player 1 winning iff the QBF is true.
Variable gadgets (one per xi): a small diamond with two outgoing branches labeled "xi = T" and "xi = F." For ∃-quantified xi, the token arrives at a player-1-controlled node; for ∀-quantified xi, at a player-2-controlled node. The current mover picks the branch — encoding that player's choice of truth value.
Sequencing: after the xn variable gadget, the path leads to the clause-selection node.
Clause selection (player 2's last move): player 2 chooses a clause C and forces the token there. Inside C's sub-gadget, player 1 chooses a literal; the literal connects to the previously-chosen-true side of its variable gadget. If that literal is false under the chosen assignment, the connection leads to an already-visited vertex — player 1 has no move and loses. If true, player 1 escapes and the game continues to player 1's win.
So Player 1 wins ⇔ for every clause player 2 could pick, there's a true literal player 1 can use ⇔ every clause has a true literal under the QBF assignment ⇔ the QBF is true.
Graph size: O(n) for variable gadgets, O(m) for clauses, O(nm) for literal-to-variable connections. Polynomial.
Sipser: Theorem 8.11, Figure 8.13. Lecture notes: Module 6 slide 3. Companion problems: P36 (TQBF), P38 (geography), P40 (chess hardness).