You are previewing Creating Interactive Fiction With Inform 7.
O'Reilly logo
Creating Interactive Fiction With Inform 7

Book Description

CREATING INTERACTIVE FICTION WITH INFORM 7 is a jargon-free, step-by-step guide to mastering the basics of creating dynamic, text-based story worlds. Inform 7 is a free multiplatform interactive fiction authoring environment that uses an intuitive natural language syntax. A tool focused on writers, not programmers, Inform allows users construct complex, rich storytelling worlds by writing sentences as simple as "Tom is a person," or as complicated as "Instead of attacking Tom when something lethal is held, now every nearby watchdog owned by Tom hates the player." No prior programming experience is required. Throughout the book, readers develop a full-length, release-quality example game, exploring the real-world issues involved in authoring participatory narratives and gaining skills that can be applied to the creation of future games and stories.

Table of Contents

  1. Copyright
    1. Dedication
  2. Foreword
  3. Acknowledgments
  4. About The Author
  5. Introduction: Why Interactive Fiction?
    1. The Power of Text
      1. Single-Developer Games
      2. Prototyping
      3. Demographics
      4. Literary Quality
    2. Why Inform 7?
      1. Natural Language
      2. Accessibility
      3. Community
      4. Extensions
    3. Navigating This Book
      1. Intentions
      2. Naming Conventions
      3. Info Boxes
  6. 1. Understanding Interactive Fiction
    1. Blue Lacuna: An IF Excerpt
    2. How to Play Interactive Fiction
      1. Finding and Installing an IF Interpreter
      2. Finding Stories to Play
      3. Playing IF
        1. Command Prompt and Syntax
        2. Room Names
        3. Descriptive Text
        4. Manipulating Objects
        5. Abbreviations and Shortcuts
        6. Disambiguation
        7. Actions Out of World
        8. Misunderstood Commands
    3. The Nature of Interactive Fiction
      1. Story vs. Game
      2. Solving Puzzles
        1. Observation
        2. Tasks
        3. Lateral Thinking
        4. Good Puzzles
        5. Bad Puzzles
      3. What IF Does Well
        1. Stories about Props and Settings
        2. Stories about Investigation and Exploration
        3. Stories about Mechanics and Systems
      4. What’s Harder with IF
        1. Stories about Action and Reflexes
        2. Stories about Precise Spatial Relationships
      5. Length
    4. Sand-dancer: The Example Game
      1. The Concept Document
      2. What It Will Teach Us
  7. 2. Introducing the Inform Application
    1. Installing Inform
      1. Installing for Windows
      2. Installing for Mac
      3. Installing for Linux
    2. Getting Started
      1. The Facing Pages
        1. The Source Panel
          1. Syntax Highlighting
          2. The Contents Tab
        2. The Game Panel
        3. The Errors Panel
        4. The Documentation Panel
        5. The Other Panels
      2. Using the Built-In Documentation
        1. Writing with Inform
        2. The Inform Recipe Book
      3. Extensions
    3. Resources for Learning More
      1. The Inform Website
      2. The Interactive Fiction Community Forum
      3. IFDB
      4. Planet IF
      5. IFWiki
  8. 3. Creating a Story World
    1. Building the Foundations: Rooms and Directions
      1. The Room
      2. Linking Rooms Together
      3. Regions
    2. Structuring Your Source Text
      1. Spacing and Ordering
      2. Headings
      3. Using “It”
      4. Comments
    3. Making Things
      1. What Are Things?
      2. Articles
      3. Properties
        1. Portable/Fixed in Place
        2. Described/Undescribed
        3. Lit/Unlit
    4. Positioning
      1. Holding and Wearing
      2. Supporters
        1. Enterable/Not Enterable
      3. Containers
        1. Open/Closed
        2. Openable/Unopenable
        3. Transparent/Opaque
    5. Custom Kinds and Properties
      1. Creating New Kinds
      2. Default Properties for New Kinds
      3. Making Your Own Properties
    6. Relating Things to Each Other
      1. Defining Relations
      2. Relation Verbs
    7. Tools
      1. The Index Panel: World
      2. The TREE Testing Command
        1. The SHOWME Testing Command
        2. The RELATIONS Testing Command
  9. 4. Describing the Story World
    1. The Description Property
      1. Descriptions for Rooms
      2. Text Substitutions and Getting BENT
      3. Descriptions for Things
      4. Backdrops
    2. More Descriptive Tools
      1. Initial Appearance
      2. More Text Substitutions
        1. Number
        2. Lists
        3. Random
        4. Random Choices of Text
    3. Conditional Descriptions
      1. Conditions
      2. Defining New Adjectives
      3. Using Definitions
      4. Using Conditions
    4. Describing Sand-dancer
      1. Filling in Detail
      2. Keeping Things Organized
    5. Extensions for Controlling Description
      1. Extensions for Describing Rooms
      2. Extensions for Describing Things
  10. 5. Making Things Happen
    1. Rules and Actions
      1. The Basis of Rules
      2. Actions
    2. Action Rulebooks
      1. Action Default Rulebooks
        1. Check
        2. Carry Out
        3. Report
      2. Action Exception Rulebooks
        1. Instead
        2. After
        3. Before
        4. Using Rulebooks
          1. Use Instead to Redirect Actions
      3. Making Action Rules More General
    3. Action Rules in Sand-dancer
      1. The Duct Tape
      2. The Emergency Blanket
    4. Debugging Actions and Rules
      1. The Index Panel: “Actions” Tab
        1. List of Actions
        2. Kinds of Action
        3. Commands A to Z
        4. Rules A to Z
      2. ACTIONS
      3. RULES
    5. Making More Things Happen
      1. Light and Dark
      2. Navigation Restrictions
      3. The Roof
  11. 6. Understanding the Player
    1. Understanding Synonyms
      1. Synonyms for Nouns
      2. Printed Name
      3. Synonyms for Verbs
      4. Understanding Less
        1. Understand as Something New
        2. Privately-Named
    2. Creating New Actions
      1. Creation
      2. Definition
    3. Modifying Existing Actions
      1. Adding New Action Default Rules
      2. Replacing and Removing Rules
    4. Other Ways of Understanding
      1. Understand as a Mistake
      2. Understanding Things by Their Properties
    5. Disambiguation
      1. Dangers of Disambiguation
      2. Does the Player Mean
      3. Avoiding Ambiguity
    6. Helping the Player Participate
      1. Using Words Deliberately
        1. Describe Things Consistently
        2. Clearly Advertise New or Unusual Verbs
        3. Use Standard Actions Whenever Possible
        4. Create Synonyms Deliberately
        5. Introduce New Nouns Sparingly
        6. Details Are Adrenaline, Generalities Are Novocain
      2. Extensions to Assist the Player
    7. Back to Sand-dancer
      1. The ABSTRACT Testing Command
      2. The Memories
      3. Finding Food
      4. Sniffing Out Some Fuel
  12. 7. Logic and Control
    1. Logic
      1. Conditions
    2. Variables
      1. Variable Basics
        1. Temporary Variables
        2. Variables for Things
        3. Global Variables
        4. Example: Breaking and Entering
      2. Custom Kinds of Variables
        1. Kinds of Value
        2. The Values Before and After
    3. Phrases
      1. Named Phrases
      2. Phrases to Decide
      3. Deciding If
      4. Phrases with Variable Inputs
    4. Lists
      1. Creating List Variables
      2. Using Lists
        1. Show Contents
        2. Add Things
        3. Remove Things
        4. Find Out What’s Inside
        5. Sort
        6. Change Size
      3. Repeating Through Lists
    5. Numbers and Randomness
      1. Numbers
      2. Kinds of Numbers
      3. Comparing Numbers
      4. Sand-dancer’s Radio
      5. Math
        1. Arithmetic
        2. Displaying Numeric Values
        3. Rounding
      6. Randomness
        1. Random Numbers
        2. Random Chances
        3. Random Things and Values
        4. Random Texts
    6. The Kinds Index and Phrasebook
      1. The Kinds Index
      2. The Phrasebook
    7. Expanding Sand-dancer
      1. Reaching the Desert
      2. Describing the Desert
  13. 8. Time, Scenes, and Pacing
    1. Story Structure
      1. Structure in Traditional Narrative
        1. The Journey of the Characters
        2. The Plot
        3. The Setting
        4. Show, Don’t Tell
      2. Structure in Interactive Stories
        1. The Journey(s) of the Player
        2. Gateways and Sandboxes
        3. Do, Don’t Show
      3. Structure in Inform Stories
        1. Beginning
        2. Midgame
        3. Ending
    2. How Inform Sees Time
      1. Turns
      2. Remembering Past Events
        1. Present Perfect
        2. Past Tense
        3. Past Perfect
        4. Repetition
      3. Remembering Past and Present Actions
      4. Future Events
    3. Scenes
      1. Creating a Scene
        1. Variant Scene Endings
        2. Scene Variables and Properties
      2. Pursuit: Tracking the Rabbit
      3. Incorporating Scenes into Your Narrative
      4. What Scenes Can’t Do
      5. Testing Scenes
        1. Index: Scenes
        2. The SCENES Testing Command
      6. Temptation: Tracking the Coyote
    4. Extensions for Time and Pace Control
  14. 9. Creating Characters
    1. Defining Interactive Characters
      1. All of You
        1. The Player Character
        2. The Parser/Narrator
        3. The Player
        4. Further Permutations
        5. Revealing the PC’s Character Through Game Mechanics
      2. All of Them
        1. Sources of Knowledge
        2. Enemies
        3. Gateways
        4. As Plot Devices
        5. Conversational Partners
        6. Extras
        7. Major Characters
    2. Making a Character
      1. The Person
        1. Gender
        2. The Player’s Identity
        3. Describing People
        4. Possessions
      2. Actions Done to People
        1. Actions Involving People as Indirect Objects
        2. Actions Directly Involving People
        3. Actions Indirectly Involving People
        4. Action Involving Conversation
        5. Sorting Through Actions
      3. Actions Done by People
      4. People with Plans
        1. Every Turn Rules
        2. At the Time When
        3. Pathfinding
      5. Orders
      6. Extensions for People
    3. Conversation: Three Systems
      1. ASK/TELL
      2. Conversation Framework by Eric Eve
      3. Threaded Conversation by Emily Short
      4. Other Conversation Systems
    4. Sand-dancer’s Characters
      1. Setup
      2. Trading
      3. The Rabbit
      4. The Coyote
  15. 10. Challenging Assumptions
    1. Basic Changes
      1. The Command Prompt
      2. Status Line
      3. Directions
      4. Plural Things
        1. Plural-Named Things
        2. Mass Nouns
        3. Multiple Distinguishable Objects
      5. Indistinguishable Objects (Duplicates)
      6. Games in Different Languages
      7. Use Options
    2. Activities
      1. Activity Rulebooks
      2. Some Useful Activities
        1. Printing Room Description Details of Something
        2. Supplying a Missing Noun
        3. Printing the Banner Text
      3. Room Descriptions
        1. Creating More Natural Prose with Writing a Paragraph About
        2. Grouping Together
        3. Extensions for Describing Rooms
    3. Changing Library Messages
    4. Rules and Rulebooks
      1. A Review of Rules
      2. The Rules Index
    5. Scope and Reachability
    6. Changing the Style of Play
    7. Filling in the Corners of Sand-dancer
      1. The Voice on the Radio
      2. More Radio Conversations
      3. Sand-dancer’s Arrival
  16. 11. Finishing
    1. Adding the Polish
      1. Review the Concept Document
      2. Sand-dancer Himself
      3. Verify Your Story Is Completable
      4. Adding Candy
      5. Rewriting
    2. Testing and Debugging
      1. Playing Like a Tester
      2. Review of Testing Commands
        1. ACTIONS
        2. RULES
        3. SCENES
        4. RELATIONS
        5. TREE
        6. SHOWME
        7. ABSTRACT
        8. SCOPE
        9. Creating Test Scripts
      3. Debugging with showme
      4. Sections Not for Release
      5. Useful Debugging Extensions
        1. Debugging Strategy
    3. Using the Skein and Transcript
      1. The Skein
      2. The Transcript
    4. Outside Testing
      1. Finding Testers
      2. Working with Testers
      3. Signposting
      4. Debugging Sand-dancer
        1. The Lighter
        2. Extended Hints
        3. Notification Failure
        4. Radio Troubles
        5. Warm Blanket
        6. Entering the Building
        7. Too Much Distance and Other Signposting Problems
        8. Two Birds
        9. Brooding about the Wrong Thing
        10. Better Cobwebs
        11. Inappropriate Discussions
        12. Not Enough Memory
        13. Dropping the Flashlight
        14. Talent Issues
    5. Releasing
      1. Format
      2. Bibliographic Info
      3. Releasing With
        1. Cover Art
        2. An Introductory Booklet
        3. A Website
        4. An Interpreter
        5. The Source Text
        6. A Solution
        7. Custom Files
      4. Interpreters
      5. Where to Find an Audience
  17. 12. Further Pursuits
    1. After Release: What Next?
      1. Fixing Bugs
      2. Adding Features
      3. Archiving Your Project
    2. Advanced Inform 7: A Brief Overview
      1. Indexed Text
      2. Tables
      3. Styled Text
        1. Z-Code
        2. Glulx
      4. Beyond Text
        1. Figures
        2. Sounds
        3. External Files
    3. Creating Adventure Game Tropes
      1. Score
      2. Locks and Keys
      3. Carrying Capacity and Holdalls
      4. Unusual Map Connections
      5. Boxed Quotations
    4. Third-Party Tools
      1. FyreVM
      2. Guncho
      3. Inform 6
    5. Some More Useful Extensions
    6. More Resources
      1. Stories with Source Text
      2. Our Website
      3. Other Books
    7. Is Sand-dancer Done?
  18. A. A Thought Experiment
  19. B. Interactive Fictions Cited
  20. C. Glossary