Jump to content
  • Advertisement
  • 07/16/99 05:58 PM
    Sign in to follow this  

    Game Intelligence Design

    Game Design and Theory

     Game Intelligence Design
     [Up] [Map] [Prior] [Robot Wisdom home page]
     IF, AI, and the confabulating-arranger model of interactive fiction
     by Jorn Barger (jorn@mcs.com)
     September 26, 1994
          Abstract: One plausible design-paradigm for interactive fiction
          might be to supply IF authors with an extensive library of
          intelligent objects that 'know' how to interact realistically,
          including a rich model of human behavior. Doug Lenat's Cyc
          project is already attacking this task from a traditional AI
          perspective, but for IF this knowledge may be more simply
          collected in the form of stories-- in fact, a new mailinglist on
          the Internet is devoted to compiling such a story-library. If
          this library also tags all the most interesting possible
          plot-lines, the computer's task might be extended to
          "confabulating" the player's reality, on the fly, simultaneously
          arranging both past and future so as to open as many interesting
          plot-directions as possible.
     A couple of issues ago (IED 7.4), Chris Crawford discussed the basic known
     'topologies' for interactive fiction (IF)-- each of which he showed to
     contain intractable fatal flaws. Basically, interactivity implies that the
     user is making choices, which implies that the story is branching into a
     tree-like topology. But Chris showed that storytrees must either be folded
     back on themselves in a very limiting way, or have most of their branches
     trimmed to (violent) dead-ends. If they don't, they'll necessarily expand
     exponentially... so consequently, within these design paradigms, even
     high-budget efforts are doomed to produce only simplistic and uninvolving
     The fantasy for the distant future, of course, is that the computer should
     offer an infinitely-various Virtual Reality, full of objects and characters
     whose behavior mimics 'real life' in great detail. In the ideal future, one
     should be able to step into the pages of a Dickens or Tolstoy novel and
     interact with its characters as freely as in 'real' life....
     But how do we get there from here What sorts of design strategies might
     make these new forms of IF possible?
     Certainly, one step in the right direction will be to teach computers the
     basic laws by which real objects interact, which is one of the traditional
     challenges of artificial intelligence (AI). In this article, I'll first
     explore the AI-world's leading contender for a truly intelligent program--
     the Cyc project. Then I'll look at how Cyc's models overlap with those of
     traditional text-adventure games. I'll discuss a potentially-simpler
     strategy for compiling a 'Cyc' for IF, using a text format called a
     "meta-story", and offer some examples of how these can capture knowledge in
     an intuitive way. And finally I'll explore a new paradigm for IF-- the
     confabulating-arranger model.
     The Cyc project as a universal knowledgebase
     The last thirty years of academic AI research have produced very little
     that computer-game designers would find useful. The problems they've chosen
     to research have been too limited, and the programming structures they seem
     to favor are impossibly slow for realtime gameplay. So the world of gaming
     has pretty much had to invent its own styles of AI, as it's needed them.
     But for the last ten years, a highly ambitious (and surprisingly
     low-profile!) effort has been underway in Austin, Texas, to spell out the
     entire range of human commonsense knowledge. The goal of this Cyc (for
     enCYClopedia) project is a program that can read a newspaper, and
     'understand' what it has read, well enough to detect violations of common
     sense, just as human readers can. But to the extent that it succeeds at
     this, it should be equally useful, at least in theory, for maintaining
     internal consistency in a virtual world....
     The Cyc team, led by Doug Lenat, has been trying to break down human
     understanding into thousands of subdomains that they call "micro-theories",
     like ailments, food-preparation, communication, and corporate behavior, and
     then trying to translate the basic 'rules' of each such domain into the
     language of symbolic logic. When they need to say, "If someone is
     asphyxiating, they cannot breathe," for example, they write:
          (allInstancesOf $AIL Asphyxiation)
          (bodilyInvolved $AIL $AGT))
       (holdsIn $AIL
         (LogNot (behaviorCapable $AGT Breathing bodilyInvolved))))
     where $AIL and $AGT are the variables for ailment and agent,
           LogAnd, LogNot, and LogImplication are simple logical connectives
     and "holdsIn" defines the context within which this 'axiom' holds.
     According to the Cyc model, if an adventure game needed to know
     what-happens-next at any particular point-- say, when a person drops a
     delicate vase-- it would send a query to Cyc and in a matter of seconds,
     Cyc should return with the news that vases dropped on hard surfaces usually
     Unfortunately, if you multiply that plausible retrieval-time times the
     thousands or hundreds of thousands of deductions that would be needed to
     keep an interactive fiction realistic from moment to moment, you're forced
     to the conclusion that Cyc just isn't going to be fast enough to support
     IF, anytime soon.
     Probably the worst problem here is that Cyc-- unlike any other largescale
     project in history-- didn't evolve by starting with a simpler version of
     the whole, and gradually filling in the less-important details. Rather, Cyc
     is being built by the much riskier strategy of accumulating detailed
     subsections, one by one, with no known overall pattern... and later
     streamlining it down to a "core knowledge base". To make that streamlined
     enough for IF may turn out to be the hardest challenge of all!
     So Cyc offers a good startingpoint for IF-theory, with regard to the
     knowledge it hopes to embody, but perhaps not so good a model with regard
     to the performance constraints of realtime IF. But we know for certain that
     some level of realtime IF is possible-- Zork and Hitchhiker's Guide (etc)
     have proven that! But is there a way to build an "IF engine" that includes
     something more like Cyc?
     Text-adventure development languages
     The enduring popularity of text adventures, especially the Infocom games of
     the early 1980s, has led a number of talented enthusiasts to create
     programming languages especially for text-adventure development. Many of
     these are available free on the Internet, where the newsgroup
     rec.arts.int-fiction supports a thriving subculture of text-adventure
     designers working in these formats. (The newsgroup has its archives at
     ftp.gmd.de in /if-archive/.)
     TADS (The Text-Adventure Development System) by Michael J. Roberts is
     probably the most popular environment, because games created in TADS can be
     run on almost every major hardware platform. TADS offers a modest range of
     predefined object-types that have at least a minimal level of intelligence
     about their own behavior. Containers and vehicles, for example, understand
     that objects placed within them will move with them, and will be invisible
     unless the container or vehicle is transparent. Characters automatically
     grow hungry if they don't eat, and even eventually die.
     TADS is object-oriented, with the objects themselves containing most of the
     code embodying such "story elements":
     class openable: container
         contentsReachable = { return( self.isopen ); }
         contentsVisible = { return( self.isopen ); }
         isopenable = true
         ldesc =
          { caps(); self.thedesc;
            if ( self.isopen )
            { " is open. ";
              pass ldesc;}
            else " is closed. "; }
     The TADS object-hierarchy is firmly grounded in story-telling pragmatics:
       Item: vehicle, surface, lightsource, key, food, container, clothing
       FixedItem: switch, dial, button, decoration, actor, chair
     Cyc, by contrast, offers at the highest level the following, rather less
     pragmatic, partial object hierarchy:
     The Wisdom-FAQ mailinglist
     If a knowledgebase like TADS's could be gradually extended, ultimately even
     to the full extent targeted by Cyc, this would surely be a major step
     towards better IF. So with this in mind, a group of us from
     rec.arts.int-fiction (and elsewhere) have spun off a new mailinglist to
     investigate the possibility of building a sort of public-domain 'Cyc' for
     The name for the mailinglist-- Wisdom FAQ-- is derived from the Internet
     tradition of Frequently-Asked-Questions files (FAQs), which try to
     condense, into the most accessible format possible, all the most useful
     information on any given topic. The "Wisdom FAQ" can be seen as a (rather
     grandiose!) image of a FAQ that tries to contain all the wisdom of the
     world, on every topic... starting, of course, with those truths most useful
     for interactive fiction. (To subscribe to the list, send me a request at
     wisdom-request@mcs.com. The accumulated archives can be ftp'd from
     ftp.mcs.com in mcsnet.users/jorn/wisdom/. If you need me to email them to
     you, let me know how many kilobytes your emailbox can handle at once.)
     The mailinglist is grappling simultaneously with the task of simply
     accumulating 'story elements' or axioms, and the more difficult task of
     agreeing on a standardized way of expressing them. Because the latter task
     is more technical and less interesting to many people, it will likely be
     spun off into a second list of its own sometime soon.
     The task of enumerating story-elements, though, is not so much a question
     of technical as of storytelling expertise. For this reason, the Wisdom-list
     eagerly welcomes non-technical contributors who nevertheless have a knack
     for spinning out plotlines, or a gift for clever plot twists...
     Every object tells a story... don't it?
     The obvious way to keep these collections of story-elements organized is
     according to which objects in the object-hierarchy they require. It's not
     that hard, for any object in a game (or in the world), to rattle off the
     basic rules of its behavior. One strategy for 'priming your pump' might be
     to ask:
        * Where does this object come from?
        * How does a person come into relationship with it?
        * How might the person use the object?
        * How might they change it?
        * How might they be changed by it?
        * How might their relationship with it end?
        * How might it cease to exist?
     One convenient format for compiling the answers to these questions might be
     called a "meta-story":
     The food meta-story: A person tended a garden or farm raising plants or
     animals to eat or sell. They harvested the food when the time was right and
     sold it or preserved it or prepared it and ate it or fed it to friends or
     family. If it was well-prepared, their hunger was satisfied and they were
     happy. The food travelled thru their intestines and had to be excreted. If
     they didn't get enough good food, they got thin and died. Maybe the person
     preparing the food put poison in it to injure the person who ate it. They
     might have to disguise the flavor of the poison. Maybe they prepared it
     poorly and it tasted bad.
     The bottle meta-story: A person heated up some sand in an oven and blew air
     into it with a straw until it became a bottle. When it cooled, they could
     pour liquids into it and put a cork or cap on it to keep the liquids from
     spilling or evaporating. They could also fill it by dipping it into a
     larger body of liquid. When they took the cork out they could pour out the
     liquids, or drink from the bottle. Two or more people could pass the bottle
     around and share the drink. If they dropped the bottle on something hard,
     it probably broke, and any liquid in it spilled out. The broken glass could
     cut a person when they touched it, if they weren't careful. It could make a
     car tire flat. If a barefoot person stepped on it they would get cut. The
     broken base might act like a lens to focus light and start a fire, or
     magnify something tiny. (The bottle with clear liquid in it might also be a
     lens.) The person could knock someone unconscious by breaking the bottle
     over their head. They could use the bottleneck to make their guitar play
     better. They could roll dough flat by using the bottle like a rollingpin.
     So one approach the Wisdom-list may use could be to accumulate a sort of
     'children's encyclopedia' of these meta-stories, elaborating each of them
     to whatever level of detail our creativity allows.
     But simply enriching the supply of intelligent objects won't necessarily
     make the IF-author's job easier. For one thing, the more pre-existing
     behavior that's been supplied for the game's objects, the harder it will
     become for the author to anticipate every possible solution to the game's
     puzzles. In fact, the farther we move in this direction, the less
     attractive the whole idea of puzzle-oriented IF begins to seem...
     IF and 'psychology objects'
     Cyc has been circling closer and closer to the task of representing human
     dramas, and claims already to have a working model of emotions and
     motivations, but the Wisdom-list won't stand a chance if it doesn't
     directly confront the problem of encoding literary plots.
     The classic analysis of literary plots is George Polti's "Thirty-Six
     Dramatic Situations". Polti analysed a huge range of classic plotlines in
     literature, and declared these to be the basic ones: Supplication,
     Deliverance, Revenge, Vengeance by Family upon Family, Pursuit, Victim of
     Cruelty or Misfortune, Disaster, Revolt, Daring Enterprise, Abduction,
     Enigma, Obtaining, Familial Hatred, Familial Rivalry, Murderous Adultery,
     Madness, Fatal Imprudence, Involuntary Crimes of Love, Kinsman Kills
     Unrecognised Kinsman, Self Sacrifice for an Ideal, Self Sacrifice for
     Kindred, All Sacrificed for Passion, Sacrifice of Loved Ones, Rivalry
     Between Superior and Inferior, Adultery, Crimes of Love, Discovery of
     Dishonor of a Loved One, Obstacles to Love, An Enemy Loved, Ambition,
     Conflict with a God, Mistaken Jealousy, Faulty Judgement, Remorse, Recovery
     of a Lost One, Loss of Loved Ones
     Only a few of these will normally turn up in the course of applying the
     meta-story approach to story objects, because the most important 'objects'
     in literary plots tend to be psychological ones, like emotions and
     The meta-story approach can still work fine as a way of accumulating
     story-elements, though, even if you choose a totally arbitrary
     startingpoint (for example, hypnosis), so long as you're comfortable with
     the storytelling aspect of things:
     The 'hypnosis' meta-story: Once a person learned they could control others
     by hynosis. So they hynotized others into giving away their money and power
     and their health and their self-respect. And these people didn't even
     realize what had happened to them. Eventually things got so bad they were
     desperate to discover the source of their situation. Then one person got a
     glimpse of the truth, and then lost it, and then saw it again, and tried to
     tell others, and got dismissed as crazy, and attacked, but finally figured
     out how to lead others to see the truth, and they rose up together and
     overthrew their oppressors.
     The intuitive familiarity of the story-format allows almost any topic to be
     productively explored...
     Reverse-engineering emergent-behavior
     While the artificial-life theorists have been hoping to discover a few
     simple laws that will result in a vast payoff of interesting stories, via
     the principle of 'emergent behavior', the meta-story approach might be
     thought of as an attempt to outdo them by 'cheating'-- first you spell out
     the stories you want to see 'emerge', and only then do you analyse them and
     try to 'reverse engineer' the set of simpler laws that will produce them.
     So even something as simple as Maslow's hierarchy of needs (physiological,
     safety, belongingness and love, esteem, cognitive, aesthetic, and
     self-actualization needs), which might seem like a plausible startingpoint
     for a simple set of a-life laws, leading to emergent behavior, reveals some
     extremely inobvious patterns (at least from a mathematical point of view),
     when analysed for meta-stories:
     The physiological-needs meta-story: Every so often, a person gets a craving
     to consume food and drink. They usually arrange to have a source of these
     nearby, that they can rely on for purity. They may prepare the food and
     drink, cooking things, cutting them up, mixing them together, adding
     flavorings to make the experience pleasant. Or maybe they expect another
     person to do that for them. Usually, a group of people who live together
     will sit down together to eat, at a table with plates and silverware and
     glasses. Afterwards, someone must clean up. Sometimes they may eat at
     restaurants, or in a vehicle as they travel. They may carry a container of
     water to drink (perhaps flavored or mixed with nutrients or stimulants or
     intoxicants), or stop at a vending machine or drinking fountain or coffee
     machine. If a person's daily calories consumed don't equal their calories
     burned, they lose weight. If they consume more, they gain weight. If they
     lose too much weight, or fail to drink enough, they can die.
     Water-plus-wastes is excreted by urination, food-after-nutrient-absorption
     by defecation.
     The safety-needs meta-story: A person felt unsafe, and they didn't like it.
     Maybe there were other people or animals around, untrustworthy ones, and
     their home wasn't secure. Maybe they had to leave the safety of their home
     during the day, and risked being attacked. Maybe it was nature that
     threatened them, in the form of high cliffs, deep holes, quicksand,
     dangerous bodies of water, weather that's too cold, hot, or violent, etc.
     Maybe it was poorly maintained technology that was the danger. The person
     changed the environment or changed their behavior so that the danger was
     lessened and they felt safer.
     The belongingness-and-love-needs meta-story: A person felt lonely. They
     sought out others' company and acted charming so they would be welcome. Or
     they acted domineering so that others would be afraid to reject them. Or
     they acted hurt so that others pitied them.
     The esteem-needs meta-story: A person felt that no one respected or
     appreciated them. So they tried to do something admirable, and then made
     sure that others knew about it. Or maybe they lied about doing something
     The cognitive-needs meta-story: A person needed to know something, or was
     just curious. They sought out a book and read it, or a teacher and took a
     class or asked them questions. Or they just observed the thing they didn't
     understand, and thought deeply about it, maybe doing experiments. If they
     discovered something new they probably published their findings.
     The esthetic-needs meta-story: A person was oppressed by a boring or ugly
     environment, so they made or acquired or sought out objects that were
     pleasing to their senses. Maybe they recorded the process of creation, so
     that it could be reexperienced later, by others. Maybe they positioned
     these creations within their environment so they could experience them
     often. Maybe they grew bored with them after a time.
     The self-actualization-needs meta-story: A person had everything they
     needed, but didn't feel fulfilled. So they looked within themselves to
     discover what their heart wanted most, and followed their bliss...
     Given the ambitious scope of the Wisdom list, there's a serious risk of
     getting bogged down in such a mass of story-content, that one loses any
     sense of a startingpoint, and so also any chance of actually building a
     working IF program!
     One way to keep these meta-stories somewhat 'grounded in reality' is to
     visualize them as being acted out on a computer screen, using even the
     fairly primitive existing standard for graphics adventures like King's
     Quest and its ilk. If your stories are too abstract for this technology,
     you probably haven't thought them through in enough detail!
     I like to imagine a sort of SimCity-like environment where a community of
     little NPC's go through their daily routines of life, in a completely rote
     fashion, with no emergent behavior expected or desired. (In honor of
     Normal, Illinois, I call this world "SimNormal".)
     Looking again at the belongingness-needs meta-story above, it's clear that
     before you can visualize it as a SimNormal animation, you have to break it
     down further, according to certain typical patterns of how these needs are
     The casual-acquaintance meta-story: A person gets to know another by being
     introduced, or by introducing themselves, or by crossing paths
     occasionally. When they meet they exchange mild greetings and smalltalk
     about weather, news, gossip, entertainment they've seen. If nothing
     divisive turns up, they may gradually open up and trust each other more.
     The simplest way to encode this might be to give each person an
     intimacy-level toward each other one. Zero would mean total strangers, but
     each time they noticed a given person it might increase by one. When it
     reached five, say, they'd shift to casual-acquaintance mode, and greet each
     other. If they're introduced, on the other hand, they might reach five
     right away. As this number continues to grow, their greetings should become
     more extended in time, stopping to chat if they're not in a hurry. (There
     could be a chatting animation that's designed to be cycled continually, for
     whatever duration they've reached.) Discovering common interests may cause
     the intimacy-level to skyrocket. Discovering incompatibilities, or failing
     to see each other for a long time, can cause the intimacy-level to drop.
     The best-friend meta-story: A person gradually gets to know someone else,
     and enjoys spending time with them. (Or maybe it's a sudden strong
     connection.) They arrange to spend time together, do things together, maybe
     talk on the phone. They tell each other their private worries, and try to
     help each other. These exchanges make them feel better. Sometimes they
     fight, and reconcile or not. Maybe one of them gets an S.O. and that causes
     them to break apart. Maybe it just stops being so fun, and they drift
     A person may maintain a 'short list' of those with the highest intimacy
     rating, and when they're bored or upset they'll look to these for support.
     A person-soothes-person2 story could be very simple-- time is consumed and
     person2 feels better. (Person1 may or may not feel worse-- if they do, it
     bodes ill for the friendship!) There may be a certain potential for
     conflict at each point, which should depend on the sorts of personalities
     they are, and whether they're in competition for scarce resources.
     The pals meta-story: A person has one or more best friends, and that group
     grows larger as others are allowed to join their get-togethers. Maybe
     they're invited or maybe they just show up and tag along. If someone
     doesn't like them they may be driven off. Several times a week, at least,
     they arrange to meet together. Maybe there's a power struggle between two
     who both want to lead. Maybe one by one they drop out; maybe others take
     their places.
     The planning-logistics of getting a group of free-thinking individuals
     together are a lot more complex than for just two. Maybe any of them can
     invite the others-- there'll need to be be a 'get-together meta-story' to
     handle this.
     The housemates meta-story: A person moves into a living-place with one or
     more housemates, sharing common areas. Usually, the housemates play the
     role of friends to some degree, listening to each others' daily stories.
     Some housemates are neater than others, and this will lead to conflicts.
     When bills arrive, they sometimes have to be split up unevenly and this may
     cause tensions. One person is probably the most responsible, signing the
     checks, etc. Each probably has one or more annoying traits that try the
     patience of the others. Maybe one by one they move away, and are replaced
     by others, or maybe they all leave at once.
     The co-workers meta-story: A person gets a job at a workplace, with others.
     Some of these become friends, others maybe casual acquaintances. Some
     become enemies. Even when they fight, they still have to work together, or
     quit, or ask for a transfer. Their enemies may try to make them look bad to
     their bosses.
     The confabulating-arranger model of IF
     So if we continue to pursue these directions of research, what sorts of IF
     might become possible? How do you give the player an infinite world, and
     still keep enough control to involve them in especially interesting
     If the computer 'knows' all the most interesting sorts of dramas in
     literature, one strategy could have it be continually, unobtrusively
     revising the virtual world behind the scenes, so as to open up as many
     interesting plotlines as possible.
     So the game might open with a person in their apartment, waking up in the
     morning, and if they go outdoors they may be presented with a series of
     neighbors whose dramas they can become involved in... but none of these
     dramas needs to have been worked out in detail beforehand. Rather, the
     computer will continually improvise new possibilities based on the player's
     choices, and the view of reality they've been allowed thus far. If the
     player chooses not to follow up any given opening, that's no problem...
     there will be many other options to explore.
     This way, the past is as undetermined as the future, and can be molded to
     any extent, limited only by what the player has already been shown and
     told. So the computer is actively arranging that new developments will be
     as interesting as possible-- "confabulating" reality, to use a psychiatric
     And in this, the "confabulating-arranger" model perhaps most closely
     resembles the activity of the brain, during dreams...!
        * Chris Crawford, "Flawed Methods for Interactive Storytelling" IED 7.4,
          April 1994.
        * Douglas B. Lenat and R.V. Guha, "Building Large Knowledge-Based
          Systems" Addison-Wesley 1991.
        * Michael J. Roberts, "TADS: The Text-Adventure Development System" Palo
          Alto, High-Energy Software, 1992.
        * George Polti, "The Thirty-Six Dramatic Situations" Boston, The Writer,
          1977 (originally published 1900).
     Some journal references for more on Cyc:
        * "CYC" AI Magazine 7(1), 1986
        * "When will machines learn?" Machine Learning, Dec 1989
        * "Cyc: Toward Programs With Common Sense" CACM, Aug 1990
        * "Knowledge and Natural Language Processing" CACM, Aug 1990
        * "Common Sense and the Computer" Discover magazine, Aug 1990
        * "Cyc: A Mid-Term Report" AI Magazine, Fall 1990
        * "The commonsense reviews" Artificial Intelligence, 61(1), 1993
        * "CYC-O" Wired magazine, Apr 1994
        * "Enabling agents to work together" CACM, 37(7), 1994
     [Up] [Map] [Next] [Robot Wisdom home page]
     [BACK] Back

      Report Article
    Sign in to follow this  

    User Feedback

    There are no comments to display.

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!