{"id":74,"date":"2006-06-09T09:24:23","date_gmt":"2006-06-09T07:24:23","guid":{"rendered":"http:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/?p=74"},"modified":"2006-06-15T08:25:45","modified_gmt":"2006-06-15T06:25:45","slug":"consumerism-as-a-model-system-design-1","status":"publish","type":"post","link":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/?p=74","title":{"rendered":"Consumerism as a model (system design 1)"},"content":{"rendered":"<p><em>It&#8217;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&#8217;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.<\/em><\/p>\n<p><em>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.<\/em><\/p>\n<p><strong><em>Anyway, there&#8217;s a bunch of things that I don&#8217;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&#8217;d publish it before it gets mutilated beyond recognition.<\/em><\/strong><\/p>\n<p><strong>INTRODUCTION<\/strong><\/p>\n<p>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&#8217;t make a choice: it just does the thing that is at the top of the list. Doing this thing influences the character&#8217;s condition. This leads to changes in the order of the opportunities list as a result of which the character&#8217;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.<\/p>\n<p><a href=\"http:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/?p=74#steps\" NAME=\"steps\">Environment, decision making, action and consequences&#8230;<\/a><\/p>\n<p><!--more--><\/p>\n<p><strong>1. ENVIRONMENT<\/strong><\/p>\n<p>Every <strong>object<\/strong> in the world comes with a set of <strong>opportunities<\/strong>. These are things that you can do with this object. Each opportunity promises a certain level of happiness. This promise is objective: a fixed value given by the author.<\/p>\n<blockquote><p><em>The promise is made by the object. It represents, as it were, the opinion of the object about its own capacity to give happiness (as defined by the author).<\/em><\/p><\/blockquote>\n<blockquote><p><em>We use the word object to denote things that can be interacted with, this includes other characters and environments.<\/em><\/p><\/blockquote>\n<p>Objects are arranged in <strong>categories<\/strong> (or classes). Categories also have sets of opportunities that are shared with the same promise of happiness by all objects in it. To this set, each object can add individual opportunities.<\/p>\n<blockquote><p><em>E.g. Knife and plate are in the same category, look at, pick up and throw both give equal happiness. But you can only lick the plate and stick the knife in a tree. A spoon and a glass could be added to the same category without any individual opportunities.<\/em><\/p><\/blockquote>\n<p>Each character starts the game with a relationship value for each category of objects. This is how their personality is defined: they prefer interactions with certain categories of objects better than others. The relationship can be positive (friendship) or negative (hatred).<\/p>\n<p>All opportunities of all objects (probably within a certain radius of the character) are published to an unordered global <strong>list of opportunities<\/strong>.<\/p>\n<p><strong>2. DECISION MAKING<\/strong><\/p>\n<p>The list of opportunities is ordered by each character individually according to a number of parameters. The topmost opportunity will become the <strong>goal<\/strong>, i.e. the action that the character will perform.<\/p>\n<p>The parameters for decision making are:<\/p>\n<ul>\n<li>an opportunity&#8217;s <strong>promise of happiness<\/strong><br \/>\n<em>The higher the promise of happiness, the more chance the opportunity has to become the goal.<\/em><\/li>\n<li>a character&#8217;s <strong>relationship<\/strong> with individual objects and categories<br \/>\n<em>The better the relationship with an object, the more chance an opportunity advertised by this object has to become the goal.<\/em><\/li>\n<li>a character&#8217;s <strong>fascination<\/strong> with individual opportunities<br \/>\n<em>The more fascinated a character is with an opportunity, the more chance it has to become the goal.<\/em><\/li>\n<li>a character&#8217;s <strong>attention span<\/strong><br \/>\n<em>The bigger the attention span of the character, the more chance that an opportunity advertised by the previous object interacted with will become the goal.<\/em><\/li>\n<li>the <strong>distance<\/strong> between the object and the character<br \/>\n<em>The closer an object is to the character, the more chance that one of its opportunities becomes the goal. This is a relative factor so that the distance to other characters can be greater than the distance to objects.<\/em><\/li>\n<\/ul>\n<p>All of these can be expressed in simple values.<\/p>\n<p>The content and the order of the list of opportunities is <strong>continuously updated<\/strong>, even when a character is moving towards a goal. This way, another opportunity can become the new goal (i.e. rise to the top of the list) even before the previous one has been achieved. This allows the character to interrupt what it is doing and respond to its environment.<\/p>\n<p>Randomness will be added to ensure that the list order is <strong>continuously moving<\/strong>, allowing opportunities to become goals even if they don&#8217;t promise the highest level of happiness in the region. Opportunities with high promises just make more chance of becoming goals.<\/p>\n<p>When a character&#8217;s relationship with an object is good, an opportunity offered by this particular object will be more likely to become the character&#8217;s goal. To prevent the same opportunity continuously becoming the goal, the character loses its fascination for the opportunity very quickly (i.e. it gets bored with doing something). This <strong>fascination<\/strong> is expressed in a value that the character attaches to each opportunity it has had as a goal. When an opportunity becomes a goal, the character maximizes its fascination for it. When the goal is achieved, the fascination for this opportunity is minimized. After that, this value goes up automatically until it reaches its maximum again (the speed at which fascination returns, could be different for each character).<\/p>\n<blockquote><p><em>Since fascination is not connected to objects, this leaves open the possibility of a character becoming bored with a certain type of actions. E.g. if it gets bored with eating carrots, it may also be bored with eating anything else. It is the eating it gets bored with, not the carrot. This also allows for the character to play with its food when it gets bored with eating it, for instance.<\/em><\/p><\/blockquote>\n<p>A character&#8217;s current goal will cause a high fascination with the corresponding opportunity in the list, thus ensuring the motivation of the character to achieve its goal. This fascination diminishes over time, so that if a goal cannot be achieved or if it takes too long, the characters loses interest and selects a new goal.<\/p>\n<p>While fascination ensures that a character does not repeat the same <em>action<\/em>, <strong>attention span<\/strong> assures that the character does not keep interacting with the same <em>object<\/em>. Attention span is a single value owned by the character that decreases every time a character achieves a goal offered by the <em>same<\/em> object (but more slowly than fascination). The more the character likes the object (i.e. the better a character&#8217;s relationship is with it), the less it decreases. The lower attention span becomes, the lower the opportunities advertised by the current object sink in the list, i.e. the more chance exists that the character will choose to interact with a different object.<\/p>\n<p>The more the character interacts with an object, the more it will like the object. When the relationship jumps a certain step, the attention span is increased to the maximum again. When the character starts interacting with a different object, ditto.<br \/>\nWhen the relationship has reached its optimum value, attention span does not decrease anymore (i.e. when the character is in love, it will want to spend all of its time with the object and it will not care for other objects anymore). Except through <em>shock<\/em>.<\/p>\n<p><strong>Shock<\/strong> replaces the dynamic list of opportunities with a specific one, forcing the character to choose a goal from one of the opportunities offered in the shock&#8217;s list. When that goal has been achieved, the dynamic list takes over again. shock also minimizes the attention span of the character, allowing it to select another object.<\/p>\n<blockquote><p><em>Shock can, for example, force the character to run away from its lover. Or to interact with another object.<\/em><\/p><\/blockquote>\n<p>A relationship is defined in a value: -1 is hostile, 0 is neutral, 1 is optimum. When a relationship with an object reaches its optimum value, interactions with it will <em>continue<\/em> to increase it. The longer the relationship lasts (i.e. the more the value rises above 1), the higher the risk of <strong>breaking up<\/strong> becomes. When a break-up happens, the relationship is set back to a random state (either friendly or hostile), from which it can start growing again. A break-up will probably also generate a &#8220;shock&#8221;.<\/p>\n<p>Relationships modify the promise of happiness: when the character likes the object (relation more than, say, 0.5), the happiness offered by the opportunity will seem greater to the character than when the character does not like the object much (relation of 0.2). When the character hates or fears the object (relation less than 0), the happenins offered by the opportunity will seem reversed to the character, therefore this opportunity is very low in the list (unlikely to be chosen as a goal).<\/p>\n<blockquote><p><em>For example: the wolf advertises &#8220;stroke my tummy&#8221; with a promise of 0.6 happiness and &#8220;run away from me&#8221; with a promise of -0.5. If the girl likes the wolf, it will choose to stroke its tummy but if the girl really despises the wolf, her relationship of -1 will modify the promise of happiness so that &#8220;stroke my tummy&#8221; becomes -0.6 and &#8220;run away from me&#8221; become 0.5, i.e. the highest promise and therefore the chosen goal.<\/em><\/p><\/blockquote>\n<blockquote><p><em>As a side effect, oddly, running away from a wolf that you hate will improve your relationship with the wolf because you achieved a goal that was advertised by the wolf. So next time you meet him, your response may be milder. This way, relationships can turn around. That kind of growth may be interesting dramatically.<\/em><\/p><\/blockquote>\n<p><strong>3. ACTION<\/strong><\/p>\n<p>The opportunity at the top of the list is called the character&#8217;s <strong>goal<\/strong>. There may be multiple ways to achieve this goal but they are always tied to a specific object (or character, or environment).<\/p>\n<blockquote><p><em>Drama Princess does not have goals like &#8220;eat something&#8221; but it has goals like &#8220;eath this particular carot&#8221;. The way in which the character gets to the carrot and the way in which it eats the carrot can be different every time and for every character.<\/em><\/p><\/blockquote>\n<p>When a character has chosen a goal, <strong>Activity<\/strong> coordinates the action of the character with the object from whose set of opportunities the goal was chosen. If this object was also a character, its list of opportunities will be replaced by the goal to respond to the action performed by the other character. So basically it will drop whatever it was doing, to respond. In some cases, this may mean that Activity will have to make the initiating character wait until the other is ready.<br \/>\nThis same applies to objects but it is simpler since objects don&#8217;t have a goal to interrupt. Objects often do need to animate in response to an action.<\/p>\n<p>Certain goals imply a specific response from the object. Hugging, e.g., but also hitting (causes the object to fall e.g.). Other goals allow the object (always a character) to select a response from a pre-defined list of possible responses to the opportunity. The selection will be made in the same way as selections from the global list. Some goals don&#8217;t require a response from the object at all (&#8220;look at&#8221;, e.g.). In that case, Activity is not required, or the response goal is defined as &#8220;ignore&#8221;.<\/p>\n<p>Since every character is &#8220;naturally&#8221; inclined to continue interacting with the previous object, a sort of conversation can start to happen if the two participants were both characters. After the goal has been achieved, Activity releases both participants and the first one who chooses a new goal with the other character &#8220;wins&#8221;. Every time they achieve a goal, their relationship is improved.<\/p>\n<blockquote><p><em>Perhaps their relationship could also be reduced, depending on chance and the level of their relationship (if their relationship is good, the chance that a goal reduces it is smaller).<\/em><\/p><\/blockquote>\n<p><strong>4. CONSEQUENCES<\/strong><\/p>\n<p>Achieving a goal will<\/p>\n<ul>\n<li>improve the relationship with the object that advertised the opportunity<\/li>\n<li>minimize the fascination for that opportunity<\/li>\n<li>maximize the attention span of the character if this was the first interaction with an object, reduce the attention span a bit, otherwise<\/li>\n<\/ul>\n<p>Failing to achieve a goal will<\/p>\n<ul>\n<li>reduce the relationship with the object that advertised the opportunity<\/li>\n<li>minimize the attention span of the character<\/li>\n<\/ul>\n<p>Achieving goals advertised by individual objects (or characters, or environments) will improve the <strong>relationship<\/strong> that the character has with these objects as individuals, <em>outside of their category<\/em>. This will allow characters to grow and to even start liking things that don&#8217;t really match their personality if given enough exposure to them.<br \/>\nWe distinguish between objects and characters by setting the optimum relationship with objects lower than that with characters (perhaps a modifier can be added to allow for fetishists).<\/p>\n<p>The character&#8217;s relationships with categories will be influenced by its relationships with individual members from these categories. So that if a character develops a good relationship with a sparrow, next time it sees any bird, it will be more positive towards it.<\/p>\n<p>When a character is seperated from an object, its relationship with it reduces. When the character experiences a &#8220;shock&#8221; -e.g. when a relationship with a character breaks off-, <em>all<\/em> its relationships will be affected, causing something of a depression in the character.<\/p>\n<blockquote><p><em>Note that a character does not have a mood. Its overall happiness is determined by the relationships it has and fairly irrelevant: the character can be mostly unhappy and still enjoy interacting with certain objects or characters.<\/em><\/p><\/blockquote>\n<p><strong>DIAGRAM<\/strong><\/p>\n<p><img decoding=\"async\" id=\"image75\" src=\"http:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/wp-content\/uploads\/2006\/06\/consumerism.gif\" alt=\"Consumerism\"\/><br \/>\n<em>Objects advertise their set of opportunities to a global list (1). This global list is ordered according to the opportunities&#8217; promises of happiness, modified by the characters&#8217; relationship, fascination, attention span, distance and some randomness (2). The topmost opportunity becomes the goal (3). When a goal has been achieved, the characters&#8217; relationship with the object that had advertised the opportunity is improved (4).<\/em><\/p>\n<p><strong>CONCLUSION<\/strong><\/p>\n<p>Consumerism is a top-down approach. Rather than constraining randomness, it starts with a fixed system of constraints that can be randomized where desired. I&#8217;d say that every condition parameter should be used with a certain measure of randomness, to allow for unexpected behaviour. Some rules will need to be prone to being broken more often than others. We&#8217;ll have to experiment with the values. Perhaps these values can also be an expression of personality.<\/p>\n<p><strong>QUESTIONS<\/strong><\/p>\n<p><strong><em>These questions mostly express areas of discomfort with the design above and will be used when redesigning the system.<\/em><\/strong><\/p>\n<p><em>How can a character find an object to use with another object (key in door, food for hungry character, etc)?<\/em><br \/>\nA door would advertise &#8220;open me with a key&#8221;. If this goal is chosen, the character would try to find a key. If the character cannot find a key (i.e. if it chooses a new goal), the character would make a note that a key is a desirable object and it remembers the position of this door. Next time a character sees a key, it might pick it up. Perhaps the key advertises &#8220;use me to open door A&#8221;. The character knows where door A is. Seems like a lot of fuss. Is it worth it?<\/p>\n<p><em>Can fascination be merged with attention span? Or perhaps with the promise of happiness (making it dynamic)?<\/em><br \/>\nPerhaps you could copy the complete list of opportunities with their promises of happiness to each character at the beginning of the game. Then the character can directly alter the promise of happiness values, rather than having to modify them with a second value. So rather than the attention span going up and down, the promise of happiness itself would go up and down. For goal selection, a dynamic list that only contains opportunities relevant to the situation, should still be used. This list would not contain promises of happiness. The character would need to find these in its own local copy of the list of all opportunities in the game.<br \/>\nAlternatively, the promise of happiness of each opportunity could be stored as an array with a column for each character.<\/p>\n<p><em>What if a character, rather than simply choosing the happiest opportunity, chooses the one that matches its relationship with the object best?<\/em><br \/>\nIf you hate the object, you would choose to do things that the object does not like. And vice versa.<br \/>\nIf the happines level of the opportunity is higher than your relationship, your relationship will improve. And vice versa.<br \/>\nThen the opportunities advertised by the object are not promises to the character but desires of the object, arranged according to what would make the object happy.<\/p>\n<p><em>How can characters interact with an object together for an amount of time?<\/em><br \/>\nFor example: sitting together on a bench or the floor, riding together in a car, playing together with a toy. Perhaps the list of opportunities should be less global and be compiled with respect to the situation.<\/p>\n<p><em>Shouldn&#8217;t the list of opportunities depend on the situation?<\/em><br \/>\nWhen a character is sitting in a tree or is locked up in a cage, a lot of opportunities in the global list would become unachievable. With the current model, a modifier would need to be added so that all of those opportunities can be excluded (unless we want the character to become depressed&#8230;). It&#8217;s probably smarter to create a context-sensitive list of opportunities to begin with (like we already do with shock and activity).<\/p>\n<p><em>How are &#8220;shocks&#8221; generated?<\/em><br \/>\nBreaking up a relationship has been mentioned.<br \/>\nPerception could generate shocks: when an object enters the radius around the character, a shock could happen. This radius should be wider for other characters than for objects and environments.<br \/>\nPerhaps every time an opportunity that is the current goal disappears from the list, a shock shoud be generated, allowing a character to express its disappointment or distraction.<\/p>\n<p><em>How do you prevent characters from choosing a goal from an object which another character is interacting with?<\/em><br \/>\nWhen an object is busy, it does not advertise its opportunities to the global list. But only to the list of the character that is interacting with it. Or perhaps it only advertises opportunities that do not interfere with the interaction (like &#8220;look at&#8221;).<br \/>\nCharacters should be able to interrupt the interaction between other characters, though. Interactions with characters may need to be preceeded by an <strong>invitation<\/strong>. So that when the character chooses a goal with another character, it advertises its invitation to interact with a high promise of happiness. This invitation should be advertised only to the list of opportunities of the pertaining character. It cannot be an open invitation because the character does not have the same relationship with all characters present.<br \/>\nPerhaps invitiation can replace activity.<\/p>\n<p><em>What happens when a character moves towards an object to interact with it, and another character gets to the object first?<\/em><br \/>\nWhen the object becomes unavailable, i.e. when its opportunity is no longer in the list, the character would automatically forget about the goal and choose a new one from the opportunities that <em>are<\/em> available.<\/p>\n<p><em>Shouldn&#8217;t &#8220;look at&#8221; be seperated from opportunities?<\/em><br \/>\n&#8220;Look at&#8221; popped up several times as a special opportunity. If there aren&#8217;t any other opportunities in this case, it&#8217;s probably wise to have &#8220;look at&#8221; be a seperate system.<br \/>\nYou can look at things without interrupting your interaction. A character should, e.g., look at a tree it passes by on its way to a mushroom it has chosen to pick, without forgetting about the mushroom. From observation I know that people look around all the time. In fact, they rarely look at their target. Even when people talk with each other, they keep looking around at other things.<br \/>\nSometimes looking can be a vital part of the interaction, though. Like when reading a book, aiming at a target or doing fine needlework.<\/p>\n<p><em>Do characters express emotion? How can they if all of their actions are interactions with objects?<\/em><br \/>\nMood can be expressed by opportunities that the environment advertises, especially if we select goals according to compatibility with relationship.<br \/>\nShocks can also offer emotional response opportunities. Perhaps the system of shocks should be expanded. How wide depends in part on the character: some characters display emotions more than others.<br \/>\nPurely facial expression can be driven by the combination of relationship and goal. If a goal from an object with a high relationship is selected, the character will smile. Perhaps this can be expanded to a animation modifier that makes the whole body smile, as it were (by changing speed, jerkiness and posture).<br \/>\nMore specific emotional states could be expressed by additional graphics that represent these states (clouds for sadness, flowers for happiness, etc -as is done in Animal Crossing).<br \/>\nEnthusiasm for a chosen goal could be expressed in the invitation mentioned above.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;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&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-74","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=74"}],"version-history":[{"count":0,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts\/74\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}