Not Quite the End

I first began working on interactive storytelling in, what, 1991? It’s been 26 years. My goal all along was to start up an entire industry based on interactive storytelling. I have failed to accomplish that. In all that time, I have never produced a single storyworld that I was willing to release to the public. I built a number of them, and I abandoned every single one late in the project. 

Why did I give up on each project?
Because not one of them was satisfactory to me. Every single storyworld fell so far short of my expectations that I could not bear to let other people see it.

At first, the problem was that the technology was too complicated and the tools I built were inadequate to the task. This was confirmed by the fact that, even though three very smart people made serious attempts to get something working, they all failed, just like me. Throughout the project, I kept stripping down the technology, making it cleaner and easier to work with. The current version is in fact simple enough for me to use — ten years ago.

Age
The years have caught up with me; I am having problems with my memory. If you’ve ever done any programming, you know full well how critical it is to keep a million details in your head as you work. Nowadays, I can barely recall what I was doing half an hour ago. I recall one pathetic week when I made a design change, and the very next day it made no sense to me, so I tore it out. Three days later, I had forgotten and put it back in. I only discovered this when I went back into the archive to check on another problem.

I’ve gone to the doctor complaining about my failing memory, and they put me through several hours of cognitive testing and concluded that I’m just fine. One of them suggested that I have been operating at super-turbo-charged all my life, and now I have declined to merely turbo-charged, so my test results are near-perfect, but I’m still dumber than I used to be. 

Discipline has been one of my great strengths; throughout my life I have been able to keep my nose to the grindstone for long periods of time. But the last few months have been terribly depressing. Every morning I fire up the software and try to get to work on Le Morte D’Arthur. I stare at the screen, trying to think. Nothing happens. I rehearse the storyworld, and I can identify obvious little flaws, but I can’t pinpoint what it is that is bothering me. It’s just not good enough. After half an hour I give up and turn to other things. I come back to Le Morte D’Arthur every few hours, and every few hours it’s the same blank mind. I can do other things, but whenever I come back to Le Morte D’Arthur, it’s as if a switch turns off. 

Perfectionism
Another factor in my failure here is my perfectionism. I built quite a lot of stuff that would probably have impressed some people. But I had clear goals: I wanted to build something that allowed genuine dramatically significant interaction with artificial characters. I never quite reached those goals, although I came close a few times. I would probably have gotten something out there if I had lowered my standards a bit. 

Language
I’ve been struggling with a killer problem for more than ten years now: the language of interaction. I can use it effectively within the code, but when it comes time to present the next step in the story, I hit a brick wall: how do I express the results to the player? I have already calculated WHAT the computer actor has decided to do, but I need to figure out HOW to say it to him in a manner that is appropriate. I need a system that doesn’t sound mechanical. The player shouldn’t feel that he’s talking to a robot. Repetitiveness is the killer problem. I can’t just keep pushing the same text onto the player over and over. 

I thought I had a good solution to the problem with something I call “Tinkertoy Text”. It’s certainly a clever technology, and it permits me to tell the player what’s happening in a fashion that permits hundreds of variations. That’s what I was using ten years ago. But once I began rehearsals, I found that the illusion really didn’t work; after just a few tries, it was easy to see that it was just an algorithm. It simply didn’t feel right.

That’s why I started over with Siboot. It replaced Tinkertoy Text with a symbolic language using icons that were assembled into sentences. I poured years into getting that system working, and, with the help of others making beautiful graphic icons, we got a very nice-looking language that made sense. We put years into the Siboot project. It was going to be beautiful. But I ran into the same old language problem. You could say a lot of interesting things with Siboot, but to give the story richness, I needed something more. The play felt mechanical. You did not need to get into each of the characters and understand how they worked. 

So I came up with a new idea. Actually it was an old idea revived: the Encounter system. This was a set of short experiences, rather like two-step interactions. The player encounters another actor in some oddball situation. The player is given a handful of choices as to how to react. The other actor then reacts to the player’s choice. The encounter alters the other actor’s perception of the player. The value of this system is that it injected textual richness into the system. You could get to know the other actors at a more personal level. It broke up the mechanical feel.

At this point, I made crucial mistake. I knew that I would need hundreds of these encounters to flesh out the experience properly. They weren’t hard to create; it took only a bit of effort. “What an excellent way to get beginners interested in the technology!” I thought. This would create a cadre of beginners familiar with the basics of Storytron technology. From there, they could go on to building their own storyworlds. 

To make it as easy as possible, I spent four months building a lovely editor that makes it really easy to create and tune an encouter. I also put about a month creating a set of videos for YouTube explaining everything. This, I was certain, would get the movement started. 

In June I proudly released everything to the world. I talked it all up on social media, asked everybody to spread the word. With all that effort, I think something over a hundred people actually downloaded the software. Two people asked questions. One person submitted a badly flawed encounter. That was all.

This blow pulled the rug out from under me. I realized that people just aren't interested in learning how to build interactive storytelling. Yes, they want to create interactive storyworlds, but at this point in history, nobody realizes just how much effort goes into it. They keep repeating the inadequate designs that they’ve been using for twenty years now. Each one thinks that he has found the solution, piddles away at it for a while, and then gives up. You would think that people would learn that they need something more, but apparently nobody is aware of what was happening five or ten years ago. 

The central problem here is an absolute refusal to use mathematics. They keep trying to build everything with boolean structures. Booleans don’t work in interactive storytelling. You would think that, upon realizing this, most people would gird their loins and start using numerical approaches, but they just won’t do it. I’ve written two books explaining how to do this; I’ve lectured all over the world. But nobody will follow.

Of course, I’m partly to blame here. I should have built a demonstration storyworld. People would play the demonstration storyworld and realize just how powerful this technology is. This is where we run into the next killer problem:

Indirection
Interactive storytelling is not like games; it’s subtle. Games have a crescendo in which the player confronts the ultimate challenge (what used to be called “the boss”) and wins only if the player has undergone the proper preparations, setting the stage properly. 

Every playing of a game yields a story. In games, the story is a sequence of closely spaced victories, each of which advances the player closer to the ultimate goal. The player’s confidence is steadily boosted with each of the small victories. It’s rather like a child leading a puppy into the house by placing doggie treats in a line, retreating, and encouraging the puppy to come forward to get the next treat. 

Stories aren’t like that. There’s no simple, obvious way to reach successful. The player doesn’t simply accumulate enough gold, weapons, tools, or brownie points until success is attained. Each decision is a bit different. 

There are few decisive moments in stories. Most of a story consists of many small steps leading to an ultimate destination that is usually foreseeable early in the story. Romantic stories ALWAYS end with the guy and the gal hitching up; the fascination lies in how they get there. In many adventure movies the objective is laid out early in the tale: the protagonist must defeat some villain, acquire some Macguffin, or reach some destination. The events in the tale slowly combine to permit the protagonist to reach the objective — but the journey itself is not at all obvious in advance.

How can a player carry out tasks that are not obviously related to the declared goal? The only mechanism I can see is a series of interactions that alter the player’s relationships with other actors. That’s what I built into Siboot. The player must earn the trust, affection, and respect of others. Only this way can the player cajole them into giving him the information that he needs to win. Herein lies the fatal flaw of Siboot: the only interactions that the player can have with other actors are those directly related to the contest that they are all participating in. There is a backstory, but the player played no role in that backstory. 

Related to this is the problem of story size. Consider a story as a sequence of events. How many events are necessary to comprise a satisfactory story. Children’s stories typically have a few hundred events. For movies, we can estimate the number of events by dividing the total duration of the movie by the average number of events per second. I’d guess that a movie has something significant happening at least once every ten seconds. In a two-hour movie, that comes to 720 events. However, movies are carefully contrived to compress the story into as short a space as possible. Scriptwriters use all manner of clever tricks to achieve economy of expression. These are sometimes called “plot gaps”: the story proceeds from A to C without mentioning B. Sometimes in movies, the editor creates the plot gap by deleting a scene that explained B. 

We can’t use plot gaps in interactive storytelling. The player must understand how the sequence of events took place; we can’t simply skip over messy points in the plot. That makes things that much more difficult for the artist. 

Novels are much longer than movies. Roughly speaking, every sentence expresses a single event. Obviously, then, novels contain thousands of events. Novels seldom suffer from plot gaps; they spell out every step in the progress of the story. Novels make more sense than movies. 

The point of all this is that the storyworld must contain a gigantic range of events. Strictly speaking, a storyworld must contain all the possible stories that could be told in its context. The player does not proceed from beginning to end in a straight line, as one does in a game. The path to successful completion is not at all apparent; basic logic should not be sufficient to achieve a satisfying resolution. Text adventures sometimes handle this with arbitrary situations; the player is required to execute some crazy sequence of events to get past the obstacle. This is not storytelling; this is merely puzzle-making. 

Hence, the player approaches the conclusion of the story indirectly, taking a great many small steps. No single step (except perhaps the crisis) should be decisive. Instead, the result of the story is determined by the accumulated pattern of all the player’s steps through the storyworld. This is simply too complicated a task. At the moment, I am unable to conceive of a solution to this problem; this appears, for the nonce, to be the killer problem in interactive storytelling.

Public
Even if I could build such a storyworld, it would be poorly received by the public. People will think of it as a game, not a storyworld. They’ll expect a clear, logical path to victory. The subtleties that are absolutely necessary for a good story will impel players to complain that it is all too confusing and they can’t figure out what to do. A storyworld necessarily takes longer to play than a game; you can’t work your way through all the subtleties as you can in a quick shooter. 

Not really the end
I like to believe that the SWAT technology is decades ahead of anything else that I have seen, although I confess that I haven’t been following other people’s work for about five years. My wife Kathy pointed out that, if I truly am decades ahead, it’s unreasonable for me to expect anybody else to understand. So the best I can hope to do is document the technology and archive it. Decades from now, people will be building stuff much better, and somebody will say, “Wait a minute! Wasn’t there some nutcase a few decades ago who was talking about this kind of thing?” They’ll go back, find my stuff, and marvel at how I was able to handle so many ideas with such crappy technology. “Gad! How did he ever get this contraption working?” they’ll ask. “But there are some interesting ideas buried in here — let’s use them.” That, at least, is my hope.

But I’m not going to give up completely. I have one last hope. Perhaps I can get people moving if I let them play with the simplest, most stripped-down version of my technology. This is the Encounter technology. I already have some of the editor system ready to go, and over the last few months I have been expanding it. As of today, Christmas 2017, it’s almost finished. On January 1st, I shall release the Le Morte D’Arthur battle substory. Next, I will finish the General Purpose Encounter Editor (Sappho). Then I shall endeavor to get people interested in it. If they do, that will be a step forward. If they don’t, then I spend some time re-reading Epictetus and Marcus Aurelius, and remind myself that I am responsible for only my own actions; worrying about other people’s actions is futile. 

I also have plans for renewing my efforts at teaching. That’s another essay.