Alabaster, Release 4

Alabaster is now on release 4 6. Thanks to everyone who’s played so far; I’ve already learned a great deal. (And I am really enjoying seeing the game develop in ways I hadn’t anticipated.)

I’ve made a few edits to the source code submitted to me, and the most major of these are annotated with comments, so if you hit something surprising in your own code, and think, “hey! …what goes on?”, you can check out why. Almost all of these were edits to the generated source to make it run more smoothly, but one or two were introduced for consistency between the submitted material. Check out the source for specifics.

Besides incorporating new conversation by several contributors, this release makes improvements to the core system or the rest of the game, based on tester feedback, as follow:

  • TOPICS is now a synonym for the existing (but undocumented) CHANGE THE SUBJECT feature, and will list other possible discussion topics besides the ones that are currently being recommended to the player.
  • Minor refinements now mean that if you type ASK ABOUT (something unimplemented) instead of ASK SNOW WHITE ABOUT (something unimplemented), the game will construct a questioning quip (as it should) rather than a performative quip (as it used to). The same applies to telling. This is unlikely to be interesting to anyone but me, but it counts as an improvement towards the later release.
  • Restarting the game no longer wipes out what you’ve stored in NewConversation.glkdata. (I apologize for this. I tried to set this up for the original release — and thought I had succeeded — so it came as a surprise to me that that was not the case.)
  • It is now possible to use facts from the collaborator interface. (More about this below, as it is the improvement that needs the most explanation.)
  • Some questions are asked more clearly in the collaborator interface; in particular, the system will now let you know if the “immediately after the previous quip” is necessary because the previous quip restricts follow-ups.
  • Line breaking in the collaborator interface gives a little more space than before.
  • CUT [something] WITH [something] is supported. (As it really should have been all along.)

Re. facts: A “fact”, from the point of view of my conversation system, is a value that represents some piece of information that the player could come across in any of a number of ways, through conversation but also anywhere in the world. Merely saying the name of the fact makes the player know that fact; so, for instance, the following source will set the player to know that the box lid has symbols on it:

The description of the heart-sized box is “It is made of deep black wood, with a sequence of symbols[symbols-seen] burned across the top. You have no idea what they do. Your part is only to bring it back full.”

Similarly, if you want to set a fact to known when writing conversation, you need only add it in brackets (as shown). You will also be prompted with a question during dialogue-creation that allows you to add facts as prerequisites for your new dialogue. (This may mean you want to invent new facts on the fly that aren’t already in the game. That’s fine — I can splice this stuff in when I get it.)

If at some point you just want to review the list of facts currently tracked in the game, type REVIEW FACTS for a table of them.

A Halloween Experiment

One of the things I am hoping my conversation system will facilitate is a collaborative approach to projects, in which one person is in charge of managing the code while others contribute content. To that end, I’ve put together a little collaborative authorship experiment.

I’ve written the beginnings of a one-scene, one-NPC game. (Best to keep this simple to start with.) You’re invited to play with it (and look at the source code, if you want). It’s part Snow White, part Halloween story. (Check here for the latest posts on this project.)

If you come to a point in the conversation where you want to say something but your chosen dialogue is not implemented, the system will invite you to write your own dialogue, and will ask you some questions about how that dialogue should fit into the existing scene. It will generate the appropriate source code and store it in a file called NewConversation.glkdata, in the same directory with your game file. If you email that to me, I’ll compile it into the game and release a new version (and add you to the author list). My theory is to do this for about a week (until Nov. 3), then stop accepting new entries, put in some endings based on the conversation directions that emerged. (Though probably I won’t do that Nov. 4. I expect to spend election day obsessively refreshing CNN, and I’d be lying if I claimed otherwise.)

I’ll also welcome any feedback about how well the system works and/or how confusing you find it to use.

It may be that this doesn’t prove very interesting to people, but that would also be useful feedback — if no one wants to participate in projects like this, then at least I’ll know that supporting them isn’t a top priority!

Anyway, if you want to play along, the opening game is here. (It does require indexed text handling, so you will need a recent Glulx interpreter.)