Almost every adventure and every RPG has some kind of dialog system. The best known example of this is Indiana Jones and the Fate of Atlantis.
The dialog at the end where they are at the heart of Atlantis must have been a nightmare to make. There are so many paths indiana could follow through,with only one path leading to a survival. Thinking about how to make such a system, I thought i’d had a look what’s available on the web. Not much at first, so I almost thought about making my own crummy system. But eventually I found and chose something, although it’s a Windows application.
It’s always good to think about what’s available to you in the framework. Twine gives us json and every can be tied together with javascript.
I looked at Twine a free online creator of those dialog trees (http://twinery.org). It has Windows, OSX and Linux. So that’s very nice and it’s free.
Javascript support is there on ios, but the API is not nice because it assumes you are making iOS UI kind of stuff. I think this is a bummer.
On Ray Wenderlich I found some RPG samples that used Lua, that gave me some head start how to make such a dialog system. But because I am a one man coding army, I thought I needed a graphical way of creating those dialogs and testing those apartly from the game (testing takes about 60% of your alotted dev time!). Writing dialog is also a creative process and If you don’t have a tool to write the dialogs it will become cumbersome to do.
Eventually I found Chatmapper , a commercial dialog editor (http://www.chatmapper.com). I was surprised it used Lua for scripting. This all seemed to fit nicely with the samples I saw on Wenderlich. So I gave it a go. It has very good support for various format, json, xml etc.. What is nice is that it also imports a project from xml, so If any transformation needed to be done on anything on the project file, it could be imported and will work just fine. It is very stable and mature and oh it’s used on the most recent  Leasure Suit Larry game. So it will be capable of more than my needs.