Request for an example

Chris, you’ve mentioned IF’s “boolean nature” a couple times now, but I don’t understand what you’re referring to. (I am guessing that it’s related to you calling mechanisms of interaction “button pushing”.) Can you clarify?

Sure. Most of the calculations done in IF are boolean calculations: true or false, black or white. It’s not an absolute restriction: I have seen arithmetic operators in different editors. But those arithmetic operators (and the numeric variables) are not well supported and are therefore clumsy to use. I see few uses of numeric calculations in IF code.

This forces an overly simplistic decision-making style on the system. If you give Pegasus the apple, he’ll fly you over the chasm. If you say “Damn you!” to the recalcitrant witness, he’ll reveal the crucial truth. In some cases, this is just fine. For example, if you have the key, you can open the door. Possession of the key is not a numeric concept, it’s a boolean concept: either you have it or you don’t. But storytelling is seldom so black and white. How could you model Darth Vader’s decision to play “Toss the Dwarf” with the Emperor? “If Luke refuses to fight Darth Vader, Darth Vader will toss the Emperor”? No, Darth Vader’s decision is a matter of grays rather than blacks and whites. He feels compassion for his son, he feels loyalty to the Emperor – which feeling is stronger in his mind? You can’t make that determination unless both feelings are modeled with numbers, not booleans.

Still, you don’t need any advanced maths to do that piece of algebra, so the fact that IF authors doesn’t do this more often than they do (now, that’s certainly a fact!) is hardly due to the computational limits of say TADS or Inform. For an example of a game/story that tracks mood changes in two dimensions using trinary properties, see the source code of Alabaster (http://www.inform-fiction.org/I7Downloads/Examples/alabaster/source_27.html).

But, er, whatever may be the case for the average IF, you’re wrong about what authors tend to do specifically when working on character-modeling problems in IF. People do use numerical modeling to handle spectra of NPC emotion and inclination. (And honestly, I can understand why you might see Inform as clumsy with numbers, but TADS?)

Most of my conversation work does use non-boolean modeling for one or several aspects of a character’s emotional state and relationship to the player (Galatea, Alabaster, Best of Three do so; City of Secrets does as well, within a plot that’s also partly puzzle-solving). Alabaster’s code puts some syntactic sugar on this to make it easier to read what’s been written, but when the code says things like “if Snow White is angry”, that is itself a calculation that has been done numerically elsewhere to determine which emotional states are dominant.

Blue Lacuna and several other games do some variation of this as well, and in this thread we’ve documented several ways in which those numbers can be handled to determine particular outcomes. Progue, the character in Blue Lacuna, is a particularly good example of what you’re asking for because there are a range of scenes of confrontation, alliance, et al that can appear or go different ways depending on the long history of what you’ve done and said to him.

As for the characters in Make It Good, they have sophisticated mental models of what is happening, and so you spend pretty much the entire game manipulating what the NPCs think is going on, through speech and physical acts of deception. This may not be a case of pushing a character along an emotional spectrum (+1 anger, +1 grief…) over and over until she snaps, but it is a case where character motivations are progressively revealed through their responses, and where the long-term summation of the player’s behavior is what determines a character’s response at the dramatic high points.

Hm, other possibly interesting cases. Victor Gijsbers has done some modeling of characters for whom conversation is similar to combat, so that there are sort of tactical parry-and-thrust rules to an argument – which again contains some sophisticated notion of relative positioning and numeric modeling that describes how close a character is to snapping and losing patience. In Eric Eve’s game Blighted Isle, I don’t know what’s under the hood, but I do recall that it’s possible to form relationships with any one of several NPCs as the result of long-term choices over the course of the game, which I think must be doing at least some numerical handling.

Thanks, Emily, for correcting me on that point. I had based most of my beliefs here on my knowledge of Inform 7, because I was under the impression that the majority of IF writers use it rather than TADS. Would anybody care to estimate the percentage of published works built with TADS?

I claim that numeric calculations are not well supported in Inform 7 because variables are handled so clumsily. AFAICT, variables have global scope but are declared locally – a certain formula for impenetrability once you get above about a score of variables. Perhaps I’m wrong about this?

TADS looks much better, largely because it’s so techie, which in turn must chase away a lot of authors. Again, I’d be very interested in getting some ball park estimates of how many works are built with TADS.

Another thing that bothers me about the numeric systems in IF is that they seem so adamantly integer in nature. I’ve seen a lot of code that simply increments or decrements some variable in response to some act. What if Action A is half as effective as Action B? Do you add 0.5? How often is that done? And what if a player carries out Action A a hundred times: does the value of mood go so high that the NPC explodes?

Over and over the harsh lesson I have learned in modeling behavior is that simple methods eventually yield ridiculous results. Incrementing and decrementing integers is a good step higher than simple boolean calculations – but it falls far short of what I consider to be adequate to produce dramatically believable behavior. Perhaps I need merely emphasize this point in my discussion of IF.

the long-term summation of the player’s behavior is what determines a character’s response at the dramatic high points.
This is of great importance and may constitute the evidence I came here seeking. I played Make It Good and didn’t get far enough into it to discover the phenomenon you describe, but I’ll do some more research on it. I’ll be especially interested in the source code.

TADS was formerly almost as widely-used as Inform. The balance shifted around 2004-2006, with the release of TADS 3 (which moved in a more programmer-oriented direction, becoming less accessible in the process) and Inform 7 (which moved somewhat in the other direction). TADS had a number of other peripheral problems – for some time its gamefile format wasn’t stable, meaning that everybody had to constantly update their interpreters; and the workbench environment remains fiddly to set up, particularly on non-Windows systems. TADS is presently a minority platform: of 38 games released in IF Comp 2011, three were TADS-based and twenty-six Inform. That’s probably a reasonable ballpark figure.

Certainly, if you wanted to make a game based on a great deal of fine-grained numerical manipulation, you’d be better-advised to do it in TADS. But for most IF authors, this is not a very interesting avenue of exploration. From an RPG perspective, there’s the feeling that a great deal of complicated numerical operations tend to get in the way of story, rather than making story more sophisticated; interest in hyper-realistic simulation is a totally different thing to interest in narrative, and usually conflicts with it. A foolish consistency, etc. Real stories are not really all that concerned with mathematical precision. It does not matter to the reader whether Romeo’s love for Juliet has a decimal point in it. You don’t need to know whether Maggie Tulliver’s Impetuousness is 77 or 78; for story purposes, all you need to know is that she’s impetuous. (Part of the deal here, also, is that IF design philosophy is generally not keen on random elements.)

There are definitely people who are interested in fine-grained, number-crunchy simulation-type approaches: but for NPC simulation, not so much. (How much this is a matter of principle, and how much it’s because fine-grained NPC simulation has an absolutely wretched effort-to-result ratio, is left as an exercise for the reader.)

IF tends to have a much more tightly bounded problem space than Storytron was intended to handle, and I think that may account for some of the differences of approach. (Though it’s not true that the numerical emotion modeling in IF is always simplistically about adding integers onto an unbounded spectrum – as the discussions of Blue Lacuna and Alabaster should reveal; and even in the realm of CYOA, ChoiceScript’s fairmath feature is designed to address that kind of problem, by rewarding the player’s first adjustment of a particular stat more strongly than subsequent adjustments in the same direction.)

But, leaving that aside: the model design in Galatea is specific to the problem of getting a statue in this exhibit to trust or hate or like or distrust you, given a fairly small number of actual facts about her life that can be brought into play. The model design of Alabaster is focused on handling all the possible knowledge and relationship states that could plausibly be reached given a very particular (and unusual) scenario. Shadows on the Mirror deals with affinity or distance between the player and her kidnapper, with a range of possible outcomes depending on how you interact. Make It Good looks at what the NPCs could reasonably be deciding about the thing that matters to that story (the murder) using the evidence that is known to be available within that storyworld. Blue Lacuna is probably the most open-ended case in IF because the game is so long and because the range of possible end states you can get into with Progue is so large – you can end as a lover, an enemy, a surrogate family member, and so on. But even there, crisp limits exist, imposed by the size of the world and the themes of the tale being explored. None of these works attempts anything close to a generalized model of human behavior, which is just as well, because they would never have been released in that case.

It is this kind of focus that makes it possible to achieve dramatic effects that result from the player’s cumulative relationship to an NPC, even with a relatively compact model. If the storyworld doesn’t include the possibility of a romantic rivalry, say, then no machinery is required to calculate the likely progress of such a rivalry.

The result may still be unsatisfying to you, and I can think of a variety of reasons why it might be. But I think it’s a false move in this argument to say “I asked for a character who remembered what you’d done in the past and acted differently as a result, and now you’ve given me one, I can’t decide if I like it until I’ve seen whether there’s floating point math in its code.” Who cares? I mean, if what you’re really looking for is the end rather than the means, what does it matter whether that was achieved the way you would do it, or a way you’d tried and dismissed, or some way you’d never even thought of? It would be more instructive, if you’re unsatisfied with the fruit of your inquiry for some reason that wasn’t covered in the original question, to say, “sorry, my specification of the end wasn’t thorough enough. I wanted a character presented with a UI that didn’t use a parser, with the potential to reach a wider audience.” Or “I really wanted a character in a sufficiently open-ended scenario that I could seduce, then break up with the NPC, and see what happened.” Or… well, you know, whatever it is that you’re looking for in addition to the requirements you put in the first question.

It’s a different ballgame if what you mean is “I’m looking for a tool in which I can create the way I personally find effective, so I need an intuitive pre-constructed machinery for manipulating a wide range of common human emotions using floating point variables. Do you have such a tool?” In which case, no, probably we don’t – not in the way you mean. That would also be a fair question, but it’s a different one. And it’s still another different question to say “does most IF do this kind of character modeling?”

I would say I’m interested in simulation, but “number-crunchy” simulation makes it sound like we’re describing a particularly irritating type of RPG, and that’s not the intention at all. Sometimes a numerical tracking of how the player has interacted with an NPC is useful, as a way of capturing how many times and how severely a given interaction has occurred in the past – though typically I then need to find a way to convey back to the player how the needle has been moved and why, and that typically means imposing a verbal category on the numerical information again. But my aim, when I’m using numbers, is to increase how intuitive the responses feel, rather than give the player tiresomely narrow targets to hit.

Yeah, by ‘number-crunchy’ here I mean the sort of thing where floating point math would have a clear advantage over integers – which is, I think, the sort of thing that a player is by definition not going to have an intuitive sense for. I mean, you can expose all of an NPC’s numerical states, but then you turn socialisation into a sort of spreadsheet game (and, if Prom Week is anything to go by, you can still end up with something pretty opaque.)

This goes back to that visual metaphor. It’d be possible to get a pretty convincing portrait at that level of pixelation. But you’re not going to get it by taking the original portrait and just turning down the resolution to what you can handle. You have to pick and choose what to represent.

To be fair, I think Chris does have a reasonable argument in the first edition of his interactive storytelling book about the usefulness of sometimes modeling character states on a scale between 0 and 1 (or as a percentage, if you like), because that allows some multiplicative effects that, for some purposes, work better than adding integers, especially on an unbounded scale. I do feel this is just one tool in the box, though – and as you say, it raises serious issues with communicating the model state to the player.

To my mind, exposing to the player what is going on is the biggest weakness of most of the experiments in this direction that we’ve seen so far – Prom Week, Facade, Galatea, and to a lesser degree Blue Lacuna suffer from the fact that the player doesn’t always know when he’s done something that moved the needle in an important way. Unless you turn on debugging tools that show you the numbers, of course, but that voids the whole point of making a plausible-looking character. You can use words to describe the character’s response, you can use images of their expression or procedurally-generated animations of their body language or whatever else – though those systems themselves can be very hard to build well – but the more finicky the numeric model, the more difficult it becomes to meaningfully communicate the changes to the player without just coming out and saying “welp, looks like that remark got you .02 points closer to making Darth Vader hate the Emperor.”

It’s all very well to say “oh, well, the player should be able to guess that if he says something offensive, the character will be offended and remember that”; but offended how much? are we sure the player has the same idea we do about what’s going to be offensive? how much is this process about the player discovering through experiment what offends a character, and how much is it about the player manipulating that information? What if, by the time he knows enough to manipulate, he’s already screwed stuff up too much in the discovery phase? (Especially a challenge with longer works that aren’t going to be replayed as much.)

Emily, I snooped around Make It Good and discovered a walkthrough that shows how to win. It’s here:
http://jayisgames.com/archives/2009/09/make_it_good.php#walkthrough
You have to use the “Show Spoiler” buttons to reveal it. It shows that the trick lies in presenting false evidence to NPCs to manipulate their beliefs about who is guilty. At no point in the walkthrough does the player engage in any emotional manipulation; his behavior towards the characters is strictly mechanical.

Maga, thanks for the usage statistics on TADS; that’s pretty much the impression that I had.

You don’t need to know whether Maggie Tulliver’s Impetuousness is 77 or 78; for story purposes, all you need to know is that she’s impetuous.

Agreed. But this doesn’t justify limiting Maggie’s Impetuousness to true or false, at least if degree of impetuousness is a dramatically significant factor. I argue that most stories have crucial implicit variables that change value over the course of the story, reaching a critical value that triggers a major event. Some examples:

Luke Skywalker’s confidence in himself and the Force in Star Wars IV
Lancelot and Gwenevere’s love for each other.
Frodo’s succumbing to the power of the Ring.

But more important, all stories have implicit variables that we know to have degrees. Suppose that, in Macbeth, Ruthlessness were a boolean variable, something you either had or lacked. Then both Lady Macbeth and Macbeth himself would be Ruthless – but she wouldn’t need to challenge his manhood because he’d be every bit as ruthless as she is. Suppose that Love in Romeo and Juliet were boolean. One day, they’re strangers; the next, they’re passionately in love. Click goes the button.

Suppose that Boyish Innocence were a boolean variable in Tom Sawyer. Then both Tom and Huck would have it, and Aunt Polly wouldn’t. The two boys would be essentially identical – there wouldn’t be much capacity for them to play off each other.

Suppose that Self-Confidence were a boolean variable in Star Wars IV. Then Luke Skywalker would lack it at the outset of the story, and one day it would go click and he’d be able to take out the Death Star. Who needs all that tiresome intermediate stuff?

Stories aren’t boolean.

Emily, I’ll go have a look at ChoiceScript; thanks for advising me of it. You write:

But I think it’s a false move in this argument to say “I asked for a character who remembered what you’d done in the past and acted differently as a result, and now you’ve given me one, I can’t decide if I like it until I’ve seen whether there’s floating point math in its code.”

I did not specify that my standard would be attained by a character who remembered what I’d done in the past and acted differently as a result; I asked for “a sequence of actions taken by the player and the NPC that evoke a dramatically significant response from the NPC appropriate to the player’s actions, and could have provoked a different dramatically significant response had the player chosen a different course of action.”
The feature you describe would obviously be a necessary component of my specification – but an altogether insufficient one.

It’s a different ballgame if what you mean is "I’m looking for a tool in which I can create the way I personally find effective

No, I’m looking for a work that makes possible “a sequence of actions taken by the player and the NPC that evoke a dramatically significant response from the NPC appropriate to the player’s actions, and could have provoked a different dramatically significant response had the player chosen a different course of action.”

I understand your points about the confines of a particular story, and the lack of need for anything beyond those confines. But observe that stories that are confined to mechanical interaction with NPCs are never going to be rich enough to satisfy most people. It’s that emotional interaction that I’m seeking.

Gadzooks, there’s more stuff being added even as I work on this response.

Emily, you raise two excellent points in your 3:04 PM post. I think that this argument made elsewhere is unproductive:

Since 64 bits of modeling representation is too many, 1 bit is sufficient.

My opinion is that 3 bits is good enough for the representation of mental states, but we still need a lot of bits to handle tiny increments. And here is where we get into some interesting intellectual swamps. How many events doth a story make? A single event (e.g., Luke blew up the Death Star) is unsatisfying as a story. If we represent the number of events in a story as the number of sentences in the presentation of that story, then we conclude that an acceptable story will contain hundreds to thousands of events. This in turn means that the internal variables in the story change over hundreds of steps. In the standard romantic comedy, the transition of the two protagonists from strangers to lovers requires a great many intermediate steps. If we are in fact in the ball park of hundreds of events to make a primary transition, then each step much be measurable in thousandths of the entire transition – which implies at least ten bits of internal representation.

Pause for thought

Does anybody understand a whit of what I’m writing here? Should I expand on the preceding paragraph to make it, shall we say, less propellor-headish?

He’s moving objects and affecting information flow – but those actions do affect character emotions and the way that the characters react to the information they have. You can if you want rule this out because you want the player’s verbs to be things like conversation and gestural communication rather than secondary communication via an environment.

But, to speak subjectively, my experience with Make It Good was that

I was at first surprised that NPCs seemed to pay close attention to what I was doing; then I watched their reactions and had to hypothesize what they were thinking, as well as guess at what end would be most to the advantage of the protagonist I controlled; then I engaged in a piece of organized, deliberate deception (after quite a few failed attempts) that had very definite costs and advantages to various characters in the story. I figured out what several NPCs cared about and then I used that caring to control what they did. In particular, I found out that one character, who was in love, could be deceived into thinking her lover had committed the crime – and if she thought that, then she would confess and take the fall for him, even though he wasn’t guilty at all. I engineered that situation. And then I felt kind of guilty and dirty about doing so – the more so because the process had been so intentional and so much under my agency as a player.

To me, that was a dramatic story about interacting with characters, not a mechanical story about interacting with keys and footprints. There were some props, but their importance was dictated by their interpersonal significance and context, not their physical qualities.

Let me put this another way. Throwing a hunk of metal into a forge-hot fire to melt could be the component of a very boring mechanical puzzle about making a new horseshoe. Or that same action could be the culmination of the Lord of the Rings. It’s not the fact that the action involves objects that matters; it’s the question of how much freight is attached to that action at that moment in the story. Does the protagonist have a reason to care? Do other characters? Do they react? What does it communicate, what does it establish for later, what does it pay off from the past?

In Make It Good you can put a knife into a box to carry it around. But it feels different from all the games in which I’ve put a knife into a box as a solution to an inventory puzzle about limited carrying capacity. It also feels different from ones where I was solving a one-off trick about getting something past a guard at a gate – because in Make It Good, I’m sneaking around a piece of key evidence as one part of a complex chain of manipulation. I have had a chance, and reason, to think about how it will affect the people I’m deceiving; to believe in their emotional investment, and in my own character’s investment. The meaning of that moment depends on the writing, the narrative set-up, and the complexity and solidity of the rest of the model.

We talked about its fairmath feature a bit at Phrontisterion, too, as I recall.

Okay, fair enough. I should have gone back for the original-post quotation. But your description is still a qualitative, ends-based one, not concerned with numbers or calculations per se; and it is one that examples mentioned in this thread do meet. The actions taken by the player in a winning walkthrough of Make It Good produce significant responses from the NPCs that are appropriate to the deception he’s created and different from the (assorted other) responses they would have if he failed to create that deception. The actions taken by the player in any walkthrough of Blue Lacuna produce responses and indeed entire scenes with Progue that result from the emotional changes he has wrought. Make It Good puts some encouragement on the player to work towards a particular outcome but makes other outcomes possible through simulation; Blue Lacuna allows the player to entirely forge his own path and end up at any relationship state he likes. I consider both of those to be valid approaches of interactive storytelling.

I would say the granularity I settled on for the NPC simulation in Blue Lacuna was based on the range of stories I wanted to tell and the number of moves available to the player. The three spectrums each range from -7 to +7, and the player has (at a rough guess) maybe 75-100 opportunities to adjust them (usually but not always one point up or down) in an average playthrough. A range of around 14 was chosen at least in part because that was about as much distinction as I thought I could get into natural language adjectives (i.e. a spectrum of 14 words conveying a range from snivellingly submissive to absolutely dominant), but also, even if it was higher the player wouldn’t have time within the scope of the story to explore it more fully.

Similarly, I could have added more spectrums, but the ones I settled on allowed for the variations on the character I was interested in exploring. (So romance/paternalism is one spectrum rather than two because I didn’t particularly want to write about a version of the character where both of them were high.)

I would say, though this system is basic from a mathematical/simulationist perspective, it does seem to me to meet your definition of allowing for “a sequence of actions taken by the player and the NPC that evoke a dramatically significant response from the NPC appropriate to the player’s actions, and could have provoked a different dramatically significant response had the player chosen a different course of action.” There are around a dozen different dramatically significant endings in Blue Lacuna, each of which is arrived at not from a single choice but from the aggregate consequences of those 75-100 micro-choices made throughout an individual playthrough.

I didn’t say that, I don’t think.

Of course I understand. But my own experience is that it’s not nearly as satisfying or as comprehensible to the player to represent the story as lots of tiny increments on a single line as it is to present larger increments in multiple dimensions. A story in which Luke takes a hundred baby steps towards the confidence required to explode the Death Star would be a bit dull, and also isn’t what Star Wars actually gives us. You can get as many possible points of story space by having more axes, and a story about how Luke progresses with respect to his knowledge of his father AND his relationship to his friends AND his confidence in the force is more interesting – and, perhaps paradoxically, easier to communicate to the player, because the steps of character change are not too tiny to see.

(I realize Storytron does track multiple variables, obviously.)

I get it. I just think that it’s fundamentally not how stories work.

In Romeo & Juliet, Romeo’s love or not for Juliet is binary. There aren’t any intermediate steps involved: he sees her, and that’s it: we have his motivation for the rest of the story. This may not be an excellent representation of how real-life people work, but it’s absolutely a standard element of narrative. (Okay, so he’s in love with Juliet more than he was with Rosaline. Now you have a Love score running from 0 to 2. My sense is that you want a totally generalisable system that will determine how love affects everybody in the story, or maybe in any story: but I just want to know how it affects Romeo.) Achilles doesn’t rampage on the Trojans because of the accumulation of a thousand little slights: he does it because of the death of Patroclus. Stop pushing buttons, Homer.

And even in stories where relationships are handled in more subtle ways, most sentences do not alter character states. Most sentences illustrate or explain things that are already the case. Many, many of them describe things which wouldn’t need to be simulated by numerical qualities, or things which never change over the course of the story. And even in the case of particularly plot-relevant qualities, most of them just don’t get visibly modified hundreds, or even dozens of times. In fact, stories find this kind of incremental change so boring that they typically skip over it, condensing many commonplace changes into a single event: you get a sentence like ‘Over the weeks and months that followed, their mutual admiration deepened’, and then the narrative moves on to the dramatic stuff.

I took some time mulling over the points raised here, in order to present a more coherent response.

Make It Good Emily, I think our difference here arises from the fact that Make It Good is based on a clever trick. The player does in fact engage in dramatically significant activities: misleading characters about the truth in order to get them to reveal the truth. Yes, this constitutes manipulation of one character’s emotions, but it is all cleverly indirect. I used a similar trick with Balance of Power 25 years ago. You’d get into a confrontation with the Soviet Union over an issue, and then you’d raise your DefCon level in an effort to intimidate him so that he’d back down. You were definitely trying to manipulate the computer character’s thinking, but you did so by the very indirect means of raising the DefCon level. For the time, that was a pretty good kluge. But wouldn’t it have been vastly superior if you could instead have gotten on the Hot Line and conversed with the Soviet premier? I think that Make It Good uses essentially the same trick, albeit much more complicated. You manipulate things to indirectly manipulate one person’s emotions. So I’m going to accept Make It Good as an example of what I’m seeking, but an example that is so contrived as to offer little hope of further utility.

Most people here, I’m sure, would agree that good dialogue is crucial to the quality of a story. Yet my favorite movie, Koyaanisqatsi, has zero dialogue – not a single word. It’s an exception to the rule, but an exception of such cleverness that it does not challenge the rule. I think that the cleverness with which Make It Good uses objects to manipulate emotions is such an instance.

The role of objects in storytelling While objects can usefully serve as symbols, the emotion doesn’t come from the objects themselves. In the case of Frodo and the Ring, the emotion of the moment when the Ring goes into the fires of Mt. Doom comes not from the Ring itself, but from the long, long history of the attempt to get there. All the efforts, all the suffering, all the tears that led up to that moment are what give the moment its power. Yes, objects can be invested with emotional significance – but it’s the emotional part that matters.

Conversation I realized while composing this that conversation is a good proxy for emotional content. As I mentioned earlier, dialogue is crucial to a good story. So it’s useful to inquire into the conversational capabilities of any medium for interactive storytelling; what kind of conversations are possible? Can characters insult or compliment each other? Challenge or submit to each other? Ask for, demand, or extort an action from another? Make and break promises? These are the kind of things that I think lie close to the heart of storytelling. The conversational verbs I’ve seen in IF don’t seem to support much of this kind of behavior.

Blue Lacuna looks like it has what I’m searching for. The relationship is confined to a single character – that’s good, because it insures that the verbs can be optimized for that single relationship, and it appears that the author has done exactly that. I’ve not been able to locate a walkthrough illustrating such behavior, but the indirect indicators I’ve seen so far look very promising. I’m also impressed that Aaron has established a numeric scale that he uses in the personality model. And the fact that the results depend upon the aggregate of the player’s behavior is especially impressive.

How many events doth a story make? I like Emily’s point that, while there may be hundreds or thousands of events in a story, the net changes in the internal variables need not be evenly divided among those events, thereby permitting larger increments and reducing the number of bits necessary to adequately handle the evolution of the variable. I suspect that there’s a lot of interesting ideas to be mined in the relationship between the story as sequence of events and the internal variables implicit in the story.

“Since 64 bits of modeling representation is too many, 1 bit is sufficient.” Nobody used those words, but maga has been arguing that case for some time now. I’ll concede your point, maga, that Romeo’s love for Juliet clicks on in a single step. I can’t recall now, does she also make the transition from neutrality to intense love in a single instant? I’ll go further and concede that there are instances in stories in which relationships or personality traits undergo instantaneous transitions, but I’ll also claim that these instances arise only when the change in the relationship or personality trait is not central to the story. Achilles’ rage is important because it drives him to dishonorable behavior; the death of Patroclus seems a contrivance to justify that rage. I’ll concede again that the evolution of the love between Romeo and Juliet is not explained, but again, that’s because the evolution itself is a precondition necessary for the story, not a crucial development in the story.

If we turn our attentions to developments that ARE central to a story, we see that those developments always take place incrementally. The central notion of Romeo and Juliet concerns the conflict between their love and the war between their families. That conflict IS developed steadily through the course of the story. In Macbeth, the central notion of the story is how the descent into evil behavior leads to personal catastrophe – and sure enough, the catastrophe that Macbeth experiences develops step by step, bit by bit. The central theme in Star Wars IV - VI is a boy becoming a man, and again, that evolution takes place by increments. In the early Celtic versions of what became the Arthurian legends, Arthur or his proxy must undergo a series of challenges to establish his manhood; each challenge involves a single aspect of manhood and it is only when they are taken together that Arthur can claim manhood.

The fundamental question to consider here is this: is not the central message of a story one of change? And is that central change executed in a single moment, or does it develop over time? I can think of some stories where the change does in fact take place in an instant, in the form of a dramatic realization on the part of a primary character that profoundly alters his worldview. But such plots are unusual and often rely for their appeal on some clever contrivance. (For example, The Sixth Sense) More common, especially in older tales that do not rely on novelty for their appeal, is the slow process of change extending throughout much of the story.

That’s not really my position. My position would probably be better summed up as: some plot-significant character states are best-represented as binary qualities; some are best-represented as a set of binary qualities; and of those that are best-represented as numeric values, it’s usually not going to be very helpful to represent them as very large, finely divisible numbers. I think Progue’s range of three qualities, each with a range of 15 points, is totally appropriate – for a very important NPC in an unusually long game. But I don’t think that trying to make every character in every game that complex is necessary or desirable for good interactive narrative.

This whole argument feels circular to me: the important developments are incremental ones, because only incremental developments are important; the rest are just contrivances and premises disguised as developments. And it seems as though now you’re not interested in character qualities unless they form the central plot arc, which you didn’t appear concerned with before.

Actually, you could argue entirely the opposite: modern works are more concerned with the psychological, with the development of character traits that lead up to plot-significant actions. Folk-tales and myths are much more behaviourist: they don’t concern themselves much with exploring why a thing was done, usually offering only simple explanations (“Now the king’s wife was very wicked”) or assuming that everybody’s motivations are transparent (which can be bloody confusing when someone of a different era and culture tries to work out exactly what’s going on). Cinderella has no slow processes of change: it has three transformative moments, each of which you could split up into perhaps two or three beats. There certainly are narratives that are primarily about gradual, finely incremental development of character qualities, where the action is not driven by key dramatic events; but I think that they’re the exceptional ones. Most games are not going to be Proust-like.

(Or, since you mentioned story as a process of evolution, I think most stories work along punctuated equilibria. Characters don’t change much except when something big happens; most of what goes on in between is about unpacking what the present state of affairs is.)

of those that are best-represented as numeric values, it’s usually not going to be very helpful to represent them as very large, finely divisible numbers

There are two distinct classes of number-crunching operators: boolean and arithmetic. If you have decided to use arithmetic operators, then there’s no reason not to use doubles, so it really is a choice between 64 bits and 1 bit. You seem to be arguing that 1 bit is sufficient in the great majority of cases. You agree that 4 bits works in the case of Blue Lacuna, so why draw a line at 64 bits? Operationally, there’s no difference.

This whole argument feels circular to me: the important developments are incremental ones, because only incremental developments are important;

I start by asserting that the important process in Romeo and Juliet is the conflict between their love and the war between their families. Do you disagree with my assertion? I then note that this conflict develops incrementally, not suddenly. Do you disagree with this statement? I then observe that the important process in Romeo and Juliet develops incrementally. Do you disagree with my conclusion?

You argue that my reasoning is circular. OK, let’s look at the argument:

  1. The important process is the conflict…
  2. That conflict develops incrementally…
  3. Therefore, the important process develops incrementally.

Would you explain to me how this line of thinking is circular?

And it seems as though now you’re not interested in character qualities unless they form the central plot arc, which you didn’t appear concerned with before.

I’m interested in the most important concepts of storytelling. I’m also interested in secondary matters, but I give them secondary priority. I will overlook your final clause.

Actually, you could argue entirely the opposite: modern works are more concerned with the psychological, with the development of character traits that lead up to plot-significant actions.

That’s a different argument, interesting but not relevant to our problem here. I have a delightful Jungian analysis of one of the tales in the Mabinogion, and it really is astounding how deep that story is. In fact, many of the tales in the Mabinogion make no sense at all by our standards, but are instead profound statements of psychological realities. But again, this is a digression.

I’d now like to approach our problem from a different angle: let us consider those kinds of behaviors that simply cannot be executed in a boolean architecture. Let’s take one of the most common elements in storytelling: the negotiated deal. Character A agrees to perform behavior X in return for Character B performing behavior Y. In order for this to happen, each of the characters must determine the value of the two behaviors and decide if the net of the two is positive. That is pointless in a boolean representation in which behaviors have value of either 1 or 0, because there are no close balances between behaviors. A proffered behavior is either good or bad; it is impossible to determine that one good behavior is preferable to another good behavior.

How about the notion of nice talk versus nasty talk (compliments versus insults). In a boolean architecture, you are restricted to a simple choice between generic nice and generic nasty; you are not permitted shades of gray that might be appropriate for the context. You can’t tell a middle-aged woman that she looks nice and a young beauty that she looks ravishing; you must offer them both the same compliment. You can’t say that Barker Bill is a low-down lying snake and tell your grandfather that he might be mistaken; you are forced to use the same degree of criticism. I grant that it’s possible to create separate verbs that permit such a distinction, but handling shades of gray by inventing a new color for each shade is cumbersome and clumsy.

What about the single most common element in so many stories: gossip. People talking about other people. John said that Mary is nice but Tom thinks that Mary is so-so. Of course, Mary thinks that Tom is a jerk, but Bob really likes Tom… and so on and so forth. I’m working on a silly little game that does only this, and it’s a cute bagatelle. There is no way to handle this behavior in a purely boolean environment.

And what about the relationships themselves? Must friendship be all-or-nothing? Must trust be a yes-or-no proposition? Must respect be either all-out or nonexistent?

There is an interesting approach that partially addresses these issues: to use a great many boolean variables to describe a single numeric variable. But this is merely substituting one multi-bit strategy for another multi-bit strategy. I’ve seen it used (I think they used something like this in Prom Night) and it’s a compromise that achieves only the worst of both worlds.

The boolean approach is quite inadequate to the task of interactive storytelling.