Posted by Michael on February 27th, 2009, in Development
Debugging “compound” behaviours like “Do Now” and “Do With Object” is turning out to be a bit of a nightmare. Fixing one thing for one specific behaviour often causes errors in another specific behaviour. Errors that sometimes take a long time to be discovered.
Instead of making these huge behaviours with lots of switches for specific elements, it would be better to put shared elements into separate modules (like “Go To Target” already is, e.g.) and still make unique systems for each behaviour. Or perhaps a more object oriented approach would work.
No Comments »
Posted by Michael on June 10th, 2008, in Development
Applying the Drama Princess system to The Path is revealing yet another issue.
Most behaviours in the game can be executed with one of three “meta-behaviours”:
- Do Now
just play an animation
- Do With Object
play an animation that involves an object
- Do With Actor
play an animation synchronized with another actor
I’m re-using these three behaviours over and over and simply adding parameters for different Goals, Actors and Objects. So these behaviours start looking like large collections of switches. Which is not very elegant.
On top of that, there is not even such an extreme difference between these three. I’m starting to think that perhaps it may be better to only have a single script and a whole set of parameters per Behaviour, rather than a complete script for every Behaviour (which often contain overlapping systems).
The advantage of the current system is that it keeps things clear and open. A Behaviour currently can do anything. It has access to the entire game. This is very powerful and useful. This way Behaviours can control entire cut scenes and even the game flow. Even the control of the avatar is defined as a behaviour (one that is certainly too complex to fit in any of the above meta-behaviours).
No Comments »
Posted by Michael on May 19th, 2008, in Development
Working with Drama Princess in The Path is actually quite fun. It’s easy to add new actors, objects or behaviours and see them function in the game immediately. But we are also discovering some things that should probably be adjusted in the Drama Princess design. One of those things is the idea that in general, all behaviours with all objects are available to all actors. This is a fine idea in theory, but in practice, for an actor to be able to interact with an object, a specific animation needs to be made. And often, if you’re telling a story, for most of the actors, doing this behaviour is irrelevant. We prevent actors from trying to do behaviours that we have no animations for by tweaking the Conditions for selecting the behaviour. In the game, we often end up with the conditions being “if the actor is actor A or B”, which is not really the point of the conditions.
I still think that the theory is great: that in principle every actor can act out every behaviour. But since they would all do this in their own way, this becomes virtually impossible in practice because of the massive amount of animations this requires. Maybe in the future, it will be possible to build an animation system that doesn’t require all these assets but works in a more generative way, while still allowing enough room for expressing personality and attitude (created by an artist).
No Comments »
Posted by Michael on June 8th, 2007, in Development
I’m working on The Path again now. Basically hacking away all excessive features to come to a minimal environment that will allow us to tell our story. The freedom and the agency that the “classic” Drama Princess allows for, just doesn’t work in a horror context. It’s too much fun. 😉
So we’re reducing the autonomy of the NPCs now, and increasing that of the avatar. When the NPCs are close to the avatar, they turn into Objects to some exent, offering opportunities to the other actors but not selecting any for themselves. Simultaneously, we have removed the on screen interface of the player in favour of allowing the actor to select opportunities for herself, when the player stops controlling her. It feels a bit like 8. Which was the starting point of Drama Princess, so it feels right.
So far this looks very promising. We are modifying Drama Princess to serve the purpose of The Path. But perhaps we will learn a few things that can improve Drama Princess as well.
2 Comments »
Posted by Michael on May 2nd, 2007, in Development
Still thinking about “doing nothing“.
There is a system in Drama Princess that makes the Actors look at Objects. It is not part of any behaviour but just an automatic system that is always active. It makes Actors look at objects in their vicinity, follow a moving actor with their eyes and just randomly look in a non-specific direction once in a while. Perhaps we need more systems like this to allow Actors to “do nothing” in a believable way. Without needing to make a decision about choosing a certain behaviour. Just automatic responses to the environment, or reflexes.
Two things come to mind: proximity and imitation.
The distance between two Actors tells a lot about their relationship. Actors should be able to automatically choose the distance to another Actor that is appropriate for the affection between the two. Also, looking at each other or looking in the same or opposite direction, can be very meaningful. Facing each other or standing side by side.
Actors that remain close to each other for a while probably like each other. When people like each other, they imitate each other’s pose and motions subconsciously. Drama Princess actors could do the same. If one Actor looks at a bird flying by, the other should probably look at that bird too (or at least in the same direction). If one Actor strokes his hair, the other could do that as well. Etc.
No Comments »
Posted by Michael on May 1st, 2007, in Development
It seems that, in my efforts to create variation in the behaviour of the Drama Princess Actors, I have created a new form of repetitiveness. When an Actor does something, he loses Interest in doing that for a while to allow him to do something else. That something else is more or less the next best thing on the list. After having done that, he loses Interest in that as well. Etcerea. He basically goes through the whole list of things to do until Interest in the first thing on the list has risen enough to allow the Actor to start over from the top.
This is not a complete deadlock because there is some randomness involved in the selection process, but it is definitely a pattern that is clear and that reduces the believability of the Actor. Especially when this Actor is interacting with the Avatar of the player.
One of the things that leads to this situation is that behaviours are the only way in which an Actor can express their autonomy. And their autonomy is about the only thing that we allow them to express. So they have to do something. Because otherwise they would not be autonomous.
I now think this reasoning is flawed. It is perfectly acceptable for a character to do nothing at all for a while, to just stand there. Especially in certain situations.
This is why we introduced the “Hang Out” behaviour at some point: it allows Actors to choose to just be near each other, without doing anything special. Hang Out probably needs to be expanded. One of the things that we could add to the Hang Out behaviour is Imitate. When one actors goes and sits down, the other one does too. When one actor looks in a certain direction, the other does too.
Using Drama Princess in the context of The Path has confronted us with some serious omissions regarding the player’s avatar. The other Actors were treating the Avatar as just another Actor. The behaviour between two autonomous Actors is allowed to be a bit random because the viewer can make up a story about the interaction. But when the autonomous Actors interact with the avatar of the player, there is not so much room for imagination. As a player, you tend to have a fairly good idea about what the situation means and what you want to do in it. If an Actor starts doing things that don’t fit the situation (like walk off to pick a flower while you were standing there begging to be hugged), believability sinks (along with entertainment).
As a solution, we have been considering reducing the autonomy of Actors as they get closer to the avatar. At first we thought of this as a hack, disabling Drama Princess in favour of more compelling gameplay. But perhaps this solution can be useful for Drama Princess too.
Not that we want to turn off autonomy, but it does need be limited by the situation. Especially a situation created by the interaction between two Actors. The interaction between two Actors creates certain expectations in behaviour.
The first expectation is that you do not randomly break off the interaction to go off and interact with something else. Starting and ending the interaction needs to be more significant than that. The solution may be to remove all opportunities for interaction with other objects until the Actor explicitly choses a “Walk Away” behaviour to end the interaction.
The next expectation is that you do not do things that don’t fit with the state of your relationship. While this has been one of the focus points of Drama Princess, our attempts at reducing repetitiveness and our insistance on the Actors doing something has lead to a situation where the Actor, after losing Interest in all suitable interactions, may end up doing something completely unsuitable. This can be prevented by being more strict about which behaviours Actors are allowed to choose with regards to their Affection for the Object and by allowing them to do nothing (i.e. “Hang Out”).
It’s kind of ironic that in the end, autonomy can only be expressed by doing nothing. But it seems to make sense. And perhaps we can making “doing nothing” more interesting by creating Behaviours for the Actors that are a lot “smaller” than the usual ones (go to object, use object, etc). Looking in each other’s eyes, nodding at each other, going to stand in certain formations (with proximity and direction of the body expressing the relationship), pointing things out to the other, talking and telling jokes, of course (though not so suitable in words-free universes such as those created by Tale of Tales). All these behaviours would only be available when that Actors are “officially” interacting with each other, i.e. when everything else in the world has disappeared and they only have eye for each other.

2 Comments »
Posted by Michael on April 11th, 2007, in Development
Drama Princess is a largely “passive” technology. Actors don’t have a mind of their own. They slavishly do whatever their environment tells them to do. Once in a while, however, you need an actor to “wake up” and respond. For instance when another actor invites him for a walk, or when the actor is being pushed and should fall in response. For these kinds of things we have developed the “Shock System”.
An actor, or any trigger in the game, can send a Shock to another actor. This Shock is an Opportunity like the ones broadcasted by the environment, except that it has an “Urgency” value. The more urgent the request is, the more likely that it will make it through the Decision Filters.
The current implementation of Shock, simply adds the Opportunity to the list from which the system chooses one for the actor to do. In a next round of decision making it disappears because the list is rebuilt every time. If the actor missed it, then it’s gone. To make a Shock more persistent, so far, I have repeated the Shock request in Behaviours.
If you don’t repeat the request, then the actor only has one chance of responding. And if that actor is controlled by the player, it’s virtually impossible the catch it, especially if we increase the speed of the decision making (which seems like a good idea for the player’s avatar).
The solution I came up with is to not remove any Opportunities with some Urgency from the List of Opportunities wen starting the decision making process. Instead just reduce the Urgency a little bit every time. That way, the Shocks will stay present in the list for a while longer and gradually disappear.
No Comments »
Posted by Michael on April 8th, 2007, in Development
While working with Drama Princess in The Path, I’m realizing that the focus of Drama Princess on autonomous characters has some disadvantages. While working on Drama Princess by itself, I tended to imagine a situation where all actors are autonomous and where the user is just a passive observer. In a game, however, the focus is on what the user does. And in the case of Drama Princess, on his or her interactions with objects and other actors.
When autonomous actors interact with each other, it’s easy to believe in them. Probably because you do not know their intent and you actively interpret their behaviour and make up stories. But when you are controlling one of the actors, you’re a lot less forgiving. Suddenly all the little oddities start looking like glaring errors. We’ll need to fine-tune things quite a bit more than would be needed for purely autonomous actors.
No Comments »
Posted by Michael on March 28th, 2007, in Development
The second Filter that removes behaviours in Drama princess’s Decision Manager is the Filter of Condition. This is a series of expressions per Object that retun yes or no to the question whether the behaviour is possible with them.
While this system remains useable, it does seem badly designed at the moment. As it turns out, while working on The Path, in practice, most behaviours are not possible with most objects. They are too specific. Also, because of the limited amount of animations available, the most frequently used condition is just that the Actor should have an animation asset to perform the behaviour.
As a result, the conditions that are defined by rules that make sense in the game world, make up a very small minority. I think we should replace this system so that only the conditions that have specific rules are evaluated and all the others are simply checked against whether the behaviour is possible with the object and whether the actor has animation data to perform the behaviour.
No Comments »
Posted by Michael on March 21st, 2007, in Development
It’s been really good to continue the work on Drama Princess within the context of The Path. So many things come up when dealing with a real game, that I would never have thought of when dealing with the system on a more abstract level. The engine has changed quite a bit already, in response to the new behaviours that I’m creating for the game.
Speaking of which, making those behaviours is laborious. They are all little applications that drive the actor, sometimes multiple actors. It’s quite a bit of work to figure out the conditional structure that makes sure that the actor walks to the right position, faces the right direction, etc before doing something. Several of these things could be automated on a higher level, and some have been. But I want the behaviours to remain very powerful. They can steer the whole game, if necessary, in a relatively simple way.
I do have a feeling that there are only so many combinations of actors, objects and interactions and that at some point, old behaviours will start serving as templates for new ones, making the work a lot lighter.
No Comments »