Homework Two

Assigned 4/1/03, due noon 4/8/03

As discussed in class, you will write a work of interactive fiction. This assignment is the first of two steps in that process. What you will turn in next Thursday is:

  1. Your story bible. It must include a description of the setting and any associated lore, the plot structure, a map, and a list of objects and NPC’s that you expect to need. This should take the form of a Word document or a self-contained zip archive with HTML and all necessary supporting files. 
  2. An Inform source code (.inf) file implementing some of your story. This must include partial implementations for all of the locations in your story and some of the objects, roughly one-half of the things you need to build for the story as depicted in your story bible. Your code must compile in Inform and execute in Frotz.  However, you don’t have to have everything polished, e.g., some of the behaviors may be missing (especially for NPC’s) and some of the textual descriptions may be unrefined (what is called “placeholder art” in the trade). 
  3. The .Z5 file produced by the Inform compiler based on your source code.

The story bible for Twonky Island provides a partial example, although please note that we want you to also include a map (it can be spatially evocative or a graph of named locations whose arcs are labeled with directions, as you choose). 

We expect of course that your story bible and code will evolve as you finish the game.  This is a snapshot, not the final version. But, as with any complex project, setting up and hitting intermediate milestones is one of the secrets of success. This is one of the kinds of milestones used in game development.  Having a story that is incomplete but fully working and debugged in terms of what material is there is an important step, for a couple of reasons.  First, if you don’t debug things in small pieces, you are not very likely to succeed in creating something that you are satisfied with.  Second, implementing large pieces of the game help one understand what is hard and easy in the technology one is using, which helps gauge the level of effort required to finish the job, and what big risks lie ahead.  (For instance, in Deus Ex one of the scenes that never got implemented was orchestrating a prison break.  The number of NPC’s would have been prohibitive, but that was a lesson that only became crystal-clear once they had built part of the game.  You may find similarly that small changes in your story could end up making large differences in how well your final story can be implemented, especially given the two week window you are working in.)

Some hints regarding your story:

  • Aim for an experience that lasts about 15 minutes to at most a half-hour. Think of it as a short story, not a novel.
  • Your audience will be your classmates, who will be playing your game.
  • Be imaginative. You can set your story on Europa or in the 1930s just as easily as Norris.
  • Mine the inform documentation, example source code, and other on-line resources for ideas on how to do things.  There are libraries for NPC mechanics, aspects of simulation, etc. Reuse and recycling, with appropriate credit given, is a virtue.  (Contributing extensions back to an open-source community is an even greater virtue.)
  • As always, you can discuss general approaches and tactics on the newsgroup. Sharing information about good libraries and examples and learning from each other is valuable.  However, we expect your work on this assignment to be done individually.

Last edited 4/1/04 by KDF
Please send suggestions to cs370-staff@cs.northwestern.edu.
Return to: CS Courses | CS Home Page