really? 1.1 seconds to traverse the graph once?
Well, keep in mind that we're not just "traversing the graph." At each scene, we need to:
1. Read the state in from disk.
2. Apply any state changes to it.
3. Render the template for the page, including choices.
4. If the image is generated rather than static, generate the image (spoiler alert!).
5. Write the state back out to disk.
We could skip #1, I guess, but we can't skip #5, because having the trace of moves and state is very helpful for debugging. We can't skip #3, because that's essential for debugging the page text (and templates can have errors that only show up in particular states).
One of the other functions of the playthrough 'bot is to get test coverage on the code as it is run in the real-life system, so I try to minimize the number of special magical things that the playthrough 'bot does that the regular website does not.
Yes, there are potential optimizations to how the state is handled besides reading the whole thing in and writing it out, but that would require some pretty smart code, and the possibility for very hard-to-find bugs there is pretty high.