Posted by Michael on June 10th, 2006, in Development
All objects (including characters) in the game world advertise their opportunities. Mostly based on its relationship with these objects, a Drama Princess character chooses one of these opportunities as its goal.
An opportunity consists of several animations played in sequence. When a character chooses one as its goal, it’s going to play these animations one after the other. Some sequences will simply play from start to finish, after which a new goal can be chosen. Others may pause by putting the character in a certain state, typically expressed by a looping animation. After a while the character will get bored with this opportunity and it will finish the sequence by playing the final animation.
When a sequence has finished and before the character chooses a new goal, the character is in an idle state. To have the character return to the same kind of idle behaviour, like a neutral stance (as happens in The Sims and The Endless Forest) , looks very unnatural. To solve this issue our environment objects will offer several idle behaviours that are available for the current environment. So rather than going to a neutral stance when an animation sequence ends, the character will select an idle behaviour from the ones offered by the environment.
When a character is moving towards a relatively uninteresting goal and meets another character with which it has a good relationship, there’s a very good chance that it will interrupt what it was doing in favour of interacting with the other character. So rather than finishing the sequence and selecting an idle behaviour from the environment object, it will immediately start playing the animation sequence of the opportunity offered by the other character that it chose as its new goal.
For both cases, idle behaviour and interruption, a transition between two animation sequences will be required. Since so many combinations are possible (especially in the case of interruption), we cannot hard-code all transition animations.
Blending between two random poses almost always looks unnatural and can in some cases produce unwanted effects (like character rotating through the floor).
But we could simplify the problem by stylizing of our concept of invitation. When a character chooses to do an interaction with another character, it will send an invitation to this character and wait for it to respond and move to the right location and into the right starting pose. Then the interaction can happen, nice and synchronized. This moment of invitation could be made explicit in a certain pose that is always the same. Then the complexity of transitioning is at least reduced by half: we know the end of the transition.
The problem is that this may end up looking like a neutral stance in between animation sequences, mentioned above as decidedly unnatural. This is hardly acceptable. But it may be an area where we need to compromise. Perhaps extreme stylization (maybe in combination with camera cuts) may help make this more acceptable.
3 Comments »
Posted by Michael on June 10th, 2006, in Development
This is a refinement of the decision making process suggested in Consumerism.
All opportunities offered by all objects in the world (including characters and environments) are published to a global list of opportunities. The character will choose one of these opportunities as its goal. To reduce the list to a single opportunity, a set of filters is used.
Each filter
- orders the opportunities according to a certain value
- reduces the size of the list to a fixed number starting from the top
The filters are executed in a specific sequence.
Every ordering includes some randomness that allows for a small chance that inappropriate items are included in the top of the list.
Happiness has been replaced by Comfort. The difference is that while Happiness made the character choose the opportunity that promises the most happiness, Comfort makes the character choose the opportunity that fits the relationship best.
Situation is a new parameter that is used for making sure that the character is in the capacity to execute an opportunity.
1. Filter of Situation: possible opportunities only
- removes the opportunities that the character cannot choose, due to its situation
- reduces the list to possible opportunities only
2. Filter of Distance: near objects first
- orders the remaining opportunities according to distance modified by object type (characters can be further away than objects)
- reduces the list to a maximum of 30 items
3. Filter of Relationship: loved objects first
- orders the remaining opportunities according to relationship modified by attention span
- reduces the list to a maximum of 15 items
4. Filter of Comfort: appropriate opportunities first
- orders the remaining opportunities according to match of relationship & promise modified by fascination
- reduces the list to a single goal
Thanks to Comfort, relationships can evolve more dynamically as a result of achieving a goal. Instead of simply improving, the difference between promise and relationship can be added to relationship. If the promise was larger than the relationship, it improves. If it was smaller, it decreases.
5 Comments »
Posted by Michael on June 9th, 2006, in Development
It’s funny how thinking about models to drive autonomous characters seems like a philosophical excercise sometimes. Maybe this is only because of the words we use. But we shouldn’t let philosophical preferences influence decisions about what might be effective artistic tools, should we? Consumerism, for example, might be a good model for Drama Princess. But it should be treated only as a starting point, not as a metaphor.
Likewise, we have to use the words we choose (happiness, relationship, fascination, shock, etc) for their symbolic meaning in the context of the design and not for their meaning in natural language. On the other hand, choosing appropriate words does help thinking about the design.
Anyway, there’s a bunch of things that I don’t like about the model described below. So this is definitely not the final design. It has already moved away from its original concept and I thought I’d publish it before it gets mutilated beyond recognition.
INTRODUCTION
A Drama Princess character moves through a world of opportunities. Every object and character in the world advertises the things you can do with it to a global list of opportunities. This list is ordered differently for each character, according to parameters defined by its personality and condition. The character doesn’t make a choice: it just does the thing that is at the top of the list. Doing this thing influences the character’s condition. This leads to changes in the order of the opportunities list as a result of which the character’s behaviour will show variation and growth. At each level of the decision making process, a certain degree of randomness is mixed in, allowing for unexpected behaviour.
Environment, decision making, action and consequences…
12 Comments »
Posted by Michael on June 8th, 2006, in Development
Before we start designing, here’s a bit of a summary of things that have come up in these pages.
Requirements
- give characters believable autonomy
- express different personalities
- simple design
- ease of authoring
- straightforward implimentation
Ideas
- motivate characters by rewarding them (that way only one desire needs to be satisfied)
- use graphic symbols to help express emotions
- make the character (at least the avatar) express sympathy for the player
- seperate animations from goals (so that goals can be attained in different ways and can be composed of several animations and interactions -as in 8’s “Action Language”)
- make the environment trigger the behaviour
- attach a list of possible interactions to each object and character
- categorize actions in groups, don’t allow the character to switch groups too often (use attention span)
- arrange all actions in categories with a preference value assigned by the author
- define all actions and their effects in the context of relationships (with characters, objects and environment)
- define a relationship as a single value, from good to bad, shared by both parties
- or define a relationship as a pair of values, one for each direction
- model social interactions as (dynamic) objects that exist outside of characters and that encapsulate them and tell them what to do
- or (in There-speak) create a seperate “conversation mode” where the conversation itself selects (part of) the animations rather than the individuals
- distinguish between autonomy when alone and autonomy when interacting with another character: the latter should be controlled from a higher level (less emergent, more meaningful); the distinction could perhaps be a gliding scale rather than binary
Hints
- improve the player’s willingness to suspend disbelief
- make sure the player likes the character
- give character an attractive appearance (shape, colour and motion)
- make an avatar somebody the player wants to be
- make the character express affection for the player
- make the character change or grow as a result the player’s actions
- make sure aesthetic style and behaviour are on the same level
- simple behaviour should be matched with simple appearance
- the story happens between the ears of the player
- leave gaps for the player to fill in with his or her imagination
- model the symptoms, not the disease
- use Loyall’s requirements for believability in an artificial being as a checklist
- personality
- emotion
- self-motivation
- change
- social relationships
- illusion of life
- create drama that is larger than life, rather than an inferior copy of life
- use stylisation: leave out uninteresting aspects and exaggerate the interesting ones
- use the flaws of your system to your advantage (choose the system’s limitations carefully)
- they can help express personality
- they can provoke a desire to help or to care in the user
No Comments »
Posted by Michael on June 7th, 2006, in Development
A way to test Drama Princess mentally is to imagine whether it could display the behaviour of other autonomous characters. Could Drama Princess drive Yorda? Or Black & White’s creature? And if not, what’s missing from the system?
6 Comments »
Posted by Michael on June 7th, 2006, in Games
There is an interesting multiplayer environment. It’s very focussed on chat and since all characters are humans, that can be a bit strange. Especially given that they all look so cute. Same style, same age, etc. It’s as if the designers are trying to create some “Love Boat dynamics” (and indeed, the first thing that happened to me was that a girl took me to a secret pool and immediately wanted to kiss me -I mean I did look incredibly cute, but still… 😉 ).

Anyway. What is interesting in this game is that you don’t have complete control over your avatar. Especially in social situations. All avatars respond to each other autonomously. When you walk past someone, their avatar will look at yours. The player doesn’t need to give it a command to do so. It’s autonomous behaviour. When you try to participate in a group, the avatars move out of the way, to make some room for yours.
And then there is the special conversation mode which connects the avatars together in a group activity. The camera changes to show the whole group and the avatars look at each other. Once in a while, they will nod simultaneously to each other, again without user intervention. It’s as if the avatars form their own community.
This automated body language works really well to create a feeling of social harmony. Willy-nilly you believe the avatar on the other side, and its automatic behaviour subconsciously puts you in a friendly mood towards the player represented by it. Very powerful stuff.
10 Comments »
Posted by Michael on June 6th, 2006, in Development
June is the month that has been scheduled to design Drama Princess. On the one hand, I feel like I have only started my research into this topic and there’s so much more interesting stuff waiting to be examined. But on the other, trying to actually make something will help us make decisions about which study material is useful for our project and which is not. Also, theoretic musings, while amusing in and of themselves, and very valuable as preparation, are not very satisfying for hands-on designers like ourselves.
From what I have learned already, I’m not expecting the system that we will now try to design and build to be the ultimate solution to our problem. I think we’re going to call it “version 1.0” and hope we get the opportunity to develop it further later on. After all, our main motto is “it’s better to make something than nothing”. 🙂
This does not mean that Drama Princess will be incomplete. There is a real game, 144, that we want to make that relies on this technology to work. This game has been designed and scheduled, so we have a strong motivation to build something that really works.
The first thing we need to come up with is a “shopping list”: a list of elements that we will need to make a complete system.
As a reminder, we’re talking about building a system for a non-linear interactive realtime 3D environment with no spoken or written language. All characters will be driven by Drama Princess, including the player’s avatar. And the project will be built in Quest3D, a realtime visual programming environment for DirectX.
Shopping list
- character model and skeleton
- skeletal animations
- morph targets for facial animations
- animation selection system (Drama Princess core)
- object interaction (emotional response, observation, using)
- perception (of environment, objects, characters and their properties)
- navigation (motion, path finding, obstacle response)
- external special effects (footstep sounds, footprints, shadows)
- body special effects systems (clothing, hair, inverse kinematics)
Note that relatively trivial elements (such as interfaces between different elements) have been left out.
This list already represents a number of choices. We’re going to use a large number of pre-made skeletal animations and a system that will choose which animation a character should play. This system will be the core of Drama Princess where all the “A.I.” stuff will be happening. Object interaction could be considered to be a part of this, but we chose to list it seperately because it involves objects, which have to be dealt with on a higher level in the game engine design as well.
The list also implies a “philosophical” decision which has probably been sufficiently announced through previous posts: we consider the core of Drama Princess to be an “animation selection system”. This is not merely because, in the end, given our context, any A.I. system could be reduced to this. But also to keep us focused on our goals: animations is what the player will see, not mood, or mind, or intelligence, or even drama. All those things have to be triggered by the animations in the imagination of the player. But all that Drama Princess does, is select and trigger these animations. Whether we need a simulated mood or mind for that remains to be seen and is only a secondary problem.
The first three items in the list are “data”, i.e. to be produced by artists. But the choice of animations will at least be partially influenced by the “processes” designed in the remaining six items. The last item will be programmed in such a way that it impacts the logic of the other systems as little as possible.
It’s quite possible that this list keeps evolving as the design happens. But at least it gives us an idea of the scope of the project and the context of its core.
3 Comments »
Posted by Michael on June 6th, 2006, in Projects
Improv is a system designed by Ken Perlin for authoring autonomous characters. It consists of a Behavior Engine and an Animation Engine. The Behavior Engine allows the author to write simple scripts that help the characters make meaningful decisions. The Animation Engine is rather unique. Each animation is defined as a collection of pairs of the most extreme angles that bones are allow to be rotated in. The engine then interpolates the rotation of each bone seperately, with a fair bit of randomness (also defined by the author), between its two extremes. The result is smooth motion that never repeats itself and is surprisingly expressive. It’s a fascinating approach to animation that merits a lot more research and application. Sadly, Mr. Perlin has patented his “invention” so we shouldn’t hold our breath for any revolution in computer animation.
His website contains several examples of Improv-like animations.
And this document explains the project very well.
1 Comment »
Posted by Michael on June 6th, 2006, in Projects
Andrew Stern has been doing the kind of stuff that we’re looking into on these pages for years. He has been involved as a designer and developer in pet games Dogz, Catz and Babyz as well as the recent interactive drama Façade. He’s made numerous publications and presentations on the subject of autonomous characters and is a very active contributor to Grand Text Auto.
I had the pleasure of interviewing him via email. He starts by answering two questions simultaneously.
Michael Samyn: What do you think of the “paradox of the actor“, as described by Diderot in the 18th century, in relation to autonomous characters? Diderot claims that the best actor is the one who does not feel a thing but who excells at imitating only the symptoms of the behaviour of humans. Is it required for virtual actors to feel the emotions (i.e. to posses a mind) in order to express them?
Your work has always favoured artistic goals over scientific ones. Still I feel that there is a strong scientific “reflex” in the solutions you come up with. A lot of your work seems to attempt to model a character or a story from the inside out, which I consider to be the scientific approach (break things apart and put them back together). Do you feel that a scientific approach is required?
Andrew Stern: First, let’s realize that even the most sophisticated “mind” we can program with contemporary methods will be but pale imitations (greatly simplified versions) of real minds. So arguably all we can do, practically speaking, is imitate symptoms of human behavior anyway. But the spirit of your questions is, should we attempt a cognitive solution, that attempts to model mind-like processes, or should we create some other simpler, perhaps an ad-hoc solution?
The answer is, it depends on what you want your virtual actor to be capable of doing. If you’re happy with shallow interaction, say, stimulus-response interaction, then an approach such as AIML, used to make the text bot A.L.I.C.E. will suffice, which is basically a large number of inputs mapped in a relatively simple way to outputs.
A.L.I.C.E. is quite broad, and very shallow. It works for certain domains and artistic goals; in fact the creator of AIML and A.L.I.C.E. has been known to say that statistically speaking, most real human conversation is shallow, stimulus-response interaction. I see A.L.I.C.E. as, in a sense, a commentary on the shallowness of the typical human conversation; the system is successful in that regard.
But if you want you virtual actor to have deeper responses, that is, responses that take into account the history of the player’s input, that result in more meaningful, cumulative responses to your discourse, you’ll need to be keeping track of the discourse (an episodic memory), to be modelling attitudes and beliefs over time (a model of emotion, knowledge, personality), give the actors motivations (goals and plans) and so on. The models are some sort of encapsulation of the “rules” of how your actor should behave, implemented in some relatively elegant, thought-through, non-ad-hoc way.
At the end of the day, there’s just no way to fake that. And at the end of the day, most artists want more than less meaning and depth in their work.
Note behavior models (e.g. episodic memory, emotion, knowledge, personality) — which are in essence various ways of keeping track of and modulating the actor’s state as it changes over time in response to the player’s actions — can be much simpler than real minds are, and in fact may not really directly mirror any systems actually in the human mind. Nonetheless, they are non-trivially sophisticated models of dramatic behavior. In fact, because they’re modelling dramatic behavior, they will necessarily differ from biologically-inspired models of behavior, e.g. a-life driven agents.
Behavior models are also the key to creating characters that can generate behavior, that is, virtual actors that can get themselves into states and as a result perform patterns of behavior over time that weren’t explicitly pre-written by their author.
Another way to answer your questions — and this is something my collaborator Michael and I often say — is that there is no “design only” solution to creating non-trivially interactive characters and stories. To make something more sophisticated than a stimulus-response bot or a choose-your-own-adventure story, one needs to start modelling behavior.
I think modelling behavior is probably equivalent to what you’re calling truly “feeling” the emotions they are performing. Do real actors need to do that? By and large, I think many successful actors truly feel the emotions they are performing; by doing so, it allows them to generate a more authentic, robust performance.
Finally, let me say that these dramatic models of behavior, while technical in form, are heavily shaped by our artistic goals. That is, when creating these models — essentially these rules governing how virtual actors will behave — we’re always thinking about how the player perceives this behavior, are these rules going to result in the kind of performance we want to achieve for this actor, etc. As artists, we’re still very much in control of what the actor will ultimately be capable of doing or saying, even though exactly what is said and when will be determined in real-time, in response to the player’s actions. Even as these models get deeper and more generative in the future, I feel we’ll be able to retain a high level of authorial control over them.
MS: How do you feel about the concept of plot in interactive storytelling? And more specifically about the concept of a drama manager (a computer program that steers an interactive story towards an interesting plot arc)? Do you believe that a drama manager can be built to tell stories that can rival traditional literature or good theater? Or is pulp and formats the best it can do?
AS: I very much want to create systems that can generate a variety of narratives, in response on a moment-by-moment basis to what the player is saying and doing. Necessarily, this means we must abandon the ideal of a tightly-plotted story, because players are always going to be experimenting, pushing things in all kinds of directions, that will rarely allow for an extremely well-formed overall plot to be created.
That said, let’s not forget that in a real-time collaboration between the human player and the drama manager, that the drama manager — who is controlling the behavior of all of the virtual actors — is one half of the overall authorship of the experience. 50% control over the events being generated in a story is probably is enough to allow a loosely-plotted story to be created, if the overall domain of the story is set up to allow for that.
For example, in Facade, you’ve got the player vs. the duo Grace and Trip. The player can say and act any way they like; they could act like they’re dying, or act really violent, or completely absurd, what have you. The coordinated duo Grace and Trip will attempt to respond to the player, but also can believably mix in their own agenda, even believably ignore the player at times as needed (just as the player may ignore Grace and Trip if she wishes). You may end up with a absurdist story in the end where the characters each seem to be in a world of their own, but because the characters all share the same space and to some extent are reacting to one another, I’d at least call that loosely-plotted.
(Ideally the human player and drama manager cooperate and help each other out, at least some of the time.)
I’m not at all interested in making a drama manager that attempts to force the player into a particular story. If Facade seems to do that, it’s only because we ran out of time and/or energy to author a broad enough array of responses to at least respond to what the player wants to do. (This is another argument for more generative models of behavior, to help make virtual actors even more responsive to the player.)
Once you buy into the idea of allowing for loosely-plotted stories, even “bad” stories to be generated, we get rid of several of the supposed conundrums of interactive stories: 1) we get rid of the conflict between freedom vs. well-formed plot, because we’re not requiring a well-formed plot, we’re okay with a looser plot; 2) we get rid of this concern of some that too much freedom is bad thing, that we must greatly constrain players in order to ensure for a satisfying experience. I’m much more in favor of an open ended interface, that allows players to do and say anything they want, and only apply constraints on how the virtual actors will decide to interpret and work with the player’s actions. Again, let’s give the player a full 50% of the authorship of the story, and the drama manager 50%. Ideally the player and drama manager cooperate, but they don’t have to.
MS: The linearity of a story and the linearity implied by goal-oriented gameplay seem oddly compatible. This motivates people like Marianne Krawczyk (writer for God of War) to claim that they overlap, that the story of a game is expressed through goal-oriented gameplay. Obviously your narrative ambitions go far beyond anything an action game can express. Does this mean that goal-oriented gameplay should be abandoned?
AS: No, goal-oriented gameplay shouldn’t be abandoned, in fact it should be expanded and broadened. It’s only natural that players find achieving goals satisfying. But allowing players to form their own goals and be able to pursue and achieve them, in various ways, will be far more satisfying than offering players only one primary goal and one linear path to achieve that goal.
Just as importantly, we should allow players the freedom to just screw around, to play, to not pursue a goal if they wish. In total, we should be making dramatic worlds that allow for both freeform play, as well as goal-oriented play.
MS: You once mentioned that you thought of agency as one of the most important elements in interactive fiction, i.e. the things that the player can do and how this effects the other characters and the game world. Why is agency so important? Does a higher level of agency improve the story? And if so, how?
AS: I mention it all the time in my blog posts! Agency is the most fundamental property of interactive anything — be it games, web surfing, email, what have you. If you can’t have meaningful influence over what you’re doing when you take action on the computer, why is it interactive? If you’re to be led through an experience, why didn’t the author just make a movie or write a book?
But like I said earlier, I don’t think players need 100% control over the experience; an interactive experience can be a 50/50 collaboration between the human player and the system — where the system is a proxy for the human artist/programmer who created it.
Let’s not forget, ultimately, playing interactive art/entertainment is an interaction between people, via the artifact of a software system — particularly when the system is simulating (dramatic) human behavior, i.e. virtual actors.
13 Comments »
Posted by Michael on June 5th, 2006, in Development
This is a little summary of what came out of our Drama Princess Symposium last month.
Certain properties that came up as desirable in autonomous characters:
(i.e. things that were assumed to make them seem more believable):
- different personalities
- consistent emotions (no unexpected mood swings)
- growth, evolution, changes in mood
- unique bond with the player and with each other
- match between the personality of the character and the function it has in the game as well as the limitations of your software
- a layer of interpretation/translation can help believability (Black & White) as long as it doesn’t represent the underlying system too directly (Sims)
- actions with consequences
- some time for the player to develop feelings for the character
- various ways of performing the same action (at least for realistic-looking characters)
- an avatar on the same level as the characters to help develop feelings for the characters (or alternatively a well defined role such as that of a god in Black & White)
- acting on (perceived) moods, opinions or goals
- choices that aren’t just motivated by needs and wishes
- activities that player and characters do together
- reciprocity: characters returning the affection you invest in them
- response of characters to your actions as player (either immediate or delayed)
Things that don’t necessarily seem to be required:
- intelligence (stupid characters are acceptable)
- realistic appearance (matching appearance with sophistication seems more appropriate: stylized behaviour is ok for characters that look stylized)
In general, it seems that the players in our symposium didn’t have any particularly high demands in either graphics or programming. Whether or not they found an autonomous character interesting, depended more or on design consistency and narrative context. They seemed to be perfectly willing to accept limited “intelligence” as long as the context was appropriate. So communicating this context seems to be half of the work. Communicating the intelligence of the character itself didn’t seem very interesting. On the contrary, in general it seemed that obscuring clear communication about a character’s mood and mind leads to better believability. Vagueness allows for projection and empathy.
What did seem to be expected was evolution, growth or change. Both in the character’s behaviour as in the interaction between the character and its environment, including other characters. A clear impact of the actions of the player on the game environment, seems to be highly desirable.
3 Comments »