Classic Nintendo Games are NP-Hard
jeremykun.com
jeremykun.com
[1] http://www.cs.cmu.edu/~tom7/sigbovik/mariox.pdf [2] http://www.youtube.com/watch?v=HhGI-GqAK9c
An algorithm that is able to determine for every Zelda level, in polynomial time, whether or not the exit can be reached from the start is something quite different. As shown in this paper, this would imply that the same algorithm can solve every instance of every problem in NP efficiently, a.k.a. answer the million dollar question.
A cleaner way of stating the results of the paper would be: "The puzzle mechanics of Zelda are NPC". This statement is harder to misread, though I wouldn't hold my breath given the extreme illiteracy concerning theoretical computer science prevalent even among programmers with a degree, never mind the internet.
As he concluded, "they couldn't solve an interesting problem, so they solved an uninteresting one instead."
And from a certain stance, these fabricated problems do hold a bit of interest, especially when you consider how many mathematicians go out of their way to be impractical. Referencing the games confuses their work more than anything else, though.
How do you plan to encode arbitrary graphs? This poses a challenge for 2d platformers. In case of any 2d game, how do you encode non-planar graphs? You would need some kind of teleportation device.
A graph with few edges and large edge values will also be problematic if you plan on keeping your input size polynomial (in |V| and |E|), as you'd need a widget capable of encoding an arbitrarily long edge in constant map space.
Once you have solved all the above problems, feel free to write a paper about it ;).
IIRC, it's trivial that to "solve" Zelda Polynomial time (with an emulator) -- the entire state space of the console can be represented in constant space, so a trivial algorithm would be to traverse the state space tree with breadth-first search.
One of the last bosses in Zelda is an interesting example. It starts as a dragon with three heads. One which is only killable by fire, the other by ice, the last one is invincible but tries to bite you. When the outer heads are dead the third head transforms to a fast moving snake which you have to hit at a specific point to damage. Each time you hit it it gets faster. Now, if you die something interesting happens: The next snake will start slower i.e. easier, so players should be able to kill more parts of it. This repeats itself every time you die. I noticed this when my mother (who loves Nintendo games, but isn't a really good player) died 20 times or so at the snake. Every time it was a bit slower and every time she was like "Well I did manage to kill one more part. THIS time I kill it!" and ran in again. In the end she killed the boss and was happy.
It's an interesting read. Not too mathy. They make clause gadgets in the same way as the example here for Super Mario Brothers and use that to prove things.
Edit: Realized the author of this book is actually one of the authors of this paper. So, yeah, if you found this article/paper interesting be sure to pick up the book.