Saturday, February 21, 2009

Week Two Assignment

If you haven't already done so, please finish up your first assignment, and submit it. Some of the stories I've seen so far have been pretty good!

Last week's assignment involved the creation of objects that could be examined, and maybe taken, worn, or put in other objects. This week, let's do other things with those objects; as a result of being able to do more interesting things, we will also be able to develop a more interesting player character, and maybe even a puzzle.

There are two main things to learn to accomplish this: performing non-default actions on objects, and testing the relationships between objects. For the former, read through the "Heidi Revisited" example in the IBG for an introduction to "before" routine, which can be used to intercept actions, and provide results that are more appropriate for the object in question. §6 of the DM4 provides more information on the subject. For the latter, it is useful to understand the object tree, how the objects in your story are related to eachother, and how to test for these relationships. "Heidi Revisited" gives a brief example, in "Is the bird in the nest?"; a more thorough explanation is provided by Chapter 3 of the DM4.

(Inform 7 authors: The above roughly corresponds to Chapter 6, especially Chapter 6.3, in the I7 Recipe Book that came with your download. I'm told that the relevant terms are "instead" clauses and conditional phrases.)

In terms of story: since your story involves a lot more interacting this week, it seems like a good time to start developing a unique player character (often abbreviated "PC"). There are many ways to convey information about the protagonist. In Varicella, the very tasks the player is asked to carry out (and, conversely, the actions that Varicella refuses to perform) speak volumes about the eponymous character; in Lost Pig and the "Captain Fate" example in the IBG, the story worlds are described entirely through the idiosyncratic viewpoints of Grunk and Captain Fate, respectively. Your main task this week is to create an intriguing PC in whatever way you see fit. I recommend reading Nick Montfort's "Fretting the Player Character" and §48 in the DM4 ("A Triangle of Identities") for some thoughts on what it even means to "play" a character. You may also wish to play some recent games notable for their PCs.

You may also incorporate a puzzle into your story this week-- after all, modifying actions and testing the state of objects is just about all you really need to write many kinds of puzzles. If you do choose to make a puzzle, please take the time to read a little bit of theory first: §50 in the DM4 ("The Design of Puzzles") is a good place to start. These essays make some good points as well. And of course it couldn't hurt anything but your non-IF productivity to familiarize yourself with some existing puzzle-based games (Em Short has a list of some good ones, by puzzle type).

Regardless of whether or not you include a puzzle, please make this week's story winnable. This means there should be some sort of positive finite ending (or several!), though whether it is achieved by a scored object, an elaborate puzzle, simply running out of turns, or something else entirely is up to you.

To summarize: By this time next week, create a winnable story featuring a unique player character. You may either continue working on the story you began last week, or start something new, as you see fit; the story need not be very long in either case. Puzzles are encouraged but not required.

If you're feeling stuck for a story, try using one or both of these prompts:
• Base your story on a recent news story. (How about this one?)
• Take some hints from the 24-hour Comics random story seeds or a random Wikipedia article.
• Set your story in a candy store.


  1. I rather like the IF Violet ( ), which tells the story through the voice of a character who isn't even present in the scene (but imagined by the player's character).

  2. LOL. The squid story reminded me of the animation "Finding Nemo"... :)