Searching for a Tool to develop & export IF Dialog Branches

Hi everyone,

My wife loves writing fiction and I’m a Web Developer (regular Frontend + React, React Native). I can build iOS/Android/PWA Applications but managing the immense complexity of IF is waaaaay beyond my scope. That is why I’m currently searching for a tool to develop and manage interactive fiction to help my wife write/export her own stories in a convenient way while I build/design the wrapper to share them on iOS, Android and Web.

I can write all the necessary code to interpret the data, as long as all the information (paths, links, conditions) are somehow represented in the exported file.

I’ve had a look at some tools (chatmapper, inform7, twine) and tried to search this board for more information. We are currently not planning to get rich doing this but It’s not completely out of scope to maybe, later on, make premium stories (using patreon). That’s why expensive commercial tools like chatmapper are currently not a good fit and I don’t want her to relearn everything if we decide to start any sort of commercial use.

Twine is looking like a really easy to use and comfortable tool to develop the story and all branches/conditions but it seems to only offer the 3rd party and web exports.

What I’m looking for is a way to

  1. develop dialog branches including features like variable dependent conditional paths (twine checks out)
  • example: ($player_sympathy < 3 => NPC answers harsh /else/ NPC replies in a nice way)
  1. use an export feature (json, xml or something like that) for me to import it into my apps (can twine do that?)
  2. (optional) use a simple preview/web view to testplay the different paths without the export/import cycle to the final app for easier development (twine checks out)

A tool that exports a web version isn’t an option as I need to implement lots of logic between scenes and create all the scenes in native code for iOS/Android while using a Web Wrapper like Ionic/Phonegap just doesn’t cut it for me.

Best Regards,
Konrad

You could try ink.

It is a very powerful language for banching narratives and exports to a JSON file. The official implementation is in C# to be used with Unity. A JavaScript implementation exists, so it can also be previewed in a web page. If you use React Native, I guess it is possible to use the JavaScript library along with a native interface, too. Finally, You could write your own implementation in another language (say, Swift or Kotlin) or search if someone did that already (I think that’s the case for Kotlin).

If you like Twine, I know there exists a story format that creates a JSON file instead of an HTML one, but I never tried it and it has not been updated recently.

Ren’py? renpy.org/

It exports to Windows/Mac/Linux/Android/iOS…

It has a novel mode as well as the standard mode: renpy.org/wiki/renpy/doc/tutorials/NVL-Mode

You can use python/pygame in it for implementing your own special bits in a game as well.

I just had a quick look at Renpy and ink and I really like the text based / markdown like nature of writing stories like that but I think the visual interface of Twine will be easier for her to use and I - too - would prefer the visual aid (that the interface of twine seems to add) for writing complex stories with many branches and critical paths.

I just added Twison as a format on my macbook’s version of Twine and I’m gonna play around with that for a bit, see how much complexity I can introduce before the json gets unwieldy…

Thanks a lot for those tips but in case you can think of anything else, I’m still open for other suggestions.

Speaking of visual aid: it is possible to view the tree of an ink story with Graphink. You cannot write a story with it, just view it, but I thought it might be relevant.

Graphink looks awesome for QA / Debugging purposes… very clean interface. I’ll bookmark both ink and graphink for a second evaluation. Thanks for the additional info.