First, you have to get your very own Slubber page; for the nonce, I am restricting Slubber to an elite few (like you) who’ll get access to Slubber. If things work out well, then I’ll develop a general-purpose version for everybody. Email me to get a URL to your very own page containing Slubber. Obviously, you should keep all of this — not just the URL, but the entire arrangement — to yourself.
This version of Slubber — Slubber 1.0 — is a very limited version. To be honest, I don’t want to devote hundreds of hours to constructing an excellent version of the program with all the necessary bells and whistles. This one works. It’s not what I would call “user friendly”; a better descriptor would be “user curt”. It works, but it doesn’t give you much leeway for mistakes. If this first round of users finds the program worthwhile, then I’ll start adding “niceness” features.
Here’s the image you’ll see if you have a big enough screen:
It auto-sizes to fit into your screen, so if you try to run it on your smartphone, you’ll see something like this:

Good luck trying to read that. You need a proper computer to use this program.
Let’s go through each of the elements of the display, starting in the upper left corner. The word “Encounters” is the title of the list underneath it. The funny face button next to it allows you to rename an encounter. I’ll explain that later.
Upper row
In the top center are two more title words: “Introduction” and “Options”. These describe the contents of the column beneath them. The bit text box in light blue is the introduction to the selected encounter. Underneath it are three blocks for the options for this encounter. Again, I’ll explain them in detail when I get down to that portion of the display.
On the upper right is the title “Reactions” and a button to save your work. The reactions specify how the outcome variables change in response to each of the options. If you press the “Save” button, Slubber will save your storyworld. You don’t get to select a folder to put it into or even give it a filename. You get just one storyworld to work with and it doesn’t even have a name, as far as you are concerned. It’s just “your storyworld”. You don’t need to load it at the beginning of your work session; it automatically loads when the page loads. As Spock would say, “Crude, but effective”. We can get better if you folks show promise with this version.
Encounter List
Now let’s move into the lower portions of the three columns. The left (light pink) column is the list of encounters in the storyworld. You get exactly 35 encounters in your storyworld — no more, no less. Remember: “Crude but effective”. The Empty encounters in this example are skipped over, so you don’t have to fill in every encounter with material. You can have any number of encounters less than 35 — except that the last 5 encounters are set in stone; you can enter some of their contents, but you can’t change their titles.
This is a standard list; you click on a title to select that encounter for editing. You can click on the eighth, or the twenty-second, or the nineteenth — any encounter you want! Aren’t computers just nifty-keen?
When you have selected an encounter, you can change its title by clicking on the funny face icon at the top of the pink column. By the way, if you can suggest a better image to illustrate the concept of “renaming an encounter”, I’m all ears — er, eyes.
Encounter text and options
Moving along… at the top of the middle column is the text box where you can enter the shining text that will someday earn you a Nobel Prize for literature. It presents the player with a dramatically interesting conundrum, although the first few encounters serve to present the context in which the player’s future decisions will be made, so those first few encounters are merely expository, offering the player such electrifying options as “OK”, “Gee”, or “Is that so?”
The lower portion of the middle column allows you to give the player up to three options. You get a maximum of three options — no more. Remember, “Crude but effective”. You don’t have to use all three. If you leave an option empty, then nothing will be presented to the player for that option.
The contents of an option should be presented an action statement: something that the player does in response to the conundrum presented in the introductory text. While the introductory text should refer to the player in second person (“you”), the option text should use first person (“I”). It’s the player doing something, see?
Underneath the option text is a white box that’s a pop-up menu listing all the encounters in the storyworld. This is the consequence of that option. If the player chooses that option, then the consequence you specify is the next encounter that that player will experience. Note that this list is not edited to insure that you enter only reasonable consequences. If, for the encounter “SettingTheTime”, you set the consequence to “SettingTheTime”, your storyworld will happily present the player with an endless loop. That’s not my problem; if you want to enter idiotic choices, you have my blessing. You are also free to bash your head against the screen all day long; it’s a free country. Just remember: CBE, an acronym that will go down in the annals of computer history alongside RTFM.
Reactions
Let’s move along to the right column. This is where you define the all-important changes to the outcome variables. Your first task, of course, is to figure out what your outcome variables will be. These are central to your storyworld; they should capture the fundamental concept you wish your storyworld to examine. You start by deciding upon the dramatic conflict you wish your storyworld to explore. A dramatic conflict does NOT take place between two characters; if you think that, you’ve watching too many comic book movies. A dramatic conflict lies between two principles.
In the example storyworld I provide with Slubber, the conflict is between loyalty to a friend and moral duty to society. Both of these are admirable virtues, but I have rigged a situation in which the protagonist must choose which is of greater importance to him. There are lots of interesting conflicts: money versus empathy, sexual awakening versus marital fidelity, social obligation versus personal survival, family loyalty versus romance — you’ve got plenty of choices. If you don’t see a lot of possibilities, you haven’t lived life enough and you should get away from that damn computer, go out, and live a real life for a while before attempting to be a storyteller.
Now decide upon your three palm leaves. One should express the triumph of one principle; the second should express the triumph of the other principle; the third is a wild card that might, for example, express a complicated mess involving both principles. In the Slubber example I wrote, the three palm leaves express 1) personal failure reflected in a life of cynicism and loneliness; 2) one kind of success in the form of elevation to the heights of business; and 3) a different kind of success: creative and intellectual.
Once you have decided upon the conflict to be explored in your storyworld, you must determine the personality traits that most clearly differentiate one fundamental goal from the other. In the example storyworld, I settled upon these outcome variables: cynicism, intelligence, and curiosity. I figured out encounters that might allow the player to demonstrate one or more of these outcome variables, then made the adjustments for them.
They’re easy enough to use; just slide the green ball one way or the other. You can set it to values between -0.99 and +0.99. The number you set here changes the value of the outcome variable according to a clever little algorithm that you needn’t concern yourself with. You see, Slubber uses an invention of mine: Bounded Numbers. You can find a detailed explanation of the concept here. That page gives you more detail than you really need; just skim it to get the idea. Bounded numbers always lie between -1 and +1, and nothing you do to them can break them out from these boundaries. All you know is the number on the right side gives you an idea of how much the outcome variable will change in response. In this case, Cynicism will increase very slightly, Intelligence will increase a goodly amount, and Curiosity will not change at all.
This, believe it or not, is where you insert the artistic content of your storyworld. I won’t try to explain it here; all I can say is that everything done on a computer is done with numbers, and these numbers express your assessment of the human condition.
The final algorithm
There’s one last section that remains invisible most of the time. It appears only when you are looking at the special encounter called “Palm Node”. It pops up in the lower right corner of the window when you have selected that encounter and looks like this:
These are the algorithms that determine the outcome of the story. PalmNode will use these algorithms to decide which of the three endings (Palm Leaf 1, Palm Leaf 2, or Palm Leaf 3) will ensue. It simply adds up the three calculated numbers in each column to get a Final Sum; the Palm Leaf with the highest Final Sum is chosen.
I went to some length to make this as un-mathy as possible. There are no equations to see (but they’re in there). Instead, you see the numbers in a more common-sense way.
The first decision you make is whether the outcome variable is added to or subtracted from the Final Sum. You use the little bitty circle with the plus sign inside to set this. If you click on it, it flips over to minus. Click again, and it flips back to plus. You can click as many times as you want, but you eventually have to settle on either plus or minus.
The next part is the pop-up menu currently containing “All”. It contains five menu items: “All”, “Big”, “Some”, “Small”, and “None”. You select one of these menu items to decide how much this outcome variable should contribute to the Final Sum.
If you select “None”, then its value will not be used in calculating the Final Sum.
If you select “Small”, then its value will contribute only slightly in calculating the Final Sum.
If you select “Some”, then half of its value will be used in calculating the Final Sum.
If you select “Big”, then a lot of its value will be used in calculating the Final Sum.
If you select “All”, then its entire value will be used in calculating the Final Sum.
Of course, if you have chosen the Minus button, then the outcome variable will be subtracted from the Final Sum in proportion to the size of the menu item you choose.
You should run a bunch of rehearsals to see how the system performs with your settings. If you want to analyze the numbers, just open the Javascript console, where the program will post the most important numbers for you to see.
That’s all there is to it.