Autumn 2008 Citizen Schools Apprenticeship

Write Your Own Computer Game

Creating Interactive Fiction

Course proposal for Citizen Schools at Google
by Mike Kenniston

The Vision (in 10 words or less):

Help students develop their academic skills by writing computer games.

Promotional blurb

Would you like to dream up new worlds and then write about them? Do you enjoy puzzles? Have you ever thought about combining the two?

We've all had fun playing computer games, but how about getting really creative and writing your own game? In this apprenticeship a team of students will produce an Interactive Fiction game which will be posted on the Internet and can played by anyone with a web browser.

Interactive Fiction is a type of computer game, but these are NOT video games because they are based on words rather than graphics. All types of games are based on trying to achieve some goal, but playing a typical video game is like watching TV, whereas playing an Interactive Fiction game is more like reading a book. Instead of getting pictures and sound, in an Interactive Fiction game you read a gradually unfolding story filled with clues. More importantly, instead of using a mouse or controller to choose from a limited number of possible actions, in an Interactive Fiction game you use the keyboard to type commands in normal English, and there is no limit on what actions you might try. Interactive Fiction games combine aspects of adventure and mystery stories with the challenge of solving brain teasers.

You don't need any special background to take this course - just imagination and enthusiasm. Because Interactive Fiction is completely dependent on written text you will need to be comfortable using the English language, but you don't need any special writing talent. It will also be helpful if you have some basic familiarity with surfing the web, but this class is not intended for nerds and you do NOT need any programming experience.

If you sign up for this apprenticeship, remember that attendance is important. The new material introduced each week builds on the previous weeks' work, so it is important to attend all the apprenticeship meetings in order to keep up.

If you want to try out Interactive Fiction to see what it's like, an example game is available at: http://jiffeegames.com/games/sunny-day/sunny-day-en.html. All the software needed to create JIFFEE games is freely available on the web and runs on any PC, so if you find that you really enjoy this you can continue on your own after the class is over.

Educational Goals

Tentative syllabus

   Week  
Theme Skills
Activities
Week 1
09-16
Introduction to IF.
Reading for detail.
Methodical map-making (analysis).

Brief instructor bio, student introductions, and Name Game.
Start up an actual IF game and read the help screen.
Explore part the territory and draw a good map of it.
Gather up some objects that might be useful.
Week 2
09-23
Practicing IF commands.
Using verbs.
Distinguishing nouns (places and things) and verbs.
Map the rest of the game.
Solve a couple of puzzles to see how they can work.
Week 3
09-30
Places:  navigation. Map-making (synthesis).
Editing/saving a file.
Loading/reloading a web page.
Testing and debugging.
Create a territory with at least 4 places.
Connect the places so you can move between them.
Test that every connection works correctly.
Week 4
10-07

Places:  description.
Creative writing. Add good descriptions to the places to make them interesting.
Week 5
10-28
Things:  description and manipulation. Expanding the number of commands.
Distinguishing places from things.
Create some objects.
Add relevant descriptions for all the objects.
Test the manipulation of all your objects
Week 6
11-04
Intransitive verbs:  overriding old ones and creating new ones. Distinguishing verbs from nouns.
Two types of actions (display and move).
Add special responses for moves that are blocked and "get" of immobile objects.
Add an intransitive verb to move between places.
Make the verb only work in the right place.
Week 7
11-18
Transitive verbs and Composite actions.
Conditionals.
More complex abstractions.Precise definition of behavior.
Add a transitive verb that uses an object.
Make the verb work only where desired.
Change an action from a string to a function with multiple actions.
Add a conditional to a function.
Have apprentices test each others' code.
Week 8
12-02
Polish. Correct use of English.
Review all writing for spelling, grammar, logical correctness, punctuation, capitalization, and style.
Do final testing for correctness.
Week 9
12-09
Dress Rehearsal.
Organizing a presentation.
Outline the presentations in detail.
Every apprentice speaks in front of the group.
Week 9
12-11
Celebrate and demonstrate. Public speaking.
Show off what you've done at the WOW!.
Week 10
12-16
Reflections.

Provide feedback to the instructor about strengths and weaknesses of JIFFEE.

Software Used

The only software used (other than a normal web-browser and any commonly-available text editor) is a system called JIFFEE which is available on the web (http://jiffeegames.com) and is free for anyone to use. The course instructor wrote, maintains, and holds the copyright on that system, so the students will receive the best possible customer support.

JIFFEE works on Windows, Mac, and Linux systems, so if students have access to virtually any type of PC outside of class they'll be able to use JIFFEE there as well. No special "installation" is required to use JIFFEE; you just have to download one file and start editing.