Saturday, February 28, 2009

Week Three Assignment

Send in your Week 2 stories! I've gotten a few, and they're looking good. I'll get them online by tomorrow evening. Please remember to include a title, otherwise I'll have to make something up.

Since last week was about the Player Character, this week is going to be about the Non-Player Character ("NPC"). In IF, an NPC is any animate being that is not controlled by the player, and they often take the form of people, animals, and robots. They range in complexity from the snake example in the DM4 (§17) to the eponymous character in Em Short's Galatea. In Adam Cadre's Photopia, the protagonist herself is an NPC, as viewed by a revolving cast of PCs; his Varicella has a wide-ranging group of NPCs of varying importance, including one around whom a scholarly essay has been constructed. A Change in the Weather and Suveh Nux feature adorable critters (rather, presumably adorable in the latter case) that, among other things, help the story world feel a little less lonely. NPCs can contribute greatly to the IF experience; the XYZZY awards have several categories to recognize excellence in this area. Once again, Em Short's blog is a good place to find some categorized examples.

Simple NPCs can be fairly easily created with the "animate" and potentially "female" or "neuter" attributes (DM4 §17, "People and Animals," for Inform 6) or the "person" kind (Chapter 3.17 in the manual for Inform 7). Automating their motion can be done with daemons in I6 (§20, "Daemons and the passing of time") or the "every turn" rule in I7 (Chapter 9.5). There are several approaches to writing NPCs; pick something that you feel comfortable coding.

This week, write a winnable story that involves, as a crucial element, an interesting NPC. It doesn't have to be very complex -- conversation is not required, or even necessarily desired -- but it should react in situationally appropriate ways. As before, you may continue working on an existing story, or start something new, as you see fit.

Here are some prompts for those who desire them:
• Implement your favorite animal, in a setting determined by your favorite film genre. The more disparate these two elements are, the better.
• Close your eyes and pick one of these. (Or, cheat a little bit. Here are some I think could be awesome: cartographer, weatherman, saucier, or busker.)
• Write a time travel story, complete with an NPC that thinks your PC is completely crazy.

Thursday, February 26, 2009

Weekend Meetups

Pittsburgh: There will be a meetup this Saturday, February 28, at 6:00 at Carnegie Mellon University's campus. The location is currently slated to be Room 206B in the College of Fine Arts building. We'll have a brief presentation by Goob, then either some write-in time or some game-playing time, as appropriate. I hope to see you there!

Boston: There's been some discussion on the board about a Boston meetup. If you're there, you should check it out.

Everyone: If anyone at one of the physical meetups has a computer capable of video chat, maybe we can work out some teleconferencing. Email me if you can help out.

Sunday, February 22, 2009

Week 1 submissions

Are now available at

(I decided to include the title as part of the listing. If you'd like me to change the title of your story or how your name is displayed, just let me know: if.month[at]gmail[dot]com.)

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.

Friday, February 20, 2009

Submission requirements

Hopefully you are nearly done with your week one submission. (Some of you may be already way ahead.) Here's what you should do:

•Gather up your files. The minimum requirement is your compiled z-code, though it would be nice if you also included your source code, and a text file with any notes or disclaimers you'd like to make. Especially for later assignments, including your source may help others learn by example, or it may help you by allowing other people to view and correct your mistakes.

Please note that I will be posting these on the internet, and they will be publicly available so don't send me anything for which this would be a problem.

If you do include your source, you may want to add a comment at the top of the file, placing the code under one of the Creative Commons licenses (from To use the popular Attribution license — which allows other people to reuse your work for any purpose as long as they give you credit — use the following sentence: "This work is licensed under a Creative Commons Attribution 3.0 United States License." (This will vary if you are not in the US; check the CC website for further instructions.)

•Name your files with your name/handle, the week number, and which file it is. For example, my submissions this week will be: lea_1_story.z5, lea_1_source.inf, and lea_1_about.txt.

•Send these files to if.month[at]gmail[dot]com.

If you're still working on your first story, note that there is an easy way to view your story online (and show it to us or even your non-IF-writing friends) by uploading it to a server and viewing it using Parchment. We have a server you can use; check out this forum thread for details.

Saturday, February 14, 2009

Week One Assignment

Week One is "Hello World" week, which means we're going to focus more or less strictly on getting everyone producing Z-code files, and thinking about some of the differences between static prose and IF. From a code perspective, our focus is on understanding the syntax of Inform and describing simple objects. In terms of storytelling, this means that this week is largely about creating a setting.

Here is a recommended course of action for Inform 6*:

Obtain the Inform library files, and the compiler and interpreter that are appropriate for your operating system, and compile some sample code to make sure your system is working. Read chapter 2 of the Inform Beginner's Guide ("IBG") for platform-specific tips, and a more thorough explanation of what "library files," "compiler," and "interpreter" mean.

• Read through chapters 3 and 4 of the IBG, and walk through the "Heidi" example. Change some details and compile it again. Then, create some rooms of your own. You may also wish to read chapter 3 of the Design Manual ("DM4"), especially §8, "Places and Scenery."

*For Inform 7 users: Download Inform 7 here. The IBG chapters 3 and 4 mentioned above roughly correspond to the first parts of Chapters 2 and 3 of the I7 Manual that comes with your download.

• Read §51 of the DM4, about the room description, and possibly also Em Short's thoughts on prose and IF.

If you have never touched code before:
Create a small world of a few rooms, each containing several items. Use at least three of the library attributes (such as "light" "container" or "clothing").

If you have coded Inform before:
Your basic requirements are the same, but I'm expecting much more out of you in terms of story. Remember that, unlike in static prose, the story may be discovered in many different ways. Attributes like "concealed" and "container" can help the story reveal itself over the course of the player's exploration, or object descriptions may prompt other objects. You may also use a daemon (§20 in the DM4) to change the descriptions of objects over time, or random numbers (§1.14) and a switch statement (§1.9) to vary description text.

A classic example of a story told somewhat like this is "Aisle", in which the player character is revealed through descriptions of his surroundings. I also recently enjoyed "A Day for Fresh Sushi," which, while it also has a puzzle/winnable element, establishes the player character and her girlfriend largely through object descriptions. And it was written in two hours, so that should give you some hope. There are many more such games — feel free to leave a comment here if you have some examples in mind.

If you are somewhere in between:
Well, give me something in between. Remember, the goal is to become comfortable with Inform and interactive storytelling. (Actually, that is the goal of IF Month in general.)

A final note: the forum has a section for technical questions. I can't personally guarantee you an answer, but if we work together, I'm sure most questions will get answered.

Submission information will be posted closer to the deadline. You have one week. Go.


Some things of note:

1) IF Month starts tomorrow. Wooo!

2) To add to our sprawling empire of free internet services, we now also have a forum. (Thanks, gwillen!) It is located at and will not be for anything official, but may be useful if you want to discuss story ideas or technical questions.

3) Thanks to some of the nice folks of the IF community, we've gotten some internet publicity and there are quite a few people on this list that I've never even met before. This is great! However, the people who are not in Pittsburgh are probably not all in the same place. I highly encourage non-Pittsburghers to put up a few copies of the poster — available at, or if the first one doesn't work — to acquire some locals. The forum will also have a section to facilitate meetups.

Tuesday, February 10, 2009


This is the blag for Interactive Fiction Month 2009, an attempt to lure beginners into learning Inform through a series of easy tasks with concrete deadlines, and to promote discourse on game design in general.

The main website is here.