(The Truth
About Catz and Dogz)
From the proceedings of the
1997 Computer Games Developer Conference, Santa Clara, CA
By Ben Resner, Adam Frank,
Andrew Stern.
benres @aol.com
What is an Autonomous
Character?
Traditional computer games
have centered around characters for years. But these are not autonomous
characters, they're merely puppets controlled by the user. The dexterity of the
game's character is directly proportional to the dexterity of the user. For example,
the faster someone can hit the fire button, the more rounds of ammo the
character can fire off.
An autonomous character is
not directly controlled by the user. This should not imply they are independent
of the user, for their behavior is strongly influenced by what the user does.
The user and the character form a relationship, where each one learns from the
other.
In traditional games, the
user is represented in the game world as the character, either by an image of
the character, or the character's point of view. With an autonomous characters,
the user is represented as the user himself, usually via the arrow cursor or
some other independent interface element.
This distinction is central
to the design of the Petz products, starting with Dogz, then Catz, and most
recently Oddballz. For example, in Catz and Oddballz, the pet has the same
access to the supply shelf as the user. This reinforces the relationship
between the user and the pet. The toys and other objects in the Petz playpen
are for both the user and the pet. The user does not have special access to
items in the Pet's world.
For a computer pet or other
autonomous character to be believable it must show personality. To that end,
we've focused on Artificial Personality (AP), rather than Artificial
Intelligence (AI). AI is clearly superior at solving actual problems, such as
learning mazes, recognizing faces, or sorting items according to color, size,
or some other constraint. But AI rarely looks to the user like intelligence.
Users make judgments of intelligence based on how the pet acts, not on the
final outcome of their actions. For example, a dog that struggles to figure out
how to open a cabinet but ultimately fails is much more appealing to a user
than a dog that figures out the system immediately. While the latter dog has a
superior AI engine, and is more "intelligent", the former will have
much more warmth.
To this end, Petz design
have been much more influenced by Disney than by Minsky. Timing is the central
element of comedy, and it's no different for autonomous lifelike characters. AI
focuses on the result, neglecting timing and performance. AP tools center
around the ability to tightly control timing. Many variations and alternate
scripts for the same goal are included in the Pet to avoid any one
"solution" becoming stale. It's more important for the pet to look
intelligent than to actually be intelligent.
One of the most powerful
aspects of the user-pet relationship is the user's ability to tell stories
about the Pet. We receive lots of mail from customers where they narrate
experiences with their pet far beyond what any AP or AI engine could ever hope
for. These are stories full of complex and sophisticated relationships
developed over long periods of time that are simply not part of the shipping
code.
Users tell these stories
because the pet looks like a pet and acts like a pet. Petz development has been
shameless about taking advantage of this. Just as children will tell stories
about their stuffed animals as if they were real, adults will tell stories
about their computer pet, as if it was real. The only difference between adults
and children is adults need to be tricked into telling their story.
A fun "party
trick" is to ask someone to make up a story. Children have no problem with
this kind of make-believe, and start talking immediately. Most adults, however,
will stammer, saying: "Oh, I don't think so, I can't tell stories".
The reluctant adult is then told: "OK, I'm thinking of a story. Why don't
you ask me yes or no questions about the story I'm thinking of". Provided
the person is still game, questions usually flow freely. "Does it have a
happy ending?" "Is it about a baby?", or "is it about
someone at the Computer Games Developer Conference?".
Questions are answered
according to a very simple algorithm. If the question ends in a consonant,
answer "yes". If it ends in a vowel, answer "no", and if it
ends in a "y", say "maybe". If there are too many "no's"
in a row, answer "yes". This avoids negativity, which is
discouraging.
The adult has essentially
been tricked into telling a story. Never mind that it's being told as a series
of questions, the adult generating a narration totally on his own. But before
this could happen, the adult had to be convinced it wasn't their story, thus
removing all risk of embarrassment.
With autonomous Petz, this
"risk of storytelling" is similarly removed. Adults feel silly
telling stories about stuffed animals because they've been taught they should
know better. But the vast majority of adults is unaware of the limits of
artificial life on an average desktop computer, and will accept a behavior
engine far more powerful than what an average desktop computer can support.
They don't feel childish narrating complex stories about their pets because
they're convinced the pet is the origin of the story, and not their own mind.
We focus on creating the illusion of desktop life.
Creating a pet which allows
this flexibility is a lot of work. A pet with too much random behavior will
appear disconnected. Alternatively, too little randomness creates a robotic and
repetitive pet. Tuning the personality between these two extremes is a large
part of the art of realistic personality development. We use what we call
"constrained randomness" to find this balance.
One of the design goals of
Petz was to never penalize the user for doing something wrong. During product
development, when we would watch users using the Pet, we're often tempted to
say: "Don't do that" or "You're doing that wrong". This
wasn't a shortcoming of the user, it's a shortcoming of the product. The issue
isn't how to educate the user, but how to design the pet so that the user's
offending action will have some effect on the pet. Every interaction should
increase the user's ability to tell a story about the pet.
For example, petting is an
excellent means for user to bond with the pet. Our first few attempts at
petting were awkward, and it was difficult to for users to get the pet to
respond. Instead of attempting to educate the user about how to pet a computer
pet, we had to continually tweak the petting algorithm to allow for all kinds
of users to have successful petting interactions. Often this meant reducing the
sensitivity of petting in order for it to work with a wider audience.
Computer Petz is about
putting on a show with high entertainment value. Just as writers often remark
their characters have taken on a life of their own, the same must happen with
computer Petz. Computer Petz must have distinct personalities, recognizable
from each other.
Before actual coding for a
pet is started, a personality worksheet is generated. This drives all
subsequent design decisions how does the pet walk, how does
the pet respond to danger, and so on. Instead of "making it up as we go
along", we have a fixed reference to guide all decisions points. This
makes sure the pet has a consistent personality towards all objects in its
world.
A key component of autonomous
characters is direct interaction. Users need to feel as if they're actually
touching a real pet.
To this end, autonomous
characters must be able to transition from any state to any other state in a
very short amount of time. When the user double-clicks to gain the Pet's
attention, the response must be immediate. If the engine takes a few frames to
respond, the effect is lost.
For this reason, Petz uses a
real-time rendering engine rather than cell-drawn animation. While cell-drawn
animation usually looks much better on a frame-by-frame basis, and is much
easier to control, it has very limited variation, and rapid transitions are
difficult.
By using real 3D animations,
the pet can be viewed from any angle. We also use layering to combine two
animations into one. For example, this allows the pet to walk while turning
it's head to keep its gaze fixed to a moving object. Additionally, we use
motion scaling and tweening further modify animation data. We also have control
over eyelid height and eyelid tilt, extremely powerful tools for communicating
the pet's emotional state to the user.
All these programmatic
animation effects create a very lifelike pet. The user can play with the pet
for an hour, and never see the exact same animation frame twice. Users are very
keen to repetition, and once they see the same animation too many times, the
pet ceases to be alive, and simply become a robot.
Direct interaction allows
the user to actually feel like they've reached into the computer, and are
touching a living animal. For many people, the computer pet idea doesn't
"click" into place until they have a chance to grab or stroke the pet
themselves. They'll watch a demo with a smile, but never actually laugh until
they get to grab or stroke the pet themselves.
Critical to the bonding
between user and autonomous character is uniqueness. Much effort has gone into
making each pet slightly different from each other. Users can color their pet,
and teach them tricks. By lavishing or withholding attention or food, the user
can change the pet's personality. Every user must be made to feel their pet is
unique and special. If my friend and I adopt a pet of the same breed on the
same day, after two weeks of playing, the pets will be noticeably different.
A key to this bonding is the
adoption process. The user carefully selects their pet, which starts life as a
puppy or kitten, and grows into an adult over the next few weeks. We use the
real-time render effects described above to show the pet in any stage of
maturity, from newborn to adult. Most people are naturally drawn to animals
with big eyes and big paws, and we've found it's no different with computer
Petz.
The user doesn't get a fully
realized cartoon character with a predetermined name, and hardwired quirks. The
user only gets a personality template. The user is responsible for naming the
pet, and developing the idiosyncrasies that is one of the hallmarks of pet
ownership.
With an interactive Bugs
Bunny, for example, users would not expect to alter Bug's personality much, or
see him grow and change over time. Bugs comes with established personality
traits, and most users would not try and go outside these bounds. This may
increase play-value in the short term because there's very little learning
curve. But it's difficult to form a relationship with an inelastic personality.
With generic pets and pet
breeds, the limits are much looser. People come into Petz with strong
expectations of how a cat or dog acts, and even how different breeds act, but
not much more. People expect to be able to influence the personality of their
puppies and kittens.
One of the reasons we chose
to do Dogz and Catz first is because of the expectations users bring to the
product. When the user sees a ball and a dog, it's pretty clear what to do.
Perhaps the largest design
issue with autonomous characters is death. Should autonomous characters die? To
many, a character can never be alive unless the user knows it will eventually
die. Immortality cheapens the experience by not making the time precious.
After many debates we
decided against death. While we're trying to create a realistic software pet,
we're still software. Early focus tests and product feedback has made it very
clear most users will be scared away by responsibility towards the pet, or the
knowledge the pet will eventually die and cause them grief. While a bond does
form between the user and the pet, the majority of the experience is still
about fun and entertainment, and not responsibility.
Most people are aware that
ill-behaved hyper puppies that gnaw furniture and mess up the floor, with
proper training, will eventually turn into loyal and well-behaved companions.
Imagine installing a piece of software that did similar things to your computer
-- slowed performance, mangled or deleted files, and caused crashes. How long
would it be before this software was deleted from the computer? It's way
premature to expect people to tolerate the downside of a hyper-realistic
computer pet in order to get to the reward.
As the power of computer
pets grows, this will change. People will come to expect more, and thus be
willing to work harder to get there. And this hard work on the part of the user
will become a powerful tool for bonding with the pet.