Welcome, one and all, to the grand and momentous launch of SweepWeave, a free and open source tool for writing interactive fiction.
SweepWeave employs a design that is probably best described as “odd.” It’s worth discussing the system’s main features, and some of the design decisions that were made, to try to help authors determine whether or not SweepWeave will be the best tool for a given project.
1) What is a storyworld?
Storyworlds are computer games which focus on interaction with fictional characters as the central game mechanic, which track dynamic relationships between characters, and which employ these simulated characters and relationships to assemble pieces of handcrafted content into a coherent narrative shaped, in part, by player choice.
To break that down a little bit, storyworlds are made up of characters, the network of relationships between characters, and narrative building blocks called “encounters.” A player’s choices can impact how characters feel about each other, and this, in turn, determines what actions those characters take, what direction the story takes, and how the conflicts of a story are eventually resolved. Character interaction, and relationship building, constitute a storyworld’s core game mechanics.
Encounters are like the pages of a book; they include a bit of content describing what happens in the story and a list of options the player can choose from. Each option has its own list of associated reactions, which are possible ways for the game, and its characters, to respond to the player’s choice. Encounters and reactions also have scripts associated with them, which determine when they occur, while options have scripts which determine when the player may select them.
For those familiar with the concept of “storylets” in interactive storytelling, SweepWeave employs what is effectively a storylet-based system for assembling the plot of a given playthrough. Encounters fulfill the role of storylets, while the relationships between characters are used to select which encounter to present to the player each turn, thereby constructing the story as the player plays the game, in a way that takes the player’s choices into account.
2) How much does SweepWeave cost?
SweepWeave is free to use and open source. The storyworld editor can be downloaded and used offline, while storyworlds themselves can be exported as standalone HTML pages. The editor itself is also implemented using the Godot game engine, which is itself open source.
These factors help to minimize the risk that authors will lose their work. In the past, multiple interactive fiction development systems have required the creators of each system to maintain central servers and / or a proprietary codebase in order for games made with those systems to be playable. The problem, of course, is that if and when the developers shut down those servers, or cease maintaining their code, a lot of work can be lost, as games made with those systems can no longer be played. As an interactive fiction author myself, I have tried to avoid building games using such tools, even when the tools seem to otherwise include many of the features that I’m looking for, as I worry that my work could be lost.
I wanted to design SweepWeave so that this risk is avoided. There’s no need for me to keep a website up and running for authors to create or release storyworlds, as the editor works offline and authors can publish their games anywhere they can place an HTML page, such as itch.io, newgrounds, or an author’s own website.
3) How does SweepWeave compare with other game engines?
Games made with SweepWeave employ a “choice-based,” or hypertext, interface. At each step of the story, players can be presented with a list of options to choose from. While HTML can be used to format text or include images in a storyworld, the interface is primarily text-based rather than graphical. SweepWeave is similar to Twine, Ink, and ChoiceScript, in these respects.
The SweepWeave editor itself uses an “inverse parser,” an interface designed to guarantee, so far as is possible, that storyworlds will always be playable, and that they won’t crash outright. The editor only lets authors set up storyworlds in ways that SweepWeave will understand. While authoring a storyworld involves creating scripts to determine how characters will make decisions and respond to the player’s choices, the use of an inverse parser means that you won’t have to worry about syntax errors, the way you would in a more traditional programming or scripting language. In this respect, SweepWeave draws from game engines like Storytron and SpeareShake.
There are pros and cons to these types of interfaces, but I think that, overall, SweepWeave’s interface is decently user-friendly.
I’ve spent the past two and a half years working on this project, but have only shared SweepWeave with other members of a small community of researchers, plus a few close friends and family members. Now it’s time to share it with the wider interactive fiction community.
You can download SweepWeave version 0.1.0 from here. I hope that you’ll give it a try, make some wonderful games, and let me know what you think. I still consider this to be a beta version of the system, but I intend to keep improving the tool and fixing any bugs that authors alert me to.
I’ll be giving a talk, this June, at the NarraScope conference on interactive storytelling, where I’ll discuss SweepWeave and some of the things that I’ve learned from developing storyworlds with it. If you’ll be at NarraScope in person, I look forward to meeting you! If not, feel free to tune in to the livestream, or to watch the talk on YouTube after the conference concludes.
If you want to help support me financially, I have a Patreon page here. I’d like to thank my current patrons, Chris Conley, Jóhannes Ævarsson, Felipe Vega, Pixel Brownie Software, and Craig Maloney, for their help and encouragement. Finally, I owe an immense debt of gratitude to Chris Crawford, whose work and writings have been a wellspring of inspiration for me, and who has offered me aid, advice, and encouragement for many years.
May your pen dance in sync with your dreams.
~ Sasha Fenn