Planet Interactive Fiction

July 02, 2009

The Monk's Brew

The End of Prohibition (Sort Of)

by Rubes (noreply@blogger.com) at July 02, 2009 06:51 PM

On a completely unrelated topic...

Just wanted to take a moment to recognize that July 1st marks a new cultural era in the state of Utah. Those of you familiar with Utah know that this place has long been known (and ridiculed) for its arcane and often bizarre alcohol laws. I should emphasize the word "arcane," in the sense of, "understood by few." I have lived in this state for 12 years, and to this day I'm not sure I understand half of the laws regarding the purchase and serving of alcohol in public establishments. Trying to explain these laws to out-of-state visitors was always frustrating, and usually ended with something like, "I'm not sure anyone really knows."

The most well-known and understood of these was the "private club" law. Establishments whose receipts due to alcohol were greater than a certain percentage compared to food (not sure what it was...maybe 50%) were forced to become "private clubs" and charge membership fees at the door. Usually it was along the lines of $5, and the membership was good for three weeks or so. Technically, you couldn't just walk in and purchase a membership, you had to be "sponsored" by a current member who could vouch for you. In practice, however, that didn't seem to happen very often.

That was perhaps the most straightforward of them. There was also the one about the "Zion curtain," a barrier that had to be placed in eating establishments between the bar area and the dining tables to shield the sensitive diners from the sinful goings-on behind the bar, although it seemed like not all places had one. And I never could figure out the laws governing what types of alcohol were allowed in non-private clubs, or some of the bizarre laws regarding the serving of alcohol (like, in some cases, bartenders being unable to directly deliver drinks to patrons at the bar, instead having to go through a server intermediary). One longtime bar owner in Salt Lake City likened the private-club era to "living behind the Iron Curtain." It was enough to make you not want to bother, which I suppose might have been the point.

But now, all of that is gone. Well, at least most of it.

I would postulate that three events likely contributed to the repealing of our arcane liquor laws. The first was probably the 2002 Winter Olympics, which brought a huge number of people into the state for their first visit. My guess is that, once outsiders realized how special this place really is, many of them wanted to return often, or even stay for good. So that likely contributed to a large influx of tourists and new residents over the subsequent years, which helped to raise public awareness of the eccentricity of the alcohol laws.

The second contributing event was probably the election of our now-departing Governor, Jon Huntsman. Huntsman recognized the public embarrassment of these laws and the likely impact they were having lately on tourism. He made it a goal of his to address the state's alcohol laws, which normally would be considered political suicide here. But Huntsman knew he was only going to serve two terms at the most, and then move on to a presidential run or, as it turns out, an important diplomatic position, so it was worth the shot. And he held true to his word.

The final contributing event, some would argue, is the recent death of former LDS President Gordon B. Hinckley. I'm not LDS myself, so I can't say I know much about the man, but it was fairly well publicized that he was against any loosening of Utah's liquor laws. In fact, another longtime Salt Lake bar owner recalled speaking to LDS Church lobbyists and being told that as long as Hinckley was alive, the state "would never get rid of private clubs." (Some might wonder why this is relevant given the whole separation of church and state thing here in America, but we Utahns stopped wondering about that a long time ago.) Now, just 18 months after Hinckley's passing, what was once unthinkable here in Utah has now come to pass.

That's not to say all of the weirdness has gone. Yes, we can now walk into an establishment and order a drink of any kind without buying a membership or, at least in some places, without also buying food. Things are now much simpler, and more normal. I can get regular (non-3.2%) beer at any bar, and I can get my drink right from the bartender, with no server needed.

Still, establishments are now broken down into three groups: restaurants, dining clubs, and social clubs. A lot of the distinction has to do with how minors are dealt with, the percentage of receipts for food, and the way some alcohol is handled. Restaurants now must have at least 70% of revenue from food, and restaurant diners must order food with any drinks. Then there are some weird things, like restaurant diners may not wander from one table to another with a drink in their hand. Plus, remnants of the "Zion Curtain" remain: new restaurants (current ones are grandfathered in) cannot have a "bar", and if any drink mixing is to be done, it must be in a secluded room or behind an 8-foot high wall, so that sensitive diners can't see it actually happening.

So we're not completely rid of the craziness, but for the most part, we've embraced normalcy.

To quote Morpheus from "The Matrix": Welcome...to the real world.

Brass Lantern

brasslantern: Bought Gobliiins 4 via Impulse or Gamer's Gate? You get Gobliiins 1-3 free! http://www.scummvm.org/presssnowberry

July 02, 2009 02:00 PM

brasslantern: Bought Gobliiins 4 via Impulse or Gamer's Gate? You get Gobliiins 1-3 free! http://www.scummvm.org/presssnowberry

July 01, 2009

The Monk's Brew

The End of June Vespers Thing

by Rubes (noreply@blogger.com) at July 01, 2009 04:36 PM

Hard to believe June has completely come and gone already. We're now halfway through 2009. To be honest, by this point I was hoping for more with this project -- a completed Vespers demo, more frequent blogs, maybe my own television series. Really, you'd think by now I'd know better than that, since I seem to say the same thing about every six months. I'm not that bothered, though. Earlier this month the wife and I were having dinner with some friends when the topic of the neverending game came up, and one of them was struck by how much passion I seemed to have for the project, having stuck with it so persistently for so long. She understood and acknowledged that it must be more about the process than the product. Although I knew this already, it still had an impact hearing it from someone else. It was nice.

Vespers continues to march inexorably toward its inevitable, yet completely unforeseeable, release.

Most development now is proceeding on three fronts: models, animations, and the vast pile of miscellaneous extras such as bug fixes, parser refinement, a web site, company logo, and so on.

As far as the models are concerned, we've advanced beyond the basic models needed for Day One of the game and are now working on the good stuff that isn't seen until Day Two and beyond. Since the planned demo is to contain action only from Day One, that means we're really now working on material for the final release. I find this exciting, although mixed with some unease since it means I have to actually finish the demo and get it out there or else nobody will ever see this new material.

It also means I have to tread a bit lightly, since I am now at risk of giving away spoilers.

The most interesting model work for Day Two so far has been in the infirmary and the stables, which are really starting to come together. The infirmary work by N.R. is especially nice. I wish I could show it all put together, but I'm not quite there yet. It's too interesting to pass on, though, so I can at least offer a glimpse of one of his updated bed textures. His texture work is really quite excellent.

The new bed textures portend ominous things.


The stables are also looking fantastic, although there is still a bit of detail work to do on it, and we don't have any horse models ready yet. But I do think N.R. did some amazing work on the damaged stall doors and the hay, and I think it nicely sets the scene for the action that occurs there on Day Two.


The nearly complete stables.


A good chunk of my life disappeared while I designed the outer wall of the grounds and placed every last section of the wall, which was incredibly tedious and required constant updating of the terrain in order to keep things as level as possible. I'm pretty happy with the end result, but I did notice that the presence of the wall is affecting performance on older machines. I wasn't expecting this, since the wall is comprised of small, lightweight objects that Torque calls TSStatic objects, which are designed to be placed in relatively large numbers without greatly impacting frame rates. But it seems that, with the large number of wall sections and the vast number of other TSStatic objects in the game (including all decorations, like straw and leaves), performance on older, slower machines is starting to take a hit.

A shot of only a portion of the outer wall.


I'm not extremely concerned, though, since I've come up with a relatively simple and straightforward solution similar to what I've done with other, more important objects in the game (the ShapeBase objects, such as the beds, desk, chairs, and so on). More on that in another post.

Finally, there's the graveyard. It plays a very small role in the game, but I wanted to make sure we had a good representation of it, and I think N.R. did a great job with the grave markers. I haven't yet had the time to drop them in their proper places in the game, but I thought it would be worth showing off a bit more of N.R.'s work here.

Gravestones and impromptu grave markers.


Character animation work, as always, continues to be a challenge. Dave Cornelson, he of Textfyre and the return of commercial interactive fiction (more on that another time), had an interesting and relevant blog recently about how difficult it is to find and keep a good artist; seems he went through several over the years during development of his just-released game. I share his frustration. I'm still working with the same set of local University students, but some are too busy with classwork, while others are too busy with life. Work proceeds in spurts, separated by lengthy droughts. We've been in a bit of a drought the past couple of months.

Nevertheless, things do continue to move forward. Drogo, one of the more interesting and challenging characters in the game, is all but finished for Act I. I had been looking forward to implementing him for a long time, and it's great to finally see him in action. I'll introduce him in a separate post.

Drogo pondering what to say.


I still have a lot of work left to do on Constantin, Lucca, and Matteo to bring their animations and sound up to date, so there is certainly plenty of scut work for me to spend my hours (upon hours) on. But once that work is done, the only character left is Cecilia. Oh, Cecilia.

She's going to be a major challenge. We already have some of her animations worked out, but putting her together is going to be quite the experience, since the player interacts with her very differently than with the other characters. There are so many more possibilities with her, so many more "unusual" situations or actions. She is, in many ways, a series of "exceptions to the rule" of NPC interaction, at least with respect to the other NPCs. I'll report more on her as we go, although again it will be a bit tough to avoid spoilery material.

Then there's the miscellany. I spent a good deal of time fixing the kitchen cupboards so that the opening and closing of doors appropriately impacted the SEARCH command -- in other words, you should only be able to see items inside cupboard doors that are open, but not ones that are closed. I also spent some time revising the code that implements supporters, so that various inventory objects can be placed on top of other objects (such as a bed). The whole issue of supporters (and containers, for that matter) is another one of those features that is relatively straightforward in text, not quite so much in graphics. That will be the topic of a future post.

Bed, as supporter.


The endless revision and refinement of the parser continues as well. One of the big problems with working with the parser code is that most of it was written a couple of years ago, and my impression of it is that many parts seem to be held together with Elmer's glue and a little duct tape. Most of it works the way I want it to, but there are still a few nagging issues that haven't yet been resolved, and going back to the code is a risky proposition. Although I've commented the code profusely, there are still many areas where I have the parser doing things that maybe don't quite seem right. Are those bugs that I just failed to previously identify? Or are there good reasons for the code and I just forgot to comment on why I chose that approach? Not to mention that going back and making even small changes could trigger a whole chain of downstream errors that I may or may not catch.

One good example is the GIVE command. You can give items to NPCs if you choose, but you can spell that out two different but equivalent ways: GIVE THE KEYS TO DROGO, or GIVE DROGO THE KEYS. The first construct is easier to deal with, since the preposition (TO) nicely separates the two objects (THE KEYS and DROGO). Thus, the parser has an easier time distinguishing the direct object from the indirect object. In the second construct, this is more difficult, particularly since one of the first actions of the parser is to remove definite articles (THE). So the phrase that is parsed becomes GIVE DROGO KEYS, and the parser sees that as a verb followed by a single token (similar to an adjective-noun combination, such as GOLD KEYS). At this point, the parser would have no idea what the DROGO KEYS are, so it would deliver a mostly unhelpful error message, such as "You see no such object."

Going back and modifying the parser code to better handle this type of construct will require a bit of work, and I cannot possibly predict what it will do to the rest of the parser's behavior. Just one of those things I'll have to dive into, hope for the best, and test the crap out of it.

We've also been spending a good deal of time on more public concerns, such as an official web site for the company and the game. We've decided to go with Joomla as our content management system, and so far I'm fairly happy with the system. The site should be up and running soon. One of the issues is figuring out how to incorporate this blog with the new site, since Joomla and Blogger don't play well together. I may end up converting this blog to Wordpress and then integrating it with Joomla, since it's relatively easy to convert from Blogger to Wordpress. I'll have to see. If anyone has any particular advice on that, I'd love to hear it.

A new company logo is also on the way, and I'm pretty happy with where it's going. More on that to come, hopefully very soon.

That's all for now...on to July.

Post Position

Jack Toresal and The Secret Letter Released

by Nick Montfort at July 01, 2009 03:34 AM

Jack Toresal and The Secret Letter

Michael Gentry, author of the stunning, large-scale, Lovecraftian interactive fiction Anchorhead, has another full-scale IF, his first since that award-winning game came out in 1998.

Dave Cornelson, who founded the Speed IF competitions and the IFWiki, has led his interactive fiction company, Textfyre, to publish its first game.

The game that is so notable in both of these ways is Jack Toresal and The Secret Letter. It is available for either Windows or Mac for about $25. As with all of the planned offerings of Textfyre, this game is directed at a specific audience: young readers wanting to experience the pleasures of reading while playing computer games. The hope, no doubt, is that parents will appreciate the fun and literacy-enhancing qualities of interactive fiction.

You can check out the game online: There is an in-browser demo that runs using Microsoft Silverlight. (The game itself was developed in Inform 7, and was programmed by Graeme Jefferis, not Gentry.) The interface offers a book-like framework for the IF session and allows the player to flip ahead to a map or back to previous sections of the transcript. The illustrations were done by Erika Swanson. You can read more about the development of the game and the progress of the company on The Textfyre Times, Dave Cornelson’s blog.

The setting and the situation at the beginning of Jack Toresal is quite compelling, and after only a bit of interaction, I could see already that there are some interesting twists (including gender play), lots to explore, and a variety of people to meet and conversations to have. (I’ve played the game just a bit on my own; I was glad to also get to play and discuss the game with the Boston IF group yesterday.) Gentry’s writing is appropriate to the game’s audience, and is also effective and lively. Although this game probably lacks the tentacle attacks and generations of incest that made Anchorhead so chilling, it doesn’t pull punches for the kiddies – you can get Jack very unpleasantly killed if you don’t lead him to outwit his opponents.

Since Cascade Mountain Publishing ceased its run in 2000, I haven’t heard of a commercial IF company or publisher that has completed a project and released a game. Yes, there have been people selling their own IF in various forms – I’ve been one of them, with my hardback edition of Winchester’s Nightmare; Peter Nepstad has also sold his 1893: A World’s Fair Mystery. But Textfyre seems remarkable in accomplishing the commercial development and publication of a piece of interactive fiction that otherwise wouldn’t have been written, in putting together projects that involve many people. The company has wisely focused on a particular market, and on a particular type of reader/player that is not well-served by existing IF. Textfyre used a new development model in which programming is separated from writing and design, which themselves are potentially separated. (Gentry did both in this first title, but that won’t particularly be the case in others.) This first result, even though it is for younger readers, seems to be a good use of a major talent. Even to us older readers, it could be as interesting as a major release from an independent author. I’ll look forward to playing Jack Toresal and The Secret Letter further, and will hope that this release will just be an auspicious beginning for Textfyre.

June 29, 2009

Emily Short

Various playing

by Emily Short at June 29, 2009 02:00 PM


Recent playing:


Gregory Weir’s How To Raise a Dragon. It’s cute, but I find it in every way less moving than Majesty of Colors. Partly that’s because in Majesty of Colors I always had a clear sense of what my actions were going to achieve, whereas I was repeatedly surprised in HTRaD — sometimes I accidentally went someplace I didn’t want to go or killed a spare human by mistake. I suppose if I replayed the game over and over I’d get a clear sense of what all the options meant and be able to approach it with some sense of agency, but it didn’t strike me as sufficiently rewarding in content to be worth that kind of time.


Trial version of Jack Toresal and the Secret Letter. If you’re curious what Textfyre has done, it’s worth checking out. Notice the cool map (flip to the back of the book).

My impression so far is that I am indeed not the target audience: the story signals strongly about the secret revelations to come, which I suspect is for the benefit of young readers. On the other hand, it is recognizably Mike Gentry writing: solid prose, and if it’s not as dark as Anchorhead or Little Blue Men, there are still entertainingly observed bits, especially in the behavior of the characters.


Fable II, as suggested on the Must Play list instead of the original Fable. Played this through to the end, though because of its breadth I’m sure there are vast tracts of the game that I didn’t see on a single playthrough. In general, I liked it pretty well: the combat was well designed, I never got too lost, and (most important, from my point of view) there were very few points where I felt I was being asked to do tedious grinding in order to get the next bit of story. I did get a little bored performing jobs for money, but fortunately there are other ways to earn income that turn up pretty quickly, so the jobs were not a big part of my play experience. The grinding and sense of wasting time is what usually makes me give up on an RPG, so in that respect I count Fable II as a big winner.

As storytelling, it was an interesting experiment: the design attempts to combine an open sandbox world (in which you can take on any ethical allegiance, marry anyone, set up various types of career, etc.) with a fairly linear main arc made up of several big quests. The end ties what you’ve done in the sandbox into the main story. It doesn’t quite work, but I think I can see what they were trying for. The problem is that the sandbox story always feels (at least to me) like it’s not nearly as important or real as the main arc, and because it’s so generic, any sandbox elements that get drawn into the main narrative are handled in the most cliche and melodramatic way imaginable. I’ll come back to this later because it deserves a full-length article.

One thing that did leap out at me, though: much has been made of the Fable series allowing the player to choose a good path and an evil path. I’ve seen the reviewers talking about the design choices here, but not that many talking about the actual content of the moral system, and to be honest, that bothered me a little.

Specifically: in several places Fable II appears to equate “good” with self-sacrificing, empathetic, principled action and “evil” with selfish, unsympathetic, and unprincipled action. The most “good” person you meet has strong non-violence principles (at least at first), while the most “bad” person is wholly and pragmatically out for himself. The gameplay consistently demonstrates that principles can be a bit of an encumbrance, but it still seems to frame them as desirable.

There’s a separate scale for corruption vs. purity, which might have added some nuance but in practice didn’t make a lot of sense to me. (You can get corruption points by eating meat or drinking alcohol, for instance; but this kind of lifestyle choice has almost no bearing on the main story or most of the gameplay.)

So in terms of aspects that affect the story meaningfully, the good/evil axis seems more to the point, and it seems very often to be handled in this one particular way.

This bothered me a bit, because it leaves out the whole question of judgment. Plenty of people believe strongly in a value or principle that turns out to be misguided; in the most extreme case this gives us terrorists. Moreover, principle and willingness to self-sacrifice aren’t necessarily the same thing. At several points the game seemed to come close to recognizing the complications. It hinted, for instance, that there were times when one might need to let someone suffer — contrary to one’s usual principles — in the short term, in order to accomplish one’s goals in the long run. But ultimately the simplicity of the good/evil axis hampered the game’s exploration of these issues because it provided a strong pressure on the player to choose an interesting extreme rather than the dull middle road, and (I suspect) a pressure on the designers not to punish “good” behavior too much.

As an exploration of morality, or even as a tool to allow the player to express his own belief structure, I think Fable would have been much more interesting had it not gone with “good” and “evil” but with more nuanced characteristics: principled vs. pragmatic, say, or self-preserving vs. self-sacrificing. And I would have left the lifestyle stuff out of it completely: the ability to make your character more corrupt and fatter by eating a meat pie, or purer by drinking water instead of beer, felt like a tedious public service announcement — one that had almost nothing to do with what the story of Fable II was about.


Finally, my review copy of the full version of Sims 3 has arrived. I’ve only played a couple of hours, and it’s clearly the sort of thing that takes a while to get rolling, but I do notice there’s a lot more complexity in the communication between characters than there was in the original Sims, and it seems to lead more directions than in the mobile version. So we’ll see how that goes.

One Wet Sneaker

TADS 3 Study Group Opens

by Conrad at June 29, 2009 01:00 PM

I’ve put together a group for people who want to learn TADS 3. We’ll have a topic every week, such as doors, or NPCs, or conversation. And people can talk about non-topic items at any time, of course. We’ll keep it private, so you can post spoilery stuff about your game, and members will be expected to [...]

Review of “Story Structure Architect” as it applies to IF

by Conrad at June 29, 2009 03:00 AM

A certain odd and kind of spooky thing happens sometimes, where you go looking for something in a place where it has no business being, and find it. Sometimes when I'm reading Shakespeare, I'll think, "Hey, wouldn't it be cool if he ..." And then I go looking for it, and not only did he do that, but he did it cooler than I had in mind. I'm reading through a few books on story design, for the purpose of extracting ideas for Interactive Fiction. Today I got around to a little library book called Story Structure Architect, by Victoria Lynn Schmidt, Ph.D.

June 28, 2009

ClubFloyd Updates

Transcript: The Bryant Collection

June 28, 2009 07:00 PM

A Club Floyd transcript has been posted for The Bryant Collection, by Gregory Weir.

June 27, 2009

Brass Lantern

brasslantern: Textfyre releases their first commercial IF game, Jack Toresal and the Secret Letter: http://bit.ly/cE2n2

June 27, 2009 03:00 PM

brasslantern: Textfyre releases their first commercial IF game, Jack Toresal and the Secret Letter: http://bit.ly/cE2n2

The Textfyre Times

Published! – Jack Toresal and The Secret Letter

by David Cornelson at June 27, 2009 11:00 AM


We completed the initial publishing process last night and added the Intel Mac installation this morning (it’s 5am by me).

You can purchase Secret Letter, for $24.95, from the Textfyre.Com website.

Thanks goes out to Justine de Vesine for building the Mac installation package and to Thomas Lynge of Tenteo for all of his hard work and their partnership respectively.

We still have a lot of work to do. We’re just getting started.

Secret Letter is coming soon…

by David Cornelson at June 27, 2009 02:00 AM


I’m working on the last few bits here. The digital download process is complicated and I want to make sure we test it thoroughly. The installation packages are backed and ready to go. We’re almost there…

June 25, 2009

The Textfyre Times

One more day…

by David Cornelson at June 25, 2009 04:00 PM


Secret Letter Cover

Everything is coming together…check out the new cover!

June 24, 2009

Emily Short

The Textfyre Times

Good artists are hard to find, and keep…

by David Cornelson at June 24, 2009 10:00 PM


We’ve been at this for a few years now and I’ve gone through several artists and one art director in the process.

I originaly worked with a local artist, Erika Swanson and thought she had a strong feel for the Secret Letter story and characters. We hit a few snags in art direction and she moved on.

I then started working with an art director, Will Capellaro, and that was a fantastic experience, except for the part where he decided to move on and do other things. But before he left, he helped me find Goni Montes, a great artist that also had a strong feel for Secret Letter. Goni unfortunately found other work and moved on as well. His wife stepped in and drew the game map, but we were in dire need of someone to do the artwork for the release of the game.

I contacted Erika, wondering if she still felt some ownership for the work and she did. With the experience I gained working with Will and Goni, I was finally able to communicate properly with Erika and we’re now getting sketches ready for the release. Eventually, the game will have several dozen professional sketches.

I could have delayed releasing the games until we had stronger artwork, but my advisors suggested this was not really the core of the product and that we can always add artwork in patches and updates, which is what we’re planning to do.

The image I’ve shared of Jack looking down at Grubber’s Market done by Goni is great, but it will not appear in the final product.

We’re working like crazy to get everything ready for Friday. I just wanted to share this last bit of production news before we officially launch.

Emily Short

Exercises in Generated Prose

by Emily Short at June 24, 2009 01:00 PM


What follows is an overview of some ways I7 can be used to generate more writerly prose, especially in the context of room descriptions. It refers to several extensions; of these, “Complex Listing” and “Plurality” are bundled with Inform and part of the standard distribution, but “Room Description Control“, “Tailored Room Description“, “Introductions“, “Assorted Text Generation“, and “Automated Drawers” are available from the I7 extensions site.


Structuring information to provide narrative focus

Sorting for importance:

The beginning and the end of any set (a list, a sentence, a paragraph) are the positions of emphasis, which means that we can use them to direct the player’s attention. Postponing information to the end of a grouping can also have a humorous or surprising effect, if that information is incongruous with the tone of what’s gone before.

“Complex Listing” exists to help with this at the low level, since it lets the author create a table and sort it on whatever ordering principles he wants, and also create delimiters however he wants.

“Room Description Control” sets the order of paragraphs in a room description. (”Room Description Control” expects to be used with a set of “writing a paragraph about” rules that specify the actual form of the output. “Tailored Room Description” is one such set.) Something similar is possible with the default implementation of looking in Inform using “locale priority”. The use of locale priorities is exemplified in the example “Priority Lab”.

Unless we’re going for a humorous effect, we probably want to avoid lists like

You can see here a broken goldfish bowl, a gold ingot, a crumpled Snickers wrapper, the King of Sweden (naked), a deck of playing cards, two used toothpicks, President Obama, a swirling transdimensional vortex, and a cotton swab.

…because this totally fails to capture the way that a person looking at the room would prioritize objects.

In general, it’s a good idea to rescue human and other sentient characters from this kind of list entirely by giving them unique “writing a paragraph about” rules that change to reflect their attitudes and behavior: this makes them seem more like people and less like pieces of the furniture. Likewise, the swirling transdimensional vortex is probably a sufficiently surprising sight to deserve its own sentence, at least.

Even with that done, though, we might want to arrange the list to put the good stuff (say, the gold ingot) at the beginning; and for this purpose one might use “Complex Listing” to mark all treasures, or all items currently valuable to a puzzle, or whatever, with scores that indicate their priority, and then sort accordingly.

The same technique can be used to invert the order and put key objects at the end, if we prefer to make them appear as a surprise:

You can see here a broken goldfish bowl, a crumpled Snickers wrapper, a deck of playing cards, two used toothpicks, a cotton swab, and a gold ingot.

Not punchy enough? We could emphasize that ingot if we wanted:

Before printing the name of the gold ingot while listing nondescript items:
say "fantastically valuable ".

which would give us

You can see here a broken goldfish bowl, a crumpled Snickers wrapper, a deck of playing cards, two used toothpicks, a cotton swab, and a fantastically valuable gold ingot.

Or we could underline the afterthought joke:

You can see a broken goldfish bowl, a deck of cards, a crumpled Snickers wrapper, a cotton swab and two used toothpicks here.

Oh! And also a gold ingot.

In the standard Inform implementation, this could be achieved as shown in the “Priority Lab” example; in “Tailored Room Description”, by tweaking the paragraph for description of “deeply dull” items to save this item for last.

Grouping: Items that are related to one another are often best presented as a group or set:

You can see here a pair of playing cards (the Jack and the Queen), a poker chip, and a five-dollar bill.

The “grouping together” activity provides a hook for this for use with the standard Inform listwriter. “Complex Listing”, by contrast, does not deal with grouping together, because this would be incompatible with the other options it offers for ordering the list of objects precisely; but an author could set the order of objects in the listing table in such a way that like items were clustered in the list.

In the larger context of room descriptions, “writing a paragraph about” is an excellent way to create pairs and grouping, as in

Jack, Flo, and Patricia are huddled in urgently whispered conversation at the foot of the patient’s bed.

The documentation on “writing a paragraph about” in the Activities chapter demonstrates this.

Picturesque effects: Sometimes when I’m going for a strong visual image, I want to structure my description to emphasize something other than the objects as objects: the lighting in the room, the sensation of clutter, an oppressive mood. The key here usually is to use a writing a paragraph rule to draw together descriptions of objects that might otherwise be described separately.

For instance, the example “Reflections” suggests a way to combine shiny objects into their own paragraph:

The radiant light of the fallen torch reflects in the surfaces of the reflecting ball and Aladdin’s lamp.

You can also see a piece of chalk, a plumbline, an abacus and a canopic jar here.

That’s as far as the example goes because it’s trying to demonstrate simply, but we could extend the idea to get rid of the “You can also see” line entirely, and replace it with a single cohesive paragraph:

The radiant light of the fallen torch reflects in the surfaces of the reflecting ball and Aladdin’s lamp. The rest of your equipment – the piece of chalk, the plumbline, the abacus and the canopic jar – is barely distinguishable against the surrounding shadow.

or, if there’s only one dull thing on the ground,

The radiant light of the fallen torch reflects in the surfaces of Aladdin’s lamp and the reflecting ball. The piece of chalk, by contrast, is barely distinguishable against the surrounding shadow.

We’d do that simply by extending our rule for writing a paragraph about a shiny thing to include the other, not-so-shiny things as well; once these are mentioned in the paragraph they will not appear again in the “You can see…” line.


Rhetorical and poetic effects

Good human-generated prose demonstrates a sense of musicality. It avoids repetition where repetition would be dull, but relies on parallel constructions for shape. It offers the reader natural places to pause. It changes tempo.

This kind of thing is very very hard to teach to a computer — it’s not always that easy to teach to humans — so what follows is just the set of things I’ve found worth doing and accessible.

Ordering for rhythm: ancient rhetoricians were interested in lists — how they were ordered for best effect, and how the elements in them were set off. A particular favorite was the tricolon crescendo, in which three items are named, each longer and more impressive than the last.

That particular flourish really only works if you know the list elements in advance, but some of the concept remains applicable even in generated prose. Clustering elements in pairs and trios rather than flat lists (”a mango and an orange, a plum and an apple and a brown Bosc pear, …”) can improve the rhythm of a long list and contribute to a sense of richness or abundance.

This is not always easy to design in a way that will sound good and is probably a technique to be used sparingly, but one way to achieve it would be to use “Complex Listing” and to change the “rule for delimiting a list” to operate differently under some circumstances. Bronze demonstrates another variation, using just the “writing a paragraph about” activity, in the section on the Black Gallery.

One could even, if appropriate, mark objects with information about the syllabic length of their names, or their phonetic qualities, and assemble listing sub-groups depending on alliteration or rhyme. But it’s hard to imagine a circumstance where that wouldn’t simply be distracting unless the work was overall written in a poetic register.

Listing with alternative delimiters: “Complex Listing” allows the author to build lists with alternative delimiters, as for instance

semicolons: “Rome; Venice; Paris; Lourdes.”
periods: “Rome. Venice. Paris. Lourdes.”
dashes: “Rome — Venice — Paris — Lourdes.”

Several settings are built-in, but the set can be extended freely.

Rhetoricians also used to talk about asyndeton and polysyndeton, the omission or over-supply of connectives. “Complex Listing” supplies these options as well:

Asyndeton: “Rome, Venice, Paris, Lourdes.” or “Rome Venice Paris Lourdes.”
Polysyndeton: “Rome and Venice and Paris and Lourdes.”

Changing list delimiters alters the pace at which the player reads. Semi-colons create stronger pauses in the reading, as is especially appropriate if the listed items are not merely names but longer phrases. Asyndeton and polysyndeton are best used sparingly; polysyndeton produces a sometimes-comical galloping effect when read aloud, while asyndeton can move quickly but bring the reader up short at the end of the list because it lacks the usual marker that the list is about to end.

Variation: avoiding repetitive sentence structures to increase a sense of greater liveliness in the prose, so that (for instance) not every supporter’s contents are introduced with the sentence “On the [foo] are…”.

“Tailored Room Description” does this by default: it picks randomly from a set of template sentences for common situations, and since these sentences are stored in tables, the tables can be amended or extended freely by the author.

Parallel construction: repetition of a structure for emphatic effect, perhaps also omitting some words that would otherwise be repeated. For instance,

The place is a shambles. On the pedestal are a fig and a cookie; on the table, a cup, a plate, an apple core and a vase; on the bed, a laptop and a camera; and as for the shelf, it supports a book and a toothpick.

Notice that we don’t repeat “are” in the clauses about the table and the bed, because the verb is held over from the first clause in the sequence. This is really another fairly cheap trick using the writing a paragraph about rules. With Inform’s default behavior, it could be written so:


Include Plurality by Emily Short.
Definition: a room is cluttered:
if it contains less than two supporters:
no;
if every supporter supports at least two things:
yes;
no.
Definition: a supporter is grounded if it is in the location.
Rule for writing a paragraph about a grounded supporter when the location is cluttered:
say "The place is a shambles. ";
let N be the number of grounded supporters;
let index be 0;
repeat with item running through grounded supporters:
increase index by 1;
if index is 1:
say "On [the item] [is-are a list of things on the item]; ";
otherwise if index is N:
say "and as for [the item], [it-they] supports [a list of things on the item]. ";
otherwise:
say "on [the item], [a list of things on the item]; ";
say "[paragraph break]".

The implementation for use with “Tailored Room Description” would be very similar, except that we’d want also to check that our supporters were “mentionable”, to make sure we weren’t referring to any that we wanted to keep concealed.


Structuring the text to show awareness of what the player already knows

Another key indicator of human-like narration is that the description contains as much information as the reader needs, but no extra information; and that it shows an awareness of what has already been revealed.

Choice of articles: using “a” or “the” correctly depending on whether we’ve already mentioned a given item during the course of that same description.

This is not too difficult assuming that we’ve been consistently tracking what has been mentioned so far during a room description. “Tailored Room Description” does this by default, and provides the phrase

To say (N - a thing) as a possibly-known item:
if N is mentioned, say "[the N]";
otherwise say "[a N]".

to be invoked when we want to be sure to use the appropriate article-state.

Concision: describing the stand-out characteristics of a scene only. For instance:

There are doors west, south, and east. The east door is closed.

This is more compact and idiomatic than

There are doors west, south, and east. The west and south doors are open. The east door is closed.

…but because of the rules of conversational implication it conveys the same information to a typical speaker of English. On the other hand, after the player has manipulated the room a bit, we might want to change to

There are doors west, south, and east. All three are closed.

Or again

There are doors west, south, and east. The west door is open.

The extension “Assorted Text Generation” supplies some tools for generating appropriate sentences of the “All three are closed” variety. It provides the (somewhat unwieldy) phrase “selection of (description) conforming to the description (a second description)”. This tells Inform to look at all the elements of the first set, count how many of those also belong to the second set, and print a descriptive phrase, which might come out to

“None of them is…”/”Neither of them is…”
“All three of them are…”
“The black door is…”

and so on, depending on what needs to be specified under the current state of the world model. We would still need to apply another layer of logic to decide whether we want to list the open doors or the closed ones, but ATG spares the work of hand-producing the subsidiary text.

“Automated Drawers” applies these rules to a rather specialized domain, namely, describing which drawers in a multi-drawer set are open. It generates text such as

The large dresser has five drawers. The top drawer and the fourth drawer are closed.

There are two tiny inlaid drawers in the table. The left drawer is open.

This may not be of much use in all instances, but it provides some sample code that might be used as a reference for other similar prose problems.

Introductions of objects: adding contextual information about objects when they’re first seen, or when the narrator/player character is inclined to point out a particular fact to the player.

The “Introductions” extension exists to help with this, allowing the author to define some introduction text to be printed as part of the room description the first time the player encounters a specific object.

First impressions for a room: Another common case is that we want to have a sentence (or a paragraph) of the viewpoint character’s first impressions of a room, to be printed at the end of the room description. The example “Saint Eligius” in the manual shows how to do this; “Introductions” offers an even easier implementation by allowing the author to create introduction text for rooms as well as for objects within a room.

Segues: moving naturally from the description of one item into the description of the next when both are present. E.g.:

Fred is no favorite with Doctor Pearson, either, which is why you’re surprised to see the old man sitting serenely in the comfy chair, sipping a vodka gimlet.

…to appear only when we’ve just described Fred’s presence in the room.

“Introductions” provides a mechanism for defining segues of this kind, using a look-up table for the two objects (the one described last and the one described next). This is especially likely to be relevant for independently moving characters, where the NPCs might be in any of a number of configurations when the player first stumbles on them.

Where the initial room description is static and the order is known to the author in advance, it would be enough simply to write this text into the initial appearance of the items, as in

The initial appearance of Doctor Pearson is "[one of]Fred is no favorite with Doctor Pearson, either, which is why you're surprised to see the old man[or]Doctor Pearson is[stopping] sitting serenely in the comfy chair, sipping a vodka gimlet."

Elaboration and discovery: Sometimes it’s worth going the other direction from the introduction technique, and have additional information that only appears when the player looks more than once (in order to streamline their first impression of a room) or to reveal information that the player has discovered in the course of play.

This is something to do carefully and sparingly, because a player who realizes he’s missing vital information in every room unless he types LOOK twice is likely to get really annoyed about it. Nonetheless, I did this with Floatpoint in some of the opening rooms, because I wanted the player to have a sense of urgency and movement, and only to see his surroundings in more detail (with which, in any case, he didn’t have to interact to win) if he deliberately stopped to explore. Several players reported enjoying the effect, so it seems to have worked in that case.

Omitting objects from the initial description can be done easily using the concealment rules with “Tailored Room Description”; or by the expedient of leaving some items out of play and moving them into the room after the first look. Bronze demonstrates a related effect with the Bellroom section, where specific bells become present as the player finds out about them.

June 23, 2009

Man Bytes Blog

Rev03: Bringing the Game

June 23, 2009 02:00 PM

I posted* this sentiment on Twitter yesterday, but I wanted to paint it on a bigger target. The bracketed text is a bit of clarification I had to leave out of the original 140-character tweets**. It occurs to me that the more I push Rev03 away from [traditional] RPG structures in ...

June 22, 2009

Brass Lantern

brasslantern: Ghost Pirates of Vooju Island official website: http://www.ghostpirates-game.de/

June 22, 2009 10:00 PM

brasslantern: Ghost Pirates of Vooju Island official website: http://www.ghostpirates-game.de/

Emily Short

Putting together a play-test

by Emily Short at June 22, 2009 01:00 PM


Recently read an interesting article by some Microsoft playtesters that suggests playtesting studies using 25-35 participants focusing on a single hour of gameplay, followed up with standardized surveys. The idea is that this could be done repeatedly during the course of a game’s development in order to drive gameplay improvements and then confirm that the changes have had the desired effect. This method contrasts with usability tests (an hour to two-hour interview one-on-one with testers, usually conducted with a group of eight or so) in that it is more statistically reliable though not so in-depth.

This is something I’ve been thinking about a lot lately.

Aaron Reed’s research on novice gameplayers of “Whom the Telling Changed” was extremely useful, especially his analysis of what errors players were most likely to make. Reducing these errors substantially is an obvious goal, and the whole IF community benefits when these problems are identified and the tools improved to address them. Presumably further testing might be of further use, especially if it’s focused on making tools and libraries that better handle areas that traditionally trip up new players: learning the interface and communicating with the parser.

In the short term, I’m concerned about the refinement of the conversation system. I’ve been fortunate in that there’s been a lot of feedback about Alabaster already, and that has suggested some directions of improvement — most especially in the form of hinting to the user about how to use abbreviations and to remind him that it’s not necessary to retype the whole command verbatim. But I’m interested to implement these improvements and then see what people make of the results.

In the longer term, a handful of adjustable-default games exist to allow people to explore their preferences about default IF behavior such as narration voice and tense, compass directions, etc. It might be interesting to have feedback on some of these from a larger group composed of IF novices.

What I imagine based on the description here is: get access to a computer lab (possibly at a college or university). Install some game on all of the lab computers, and set the games to keep transcripts automatically. Have roomful of participants play for roughly an hour, then fill in a survey about their experience (using some sort of ID tag to associate survey results with the specific transcripts, ideally).

So the question: what are other resources that describe best practices for playtesting projects? What sorts of pitfalls should one be watching out for? How much would each playtester need to be paid for an hour’s work to make it worthwhile participating? (I imagine if the players were themselves college students the answer might be $10-$20, but for adults…?) I realize I’m not trained in the field of usability testing and that there’s a huge amount to know — but given that hiring a consultant is probably not in my budget, is there an amateur approximation that would be of some use?

June 21, 2009

Brass Lantern

brasslantern: Little Wheel, a short Flash adventure: http://fastgames.com/littlewheel.html

June 21, 2009 06:00 PM

brasslantern: Little Wheel, a short Flash adventure: http://fastgames.com/littlewheel.html

brasslantern: Benoit Sokal's "Nikopol" on Impulse for $24/€18: http://impulsedriven.com/nikopol

June 21, 2009 06:00 PM

brasslantern: Benoit Sokal's "Nikopol" on Impulse for $24/€18: http://impulsedriven.com/nikopol

Emily Short

Hall and Baird on Polti again

by Emily Short at June 21, 2009 12:00 PM


Have now had a chance to read more thoroughly the article I mentioned last post, Improving Computer Game Narrative Using Polti Ratios, by Richard Hall, Kirsty Baird.

The idea of the article is that the amount of drama in a game can be arithmetically calculated by counting the number of different Polti situations one can recognize in the game, then calibrating against the total number of events and the number of major and minor characters required to bring these events about. They further use these calculations to argue that games with no characters (”unembodied” games) may not reasonably be interpretable as stories. They propose that games in production should be improved by restructuring the story to include more Polti situations and to decrease the number of characters.

I’m in general pretty skeptical of anything that claims to be a recipe for narrative construction, but some are still more plausible than others. This one strikes me as especially doubtful, since the natural limit of the proposed equations is a story in which all 36 Polti situations are included in a tale with just two characters and a minimum of distinct events. A sense of fitness in the narrative development, thematic coherence, etc., do not enter into the equations.

The authors offer a sample revision of a game which does demonstrate concern for thematic coherence in that they eliminate a certain number of Polti situations at the outset, and they do arrange the game to convey a specific message; which looks like an acknowledgement that good narrative is characterized by something other than an optimization of their proposed equations, but they do not account for this theoretically. Nor does the article attempt to distinguish between narrative, story, and plot, though these terms are often treated as distinct in other game/narrative literature.

The most interesting part of the article to my mind is the part that suggests that story depends on how many situations the player recognizes:

We’re going to… initially propose the theory that if people can explain what is going on in terms of at least one of Polti’s units then the object that they are engaged with can be labelled a story.

Even this is a little vague, but let’s assume that by “people” we mean “the player”. This would suggest that a game’s emergent behavior begins to appear as emergent narrative iff the player can recognize the action as corresponding to some fundamental narrative element. But the article raises an important question at the end:

Do people in general (with an understanding of Polti’s units) detect exactly the same units in the same story?

This becomes even more pointed with something like The Sims in which the interaction of characters might be construed to be “about” any of a number of things: one can observe the apparent emotional content, but there’s no verbal dialogue. (This may become more complex and richer in Sims 3; I’ll come back to this point when I’ve had a chance to play the PC version rather than just the cut-down iPhone edition.)

Anyway: the point is that emergent behavior might be construed by the player as corresponding to different narrative elements depending on the kind of arc the player already thinks he’s building. (See: Alice and Kev.) On the other hand, the game has no way of “knowing” which situations the player is recognizing as narratively significant and thus no way of trying to produce episodes that follow (thematically or causally) on those the player has already recognized.

I wonder whether the process of narrative building would tend toward more coherent structures if the player’s interpretation were actually polled and then used to refine the character behavior model.

Whether Polti’s situations are remotely useful for this purpose, I’m not sure. But that’s a separate point.

ClubFloyd Updates

Transcript: Shelter from the Storm

June 21, 2009 02:00 AM

A Club Floyd transcript has been posted for Shelter from the Storm, by Eric Eve.

Transcript: Game Developers Conference 2009

June 21, 2009 02:00 AM

A Club Floyd transcript has been posted for Game Developers Conference 2009, by Jim Munroe.

Transcript: Till Death Makes a Monk-Fish Out of Me

June 21, 2009 02:00 AM

A Club Floyd transcript has been posted for Till Death Makes a Monk-Fish Out of Me, by Jon Ingold and Mike Sousa.

Transcript: Mingsheng

June 21, 2009 02:00 AM

A Club Floyd transcript has been posted for Mingsheng, by Deane Saunders.

June 20, 2009

The Gameshelf: IF

Validating my existence

by Andrew Plotkin at June 20, 2009 09:33 PM

Well, not really. More like "acknowledging my existence," which is flattering. Kingdom of Loathing, the massively successful indie casual MMO, has an achievement system. To be precise, an ever-increasing set of trophies. (See this trophy list on the KOL wiki....

June 18, 2009

Inform 7

“Goethe’s ‘Elective Affinities’ as E-Learning”

by admin at June 18, 2009 09:33 PM

Mario Donick writes:

Attached is a small (222 KB) research paper written by me, one of my co-workers at Rostock University and one of my students. Its title is:

“Goethe’s ‘Elective Affinities’ as E-Learning. Developing Exercises for German Classes in the Secondary School Level 2″

The system described in this paper is basically IF and currently in development, using Inform 7 with the German extension (which is developed by Christian Bluemke).

…The paper has been presented today at the e-Learning Baltics 2009 conference and it is published in the conference proceedings (pp. 17–26).

June 15, 2009

One Wet Sneaker

Deeper IF Characters with the F-H System

by Conrad at June 15, 2009 11:00 AM

We've considered the F-H system of characterization, with one blog post on theory and strategies, and one on techniques and implementation. The goal now will be to re-work these techniques for IF, making them suitable for the existing technology, and not reliant on tricky AI. I'm all for tricky AI, but I can't do it myself.

The broader purpose in doing this is to see how we can make NPCs that live up to at least the minimal standards set by pulp literature. Since we know that much of pulp is pretty bad, and yet many people do consume it and, like fast-food, find it satisfying, we can infer there's something in the pulp formula which over-rides the frequent overall badness of the writing. By including this element in our games, along with good writing and game design, we can enrich our player's game experience.

The F-H principles of characterization are: create characters through emotional conflict; maximize that conflict by making the hero 49% evil, and the villian 49% good; portray characters with conflicting qualities, such as strength and weakness, or wisdom and folly; and write characters with physical and behavioral tags for those qualities, as a way of keeping on-message. The overall idea is to foster inner emotional conflict about future events in the narrative. Now let's apply this to IF.

Characterization is difficult in IF for a couple of reasons:

June 14, 2009

The Textfyre Times

Current Products Require Microsoft Silverlight 2.0

by David Cornelson at June 14, 2009 08:00 PM


In the presale announcement, I mentioned that the online demonstration versions of our software will require Silverlight, but I did not note that Silverlight is also installed as a part of the downloaded product.

Because of licensing issues with Silverlight 2.0, we are required to have the user download and install Silverlight from the Official Silverlight Website.

Silverlight 3.0 has an “install local” feature that we will implement in July and this will make the download and installation process seamless.

We will continue to look at other cross-platform technologies, including Adobe Air and potentially C++ with a cross-platform toolkit, but right now, the best technology for our developers has been Silverlight.

If anyone has already purchased our games and would prefer not to use Silverlight and would like a refund, please let me know and I will be happy to refund your purchase.

June 11, 2009

One Wet Sneaker

Pulp IF? – Applying the F-H system to text game plots

by Conrad at June 11, 2009 02:20 PM

In the last blog post, I reviewed the Foster-Harris formula for creating (let's face it) pulp plots. I argued that the F-H system is the minimal system for creating an emotionally salient plot. Therefore, presumably, a F-H plot in a text game is the minimal design we'd need to get an emotionally salient piece of interactive fiction.

And I'm not saying that there is no emotionally salient IF out there, but the word on the street is that IF generally falls short of qualifying as "literature," in contrast to pulp fiction (which is bad literature, but literature nonetheless).

So, what do we need to do to bring IF "up" to the standards of bad literature, according to the F-H system?