Hey folks, I have an update! I’ve been busy the past couple of weeks adding new features, squashing bugs, and making the editor a lot more intuitive to use. New features include:
Audio! You can now upload soundtracks and set them as backgrounds in your stories. Each scene can have its own track or continue playing the previous one.
Some folks here asked for the ability to set per-scene themes, and also the ability to re-use themes across multiple stories - both features are now in! I completely revamped the theme data model and UI to support this, and also fixed a bunch of theming bugs I found along the way.
I completely overhauled the editor. I go into more detail on my dev update blog post, but basically the cluster of buttons in the top-right was chaotic, unintuitive to use, and I was running out of room for new functionality, so everything has moved into a consistent sidebar now. You can also pin the “story tree” visualizer so that it’s open in full-screen mode at the same time as the text editor and any one of the sidebar panels.
The discovered status of an NPC or Faction (whether a reader has discovered It or not) can now be used as a choice condition, or for conditional text in scenes and choices.
I added a tutorial for new writers that goes over a few key features of the editor. This’ll pop up (and can be skipped) when you use the editor for the first time.
You can check out the full blog post for more details on the other new features!
Finally, I also launched a Discord server if anyone would like to chat.
Good point - and someone on the Discord suggested we run a game jam to get some folks writing some shorter stories and get familiar with the editor and also help stress-test the platform, so I’ll probably be doing that in the next month or two!
In the mean time I’ll be focused on bug fixes and smaller feature requests here and there I think.
I’ll probably go back to writing my own story over the holidays - we’ll see how far I get!
I’m not planning to go into a complete feature freeze; writing code and adding features is fun for me, and this is a hobby project. Why stop when I’m having fun?
Also, most of what I’ve implemented in the past few weeks has been either in response to my own needs as a writer or another writer asking me for functionality. For instance, yesterday someone requested I add image resizing - this isn’t that difficult to add and makes their writing experience easier, so I did that.
However, I’ll probably put off any large features (anything that takes a week or more to implement) until after the game jam.
I certainly have no intention of stopping development until I personally finish my own story - a project that would likely take me well over a year. Plus, I’m pretty sure I’m a better coder than I am a writer, so I’d rather focus on giving other people the tools they need to write stories and write my own whenever inspiration hits. For whatever reason, I’m inspired to work on Storyfall’s code much more frequently than I am on my next story.
Dan isn’t talking about other people writing a game on your platform. He’s talking about you writing a game on your platform. Running a game jam won’t magically get people to use your editor. You have to have sufficient marketing first, and that often looks like a game. Looks like you’re planning on doing that soon yourself. However, the features you’re focusing on aren’t super crucial and I bet only a few people would actually use them (e.g. audio). People already have tools they’re comfortable with, and most don’t want to switch to a new platform that doesn’t give them autonomy over their work, so yours has to do something to stand out.
Anyways, this is a passion project for you and if you enjoy it, feel free to ignore all of our feedback. But if you want this to take off, you need to consider the things mentioned throughout the thread.
I definitely appreciate the feedback, and I get your point about marketing. If I had the money for it, I’d pay a writer to write a great story - unfortunately I don’t have a marketing budget. My own story will take me a while to write. I plug away at it for an hour here or there in the evenings but often hit writer’s block. I go through periods - sometimes I don’t feel inspired to write for a week or two, other times I sit down and focus on it for a few hours.
Stopping Storyfall’s development isn’t likely to help me write my story much faster. I can’t just reallocate a few hours of coding to writing my story - that’s not how my brain works. And I don’t think I write well when I’m not “feeling” it. I know there are writers out there who are the opposite and can sit down and write on a schedule, and no doubt they’re more successful as writers than I will ever be.
On the other hand, when a writer reaches out and asks for some feature or highlights a bug for me to fix, I get all excited because someone is actually using Storyfall, and that gives me quite a lot of motivation to keep working on the code. I’ve built stuff before that nobody ever uses, and there’s nothing sadder than that for a software engineer.
My hope is that over the next month or so I can get a handful of folks interested in trying out Storyfall and run a game jam, and maybe that’ll get someone excited enough to write a longer story too. We’ll see! In the mean time, I think my willingness and ability to implement features people want is a pretty good differentiator already.
I’ve been in the software development space professionally for over a decade - I see how slow some companies move. The bigger they are, the slower they iterate. At some point they stop iterating entirely and move to just maintenance mode. They either ignore feedback from users or take a top-down approach (“we know what’s best for users, we’ll tell them what they want”). I’m trying to be the opposite of that.
Hey i thought you removed the need to sign in to see stories @Storyfall
Forcing ppl to sign in to see content is really going to kill visibility . Virtually no interactive story platform does that and the ones who do never seem to take off.
I have an account but it’s annoying to have to log in anywhere to see content anytime a site does that 99.9% of the time I just get frustrated and leave . You gotta show ppl you got something worth signing up for before gatekeeping content behind a sign in.
I can relate to this. I’ve been working on a full parser system for close to six years now, and I know I will eventually need to release an attention grabbing game with it, but as it turns out I think I like building tools more than games.
I hear you - removing that requirement is on my list, but I haven’t gotten around to it yet. I’ve been more focused on making the signed-in writer experience better and fixing bugs. Removing the sign-in requirement to play games is going to be a non-trivial change, there’s a lot of assumptions baked in around character state tracking that will need to be overhauled. I’ll let you know when that requirement is removed!
First off, awesome job so far with Storyfall. The UI looks so slick and I even love the name. I really wish you the best of luck because I think competition among tools will always breed innovation. Push those “dinosaur platforms” to evolve, eh?
I do think the registration requirement is a detriment to exposure. You should have an unregistered user condition for your site and store everything in local storage. If a user decides that Storyfall is for them, allow that unregistered local storage to become a registered user account (meaning the authored stories and reader progress are imported automatically). At the very least, stories should be able to be exported to file and imported to a new registered account.
I have not used Storyfall (if I did, I’d be a hypocrite about the required registration thing, wouldn’t I? ), but one of my biggest concerns about codeless authoring systems is when the logic is simple, the UI is usually more cumbersome than simply typing pseudo-code. I felt this when I used Moiki and appreciate ChoiceScript more (though it’s far from perfect). I want authoring efficiency. Is there a pseudo code to Storyfall that users can just type out without any GUI interference? (Syntax highlighting would be required.)
Anyway, keep at it. You’ve got something very worthwhile here and I see you’re getting a bit of traction now and noticed a couple more stories being worked on. I’m excited for you!
Last bit of unsolicited advice: I think you should build a Storyfall stub page on itch.io and create a game jam for it. (Do a 2 week “slow-jam” so people can learn the new tool while they create their magnum opuses.)
I agree about the registration requirement, and that’s been mentioned by several folks here so I’ve started work on this today. My plan is similar to what you described - I’m going to essentially have a “guest” mode where readers can play stories and writers can play around with the editor, though publishing will be disabled without registration (to help reduce spam/bots).
Then, whenever they’re ready, if they register everything will transfer over to the new account - saved games from stories they were playing, any stories they started writing, etc. I figured out a way to make this change less extensive than I first anticipated so I’m hoping to get this done in the next few days. I’ll update the thread here when I’m done!
There is no pseudocode right now, but when you export a story it essentially gives you everything in a JSON file and you could theoretically edit that and re-import your story. My hope is to make the GUI good enough that nobody actually wants to do that, so if there’s ever a case where you feel like you need to write code just let me know, it probably means the editor isn’t good enough in some respect or another.
Oh - I should mention, the way conditional text works in stories is kind of code-like. You type stuff like {goldCount > 20: “You have a lot of gold.”} and it creates a badge for you, but even that is essentially assisted with the GUI (hard to describe, I suggest you test it out to see what I mean in a few days when you can do it without registration).
Thanks for the tip about itch.io! I went ahead and registered - I need to plan out the game jam a little more before I get that started though.
Had a bit of a late night working on this lol, but guest mode is now live!
You can now play stories or write them in the editor without needing to register. Hopefully this lowers the barrier to entry for folks to try out the editor. As a guest user you can still export your story file for backup. If you register, everything in your guest account will be transferred over to a real account.
The caveat here is that guest mode works by saving some data in your browser so if you clear all your cookies you’ll lose access to anything you were doing.
I did a fair amount of testing and fixed all the bugs I could find, but I bet there’s some I missed so please let me know if you find anything broken.
Great job on this. I’ll have to get back to working on my half-baked game idea.
Also, i had a look at the json export. The text appears to be duplicated, as both a plain text version and a HTML version. If i were to edit this manually, would i need to change both of these, or is one automatically derived from the other?
Good question… I’m actually not sure what would happen, I’ve not tried manually editing and re-importing the files since I migrated over to TipTap a couple of months ago. In general the contentJson field is the source of truth, that’s what the TipTap editor reads and saves, and then when it saves a scene or choice it also generates the HTML and plain text versions.
I think what would happen if you only edited the contentJson field and then re-imported is your other fields would remain out of sync (and therefore render stale data to a reader, who would see the contentHtml field), until you went in and made another edit to that specific scene in the editor, at which point TipTap would re-generate the contentHtml.
All that to say, I think to be on safe side I would go ahead and edit all three variations.
I wonder if there’s a better way for me to support this kind of use-case without needing writers to fix all three fields. Perhaps during import I could re-generate the HTML and plain text versions. Although perhaps I should also offer some kind of story-wide spell-check utility so you don’t have to do this to begin with.
I was thinking of something like a global spell-check that checks all scenes in a story, which is what it sounds like jkj wanted to do by exporting and re-importing his story, rather than doing it one scene at a time. I found some libraries that do this so I suspect this will be fairly simple to support.
I generally prefer to use my own spellchecker if possible, since I can teach it how I prefer to spell things. I learned to spell words the American way but conjugate verbs the British way, so it takes a while to convince a spellchecker that yes, I do know what I’m doing and don’t want it changed.
We also had a frustrating experience with Loose Ends when Anaïs’s spellchecker decided to automatically correct errors and turned words like “frisson” (a real and standard English word) into “fission” (an unrelated word with a completely different meaning) and so on. If the spellchecking is entirely under my control, I can tell it not to do that!
While a global spellcheck might be nice, for a dyslexic like me, I just want spellchecking as I type. It’s easy to miss switched words and the like in a global check, and as @Draconis says, I;ve generally taught my spellchecker about the unique words I’m using.