Disclaimer: this one isn't a review, but rather some designer's notes on Alabaster, a new interactive fiction project.
For a couple of years now I've been working on a tool to make it easier for me -- and other IF authors who use Inform -- to construct compelling conversations that don't feel like clippings from the Dialogue Tree.
Here are some things I hate about typical dialogue trees:
1. They're static. Every time you want to have a conversation with someone and re-ask some question, you have to go back through all the same steps as last time.
2. They're repetitive. The content usually doesn't change much.
3. They're player-driven. The player says something, the NPC reacts. While that's fine most of the time, it produces the sense of a pretty dull character on the other side. The NPC never moves the conversation in a direction of his choosing.
4. They're modal. There's no context for the NPC to react to behavior that occurs in front of him, because we're not in Talking Mode. When we're in Talking Mode, we can't do anything else.
Now, not all of that is true about every dialogue tree, and lots of games manage to get around at least some of these problems, but overall I prefer a completely different approach to structuring conversation that produces a sense of context, both emotional and topical, and that makes an NPC with an agenda as easy to implement as one who just stands there answering an encyclopedia-worth of trivia questions.
The technical aspect of the problem is just part of the fight, though. The other half of the problem is a problem of content generation: a big conversation needs lots and lots of writing. And lots. Not only that, but you code in the ways that each piece of dialogue relates to all the other pieces, and that tends to turn into very dull, fiddly scripting work. Boring to do, painful to debug, and simply way more work than most IF authors want to deal with.
I've tried various ways around that. For one of my previous games I had a perl script that converted something like a branching screenplay into actual code. But it was still awkward, and it still took a lot of hand-modification.
What I really wanted was something that would make conversation coding more like a natural process -- like sculpting. Not sculpting in marble, but sculpting in clay, where you keep adding new little bits onto the surface. (Maybe you can tell from my description that I haven't sculpted anything in clay since 7th grade.)
What I wanted was to be able to play my game and then write in new dialogue that would go exactly at whatever point I'd arrived at in the story.
Alabaster is an experiment with that system. October of last year I distributed a short game with just a hook. You're the huntsman. You're out in the woods with Snow White. The Queen has told you to bring her heart back in a box. You've got a plan for tricking her... only Snow White seems like she might be bad news herself. What do you do?
Over the next few days, other IF authors played this game and, whenever they came to a spot in the game that needed something, they added their own elements to the conversation. Some contributed just a couple of exchanges, other whole major plot branches. They mailed in the generated source and I added it to our compilation. Different collaborators had different ideas about what Snow White really was -- but that actually suited (in my opinion) the ambiguous feeling we were going for in the early phases of the game.
After about a week of this, I closed the collaboration stage and started editing the results into some kind of finished shape with actual endings (eighteen, in the end). Daniel Allington-Krzysztofiak came aboard to provide illustrations, introducing another layer of ideas about just how we imagined the princess.
The result is an odd little fairy tale, light on puzzles, about relationships and identity and a few elements that I really never anticipated.
What will you think of it? I don't know.
N.B.: Like most interactive fiction, Alabaster requires an interpreter to play. We link to several above for different operating systems. Even if you already have a Glulx interpreter for the Mac or Windows, you may want to download the latest, since the ones linked above are optimized to play Alabaster at the best possible speed.