The notional problem is this: say I want to write a blog post, talking about how I dealt with a particular IF design problem. I want to show off a piece of my game – one scene, with a few different possible playing paths.
This demo is a few moves from the beginning of Adventure, with three possible paths (one of which is a small variation), and extra annotations in the right column. The left column is links to flip between the paths.
Obviously this was a very simple piece of Javascript. The hard problem is writing a tool to parse several transcripts and generate this Javascript structure. But, one step at a time – I’d like to know if you think this is a useful format for critical discussion of IF.
The HTML has to be precisely set up – doing it by hand isn’t practical.
As I said, I’d like to start with transcripts, which are an easily-generatable currency of all IF systems. However, inferring a branched tree structure from a set of transcripts is not a trivial problem. (In fact it’s a directed acyclic graph, not a tree.)
Once you have the graph, however, generating the HTML is pretty trivial.
I was thinking about that, but the skein isn’t a DAG. (In my example, the commands “get keys” and “get all” are a branch, but they merge right back together – for the purpose of the example.)
Parsing transcripts and generating a skein-like tree is quite easy, so I don’t think there’s any advantage in starting with the skein itself. And I do think this tool needs to be platform-agnostic.
I think this is an excellent idea. As usual, I have a thought…
What if the left-hand side was a list of all of the future commands on path 1 (first transcript). Where there are forks, the commands would be highlighted somehow. You’d retain previous commands as well.
If the user clicks into a fork (transcript n), the list is rewritten downward with the future of transcript n. The previous commands remain the same.
I would also allow a limit, in the tooling automation, on how many previous commands are displayed.
The tool should allow any html in the right column, including images, links to external documents, etc.
Not sure what you’re getting at. The list of future commands in the current transcript can be read from the transcript; it’s what’s in front of you. And commands in isolation don’t tell you anything about what the game experience is like. The forks are what’s interesting; that’s why I gave them descriptive labels.
Anyhow, I’ve implemented what I originally described. Well, a very simple version, anyway.
There are a couple more examples on that web page, and the Python script I used to generate them. It’s not entirely bug-free, but it’s usable. If you want to upgrade it, go nuts.