I just finished hooking up the basic affinity verbs for the Gossip tutorial storyworld.
The version I implemented is a little more linear than the verb web I originally came up. All the verbs are the same but the links between individual verbs in the original design was more “web-like.”
I originally envisioned having multiple roles spawning off a single verb. After you greeted a character they would automatically return your greeting while you were selecting who you wanted to talk about. I did fool around with setting different Times To Prepare on individual verbs but that didn’t sequence things correctly.
It might be possible to implement my original design but it can wait until I get the basic tutorial storyworld up and running and start writing some pages for the tutorial wiki. For now this simple, “linear” verb web will suffice. It’s something I can build on and experiment with later.
Chris Crawford thinks that if I do a new Gossip I should dump the simple design that he used in his recreation and implement something more robust, something he calls Super Gossip. His idea would add activities that allow more complex interactions, verbs for things like insulting someone directly, bad-mouthing someone behind their back, and lying about something you said previously.
I think Chris’ suggestions are good but I am going to table these suggestion for now and work on implementing the simplified version of Gossip that I outlined earlier. I don’t want to fall victim to the “perfect is the enemy of good” syndrome and spend months, maybe years trying to create a Storytronic storyworld with a tool that is incapable of doing it. Gossip is intended to simply be a tutorial storyworld that illustrates some of the concepts of personality modeling and relationship dynamics, not a full-scale storyworld.
I have made some additional design decisions about Gossip.
It will take place on a single stage with all of the six actors on that single stage. At this point it doesn’t matter what this stage actually is and having all the actors in a single location saves the hassle of having actors having to “call” one another.
Because of the single stage the call_A and A_answer verbs are no longer needed. I will replace them with a greet_A verb. I will also probably provide an A_returns_greeting verb, something I did in Siboot, to give the protagonist an idea of the antagonist’s feelings towards them. For now the rest of the verb web or branch will probably remain the same.
All of the original actors will appear in the storyworld—Bara, Owen, Max, Ella, Mort, and Zoe.
I plan on using two of the three basic traits, Bad_Good and False_Honest, in this storyworld. I also am going to add a fourth trait, Vain_Humble. I still need to figure out how these traits map to the original Gossip’s Gullible, Dishonest, and Vain.
Regarding the last bullet point, Chris Conley thinks that Gullible could be mapped to False_Honest_accordance while I think it might be possible to map Gullible with a combination of Bad_Good_accordance and Bad_Good_weight. I like Chris’ simplified approach but I want to think about it a bit more.
For the Summer 2019 Update sometime in July I think I would like to include the beginnings of an integrated Encounter Editor into SWAT.
It won’t be completely functional. Probably all you will be able to do will be to display the Encounter editor screen by selecting an Encounters menu item from the Editors menu. There might be various controls on the screen but I don’t envision them being actually hooked up to anything behind the scenes for this release.
I am going to base this integrated encounter editor on version 3.11 of the code that Chris Crawford provided. The editor layout will follow Chris’ design but I plan on reshuffling the various sections to make things a bit clearer.
Here is a mockup showing how the various controls might be arranged in the individual sections.
It’s a bit tight but specific elements of the design might change as I move forward. I think as I try to figure out how to create a Java UI from scratch this will be a good introduction to the Swing framework and all its controls and layout elements.
I’ve also got a high-level breakdown of the work required to integrate the encounter editor into SWAT.
Encounter Editor screen in SWAT, accessible from Editor menu.
Read in storyworld .stw file. When? What if you change the storyworld after reading in the .stw file?
Creating or editing an encounter.
Creating and updating the storyworld .enc file.
Displaying encounters in the Storyteller.
Deciding how and when to call up an encounter based on storyworld conditions.
Chris Crawford has posted on his site about the four components of a story.
Dramatically significant decisions
Challenges to be overcome (which are always overcome)
Interacting with other characters to develop relationships with them
He hasn’t written much more about this but I find his breakdown interesting. I also wonder how the various components would be implemented in a Storytronic storyworld. I think dramatically significant decisions would probably be handled using the verb web. I guess wondrous events and challenges to be overcome could be handled using encounters (though cut scenes and mini-games could also provide “color”). Interacting with other characters is handled using both the verb web and encounters so I don’t know why it is called out specifically since developing relationships is the raison d’etre of a Storytronic storyworld.
Hopefully Chris will write more on this topic in the future. Update: Chris has written about this some more in What Does the User Do?
I came out of the Storytron Winter 2018 Update with a lot of optimism. Based on my list of SWAT enhancements, bug fixes, and related tasks I had high expectations and hopes for this release.
Since then there have been some “spirited” discussions on the Storytron Google Group and we’ve acquired a few more patrons, but work on my initial list, which I’ve revisited several times, has not met my expectations.
I fixed one bug where selecting Cancel in the Open dialog would quit the application instead of just closing the dialog window if a storyworld was already open.
I also deleted the Protagonist operator from the OperatorsList XML file and tested all the storyworlds in the storyworld repository with this change (using the Protagonist operator in your storyworld would have caused an error at runtime).
I also modified the starter storyworld that is used when selecting File > New to include the three default personality traits — Bad_Good, False_Honest, and Timid_Dominant. The old defaults of Quiet_Chatty and Cool_Volatile are still there as well since I didn’t want to get rid of them until I was sure their removal wouldn’t affect other parts of the program adversely.
I have been working on another bug but haven’t fixed it at this time. This bug had to do with the loading of personality traits from the a second storyworld without clearing out the first storyworld’s personality traits. This bug results in either a combination of both storyworld traits into the second storyworld or an exception error being thrown when displaying the Actor editor (or both).
There is a SWAT JAR file for version 1.2 that can be downloaded here for those of you who want to experiment with the SWAT editor but don’t want to install Eclipse and build the editor from source code.
There are three new repositories that have been created in the Storytron GitHub (thank you Chris Crawford for the source code).
Encounter Editor v1.01 is the encounter editor that Chris wrote for Siboot. If you don’t want to build it from source you can download the compiled application and the manual here (just the manual is also available as well at the previous link).
Encounter Editor v3.11 looks like a modification of Encounter Editor v1.01 but I don’t know what purpose it serves. At first I thought it might be the Sappho encounter editor that Chris was working on but I’ve also got the source code for that (but no data file). Maybe Chris can shed some light on the purpose of this editor in the comments.
Face Editor is the tool that Chris Crawford created to create dynamic faces for Siboot. It runs but it doesn’t handle smaller screens very well.
While I am personally disappointed that I haven’t made more progress on my 2018 list, the downtime has given me time to think about what might be best for Storytron to move it forward.
The original goal of Storytron was to kick start an interactive storytelling revolution. That didn’t happen. While people might have understood the concepts behind Storytronics only a handful of people ever attempted to build a storyworld of any substance.
Coming back to SWAT after a nine year hiatus I forgot about the significant level of mental effort required to weave storyworld elements together into a dramatic whole. And I realized that the current tool is currently inadequate to provide what it promises.
I think redesigning screens, tinkering with user interface elements, and porting the engine right now is premature. I think my part-time work could be better spent on these four areas
Create a new tutorial storyworld and wiki
Integrate some form of the Encounter Editor into SWAT
Integrate some form of the Face Editor into SWAT
Rewrite the engine to make it cross platform.
Creating A Tutorial Storyworld
I’ve gone back and forth in my mind over the past months about what type of tutorial storyworld to create.
But this idea didn’t generate much personal enthusiasm. Yes, it was social, with the goal being to become the most popular person after a certain number of turns, but the verb web was pretty limited. Here is what you could do in that game.
You could choose a schoolmate to call
You could say to the callee how you felt about another one of your schoolmates
You could find out from the callee how they felt about that same schoolmate
You would find out from the callee how that schoolmate felt about you
Hangup, rinse, and repeat.
The situation was pretty non-dramatic, more of a sketch than a storyworld. Honestly, I found it pretty boring.
Then it occurred to me to create a storyworld loosely based on Jane Austen’s novel Pride & Prejudice (probably after I read about a card game called Marrying Mr. Darcy).
The idea appealed to me for a couple of reasons.
Here was a situation that was social but possibly offering a verb web of a bit more complexity.
The sisters could talk among themselves and converse with suitors with the ultimate goal of finding an ideal match. There could be events like teas, luncheons, and dances that could affect the dramatic flow of the storyworld. At first glance it seemed like the perfect dovetail of interactive storytelling and audience.
The Regency England period also seems a nice fit for “people not things” games and over they years has attracted quite a few people working in interactive storytelling.
This was also the same approach that I took back in 2009–2010 when I was creating Siboot for Storytron. I took an existing dramatic situation/story and adapted it for a new medium. That way I could learn the technology without having to worry about coming up with something new and unique.
But as I thought more about the idea I began to have second thoughts.
First, the idea, while it seems appropriate to interactive storytelling, just didn’t appeal to me. I could do my research and reading and come up with dramatic situations for this setting but that seemed like it would take more time than I want to spend.
Also, I don’t think in its present format SWAT is able to create a compelling storyworld in this milieu. Right now it can’t even reproduce the experience found in 1987 version of Trust & Betrayal: The Legacy of Siboot. Maybe if we had integrated encounters and dynamic faces the experience would be more dramatic but with the current tools you are limited to kludgy workarounds for encounters and dynamic faces are not even possible.
Here was something that captured my interest and lent itself to prescribed social interactions — moderators asked the candidates questions, candidates answered those question, either prevaricating or attacked the other candidates, and the audience reacted.
It could be implemented with multiple characters on a single stage with some Fate-related verbs to keep things moving behind the scenes.
I thought about this for awhile and the more I thought about it the more I came to realize that this idea also wasn’t the best idea to teach the basics about Storytron. Given that I only have part time to work on this I didn’t want to spend nine months to a year working on a storyworld that was too big and not suited for the task at hand. So I set this idea aside for a later time.
So I’ve come back full circle and decided to port Teen Talk to Storytron under the name of “gossip”. It’s not perfect but I think it will serve as a first step in providing concrete examples of Storytronic concepts, show authors how the individual pieces are assembled into a Storytronic storyworld, and provide something for other people to build on.
For this tutorial storyworld I’ve created a new repository called gossip. There’s a companion wiki in this repository that will walk an author through the process of creating this very basic conversational storyworld in five to ten (maybe twenty) lessons.
This conversational storyworld will be created using SWAT version 1.2
I’m telling everyone up front that this storyworld won’t be dramatic. The original game wasn’t dramatic. The goal is merely to show people how to start building storyworlds.
The goal is to have the tutorial storyworld and wiki ready three months from now in time for the next update.
Encounter Editor Integration
This task will be integrating some sort of encounter editor into SWAT. It might be based on the code that Chris Crawford has provided.
At this point I don’t know what it will look like or how it will integrate into the rest of the verb web. I initially thought that encounter verbs should be tightly coupled to the rest of the verb web but now I think that they should be an entity unto themselves.
I think I might be able to get an encounter editor integrated into SWAT 1.2 by the end of the 2019.
SWAT with an integrated encounter editor will be version 2.0.
Face Editor Integration
The third step will be to integrate a face editor into SWAT that allows the dynamic display of actor emotions.
When I write “dynamic” I don’t know whether the faces will be a series of static graphic images swapped in or out based on traits or something more animated like Chris Crawford was attempting with his re-imagining of Siboot.
No due date for getting a face editor integrated into SWAT 2.0 but it would be nice to have something in the first half of 2020.
SWAT with an integrated face editor will be version 3.0.
Between these major releases of SWAT there will probably be point releases that contain bug fixes, unit tests, code refactoring, and, yes, maybe even some minor changes to the user interface. But I’m not promising anything on this front and a lot will depend on the community of developers.
For anyone who disagrees with the roadmap that I’ve laid out I’ve got just two words — open source. If you want to see a specific user interface or editor change then fork the repository, make and test your changes, and submit a pull request. I will happily include any changes that don’t break the code.
As the encounter and face editors are integrated into SWAT I’ll update the tutorial storyworld and write additional lessons to the wiki tutorial.
Between these major release of SWAT there will probably be point releases that contain bug fixes, unit tests, code refactoring, and, yes, maybe even some minor changes to the user interface. But I’m not promising anything on this front and a lot will depend on the community of developers.
For anyone who disagrees with the roadmap that I’ve laid out I’ve got just two words—open source. If you want to see a specific user interface or editor change then fork the repository, make and test your changes, and submit a pull request. I will happily include any changes that don’t break the code.
I am thinking of changing the subject matter of the Principles & Personalities tutorial storyworld that I am building for Storytron.
Instead of loosely basing it on Jane Austen’s Pride & Prejudice, using characters and situations from the novel, I considering modeling a political candidate debate (see my Campaign Puppets idea from 2016 for the backstory).
First some history. When I first decided to create a new tutorial storyworld for Storytron I initially thought that I would port the Teen Talk app that I created for iOS to the Storytron format. The interaction was simple—as the main character you call up one of your schoolmates, tell them how you feel about one of your other mutual schoolmates, and then the person you called tells you how the schoolmate you’re discussing feels about you. Your schoolmates can also gossip among themselves (Teen Talk is based on Chris Crawford’s original Gossip game). The goal is to become the most popular person in school after a certain number of turns.
I started working on the design of this tutorial storyworld, mapping the personality models of the two games.
And sketching out the beginnings of a verb web based on the structure of the Teen Talk code.
But as I worked on the idea it appealed to me less and less. It certainly would show how to build a few verbs and link them together but overall it seemed like more of a porting exercise, much like my original port from Java (Gossip) to C#/Xamarin (Teen Talk) that I did in 2013. And it didn’t seem to be very extensible (though Chris Crawford attempted something like that with his Prom Night and Bagatelle storyworlds).
I also haven’t been in high school for thirty-eight years so I might have a problem coming up with situations and verbs beyond the original verb web.
So I put that idea of a Gossip/Teen Talk port aside while I worked on other stuff.
Chris Crawford has written that soap operas like Downton Abbey suggest a possible structure for interactive storytelling because they consist of a sequence of small short stories that can be combined in interesting ways, an “an endless story with no overarching plot.”
The Regency England era has appealed to a lot of people working in interactive storytelling and games. Back in 2009 Laura Mixon’s started on a storyworld called Vanities & Vexations, compiling a large spreadsheet of characters and verbs. Emily Short’s Versu launched back in 2013 with The Unwelcome Proposal, an interactive scene adapted from Jane Austen’s signature work. There is a virtual world called Ever, Jane that I heard about back in 2014 where you MMORPG you way around a Regency England environment trying to invite and get invited. There is even a card game called Marrying Mr. Darcy and a Pride & Prejudice board game XYZ. I’ve also played a solitaire based card called XYZ set in the same era. There have also been numerous movie adaptations of the book.
At the beginning of February I decided to use Pride & Prejudice as source material for the tutorial storyworld. I started reading the book. I considered watching one of the movie adaptations. I even bought the card game and played it with my wife a couple of times.
But still I wasn’t excited about the subject matter. For some reason it didn’t appeal to me. I didn’t have a feel for the setting and characters. I certainly could develop the feel but I wanted to get started as soon as possible and didn’t want to spend months on research. I also thought it might be to “big” for a tutorial storyworld, especially since it might require features like encounters that are not currently not in SWAT v1.1. I also was afraid that attempting to tell a dramatic story with the current technology might muddy the waters. I was also leary of imitation.
By imitation I mean the fact that all new medium attempts at first to imitate the media that came before them. Back in the 1900’s motion pictures
I also think the flaw that has plagued all previous attempts at creating a Storytron storyworld is imitation. By that I mean that people have been attempting to emulate books with its text-based interface.
The question will be how to fit a political debate into the Storytron Verb/Actor/Stage/Prop paradigm. Is it even possible to do that?
I think so. It might not be easy but it is possible. It will probably be a bit kludgy since I’ll have to create core actor traits to model candidate positions on the issues (I won’t have to model every political issue a candidate faces just a few to show how it’s done)