Storytron Spring 2019 Update


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.

SWAT v1.2

This release of SWAT contains only minor bug fixes and enhancements.

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.

New Repositories

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. 

At first I thought I would just do a quick port of Teen Talk, the iOS game that I ported from Chris Crawford’s 2012 Java re-imagining of his 1983 Gossip game.

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.

In the non-computer world there is the aforementioned card game, a Pride & Prejudice board game, and numerous movie adaptations.

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.

My next thought was to revisit an idea I had from 2016 and model a political debate between candidates for the presidency of the United States (probably seeing my copy of the card game The Contender: The Game of Presidential Debate cast my thoughts in this direction).

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.

Gossip Verb Web

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.

Engine Rewrite

For the engine rewrite there will probably need to be some experiments to determine which language, Kotlin or JavaScript, is the best way going forward. Beyond that I don’t have much more detail. No due dates for an engine rewrite.

Final Thoughts

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.

This entry was posted in Other, Side Projects and tagged . Bookmark the permalink.