Ancient Rift Chronicles: Dialogue work

Ancient Rift Chronicles: Dialogue work

Initial work on dialogue and quests for the game is underway. This is an important part of any game to get right early on so I've done a bit of research.

I have been looking into dialogue writing systems as well as plugins and there is not a lot of recent development in this regard. Especially not for Unreal Engine. Unity has a bit more support here. And, even more tragic, from an epic megagrant recipient called Ink which only made a unity plugin.

  1. Chatmapper:
  • Price: Expensive ($110/year indie)
  • License: Proprietary
  • Plugin: Unity
  • UE support? No
  • Scripting: Lua
  • Last updated: Hasn't seen an update since 2015 according to the Help -> About
  • Standard? Is an industry standard
  • Dialogue? Non-linear
  • Exports? CMP, XML, printed screenplay formats
  • Simulator: Yes
  • Localization? Via excel
  • Solves tedious data entry of target character issue? Solves this issue by automatically flipping between the speaker (e.g. npc) and player as nodes are appended unless told a different character otherwise.
  • Notes: Has amazing support for Unity via Dialogue System where entire XML conversations can be loaded and applied to characters within mere minutes and becomes playable.
  • Caveats: Since no one supports loading their XML format, you can easily feel trapped in this tool. You know that you're not because you're always one parser away from solving the problem. But, really you are because you are too busy working on your game to do that.

2. Yarn Spinner

  • Price: Free
  • License: MIT
  • Plugin: Unity
  • UE support? No
  • Scripting: Custom
  • Last Updated: A year ago
  • Standard? Not sure.
  • Exports: JSON
  • Simulator: Doesn't seem to have a very good simulator. It is very rudimentary and favors auto-timed responses only. Was also visually confusing. It felt alien and disconcerting to work with.
  • Localization? CSV
  • Solves tedious data entry of target character issue? Doesn't solve the target character issue and instead complicates each node by encouraging you to type entire chunks of dialogue in all one node more like a screenplay mixing in different speakers.
  • Notes: Requires extensive use of Line hashtags (especially when localizing), as a result it is extra tedious. The language it uses is far more complex to type than twine's.
  • Caveats: Does not auto-save. And, the save process is tedious as you have to click Save As, find the file to overwrite, and click Yes to confirm each time. There is no CTRL + S save to previous saved file concept. The nodes do not always connect themselves automatically, it might be a refreshing issue. Also, when loading saved files they sometimes don't populate the connected links unless you open and then close a dialogue node.

3. Twine

  • Price: Free
  • License: GPL3
  • Plugin: Unity
  • UE support? No
  • Scripting: Custom
  • Last Updated: 2021
  • Standard? Not sure.
  • Exports: JSON (if you force it, via external format.js)
  • Simulator: The best simulator I've tried, it was smooth and made sense.
  • Localization: No, and it would be very hard to do with all the content mixed in with the custom scripting.
  • Solves tedious data entry of target character issue? Yes, creation of the nodes between speakers was very concise and clear. Choices and replies are delineated separately from the originating NPC to the player.
  • Notes: This editor was the most enjoyable to author stories in that I could find. The nodes connect themselves automatically, the files auto-save, the editor is visually pleasing, the simulator is fantastic, the scripting is reasonably simple, easy on the eyes and gets out of your way. I found I was able to quickly author some relatively complex non-linear dialogue in it very quickly.
  • Caveats: No localization is a clear ding on an otherwise impeccable presentation.

4. Ink

  • Price: Free
  • License: MIT
  • Plugin: Unity
  • UE support? No
  • Scripting: Custom
  • Last Updated: 2021
  • Standard: No
  • Exports: JSON
  • Simulator: Yes
  • Localization: No
  • Solves tedious data entry of target character issue? They seem to have a concept of speak when spoken to between the target and the source. Which is similar to how twine handles it.
  • Notes: A megagrant receiver who failed to deliver on an Unreal plugin but hit a home run for Unity instead. The simulator was clean and simple, however when generated as a webpage it forces you to re-read the entire script with a slow scroll from the top on each response. It does have a sophisticated scripting and branching system for addressing things like emotional response and charisma stats. But, it also may be putting too much pressure on the dialogue writer to do all that heavy lifting.
  • Caveats: Overly complicated script compared to the other offerings. What with knots, branches, diverts, local diverts, varying, fallbacks, stickys, conditionals, alternatives, queries, weaves, gathers, chains, glues, joining, loops, stitches, nested flows and scopes will all have your head spinning and distract from writing the story. It doesn't seem to address localization and how could it since they overcomplicated the content of each node. It seems to want to be an adventure game designer, not just a dialogue writing tool.

5. ATS (Ascent Toolset) / Ascent Dialogue System

  • Price: ATS $179.99 or ADS $69.99
  • License: Proprietary, but code shared when purchased
  • Plugin: Unreal
  • UE support? Yes
  • Scripting: Blueprints
  • Last Updated: Current
  • Standard? No
  • Exports: None
  • Simulator: Yes, Unreal
  • Localization: Yes
  • Solves tedious data entry of target character issue? No. You have to enter a lot of content two or three times per node, e.g. source participant, target participant, character anim, activation parameters, etc. I can't imagine writing my entire dialogue that way.
  • Notes: I ended up getting ATS dialogues working in my ACF project, well sort of. The quest isn't working but I have the conversations working. This is on me because I didn't get around to implementing quests after having struggled with implementing dialogue. I almost feel like ATS would be better off storing all the dialogue content as pure datatables and deempasizing the graph-based control of dialogues. With external tools being relied on for dialogue management and their files (xml in cmp's case, json for yarn / twine) used to manage importing the dialogue so that upgrading, moving or localizing dialogue is more manageable by game studios.
  • Caveats: Issues I have with the process; 1. Not well documented, 2. Tedious to set up, 3. All the dialogue content is tightly coupled with UE, 4. Doesn't solve the tedious data entry of target character issue and actually exponentially amplifies it. You can argue it is pricey however it is a one time fee, source included, is made to be integrated with ACF and comes with a finite state machine and quest system. I'm a huge fan of ACF so it wounds me to criticise ATS/ADS. I was pretty impressed with the concept but documentation was lacking and the data entry is unfortunately tedious.

6. Articy: Draft

  • Price: $99.99
  • License: Proprietary
  • Plugin: Unity, Unreal (via free plugin on marketplace)
  • UE support? Yes
  • Scripting: Yes
  • Last Updated: 2021
  • Standard? Yes
  • Exports: Word, JSON, XML
  • Simulator: Yes
  • Localization: Yes, Excel.
  • Solves tedious data entry of target character issue? ??
  • Notes: Seems like a fairly new and robust tool, but has some drawbacks. The scripting does seem simple and concise, however. And, the graphics of the tool and design of the graphing system are visually pleasing. It is a positive that there is UE support as well via a plugin, few other tools provide that.
  • Caveats: Emphasizes a lot of tedious visual GUI interaction which can be jarring while writing dialogue; e.g. click and drag to add nodes, selecting who the speaker is, being overly concerned with locations/templates/art content/etc, choosing the avatar images (though it does populate the click/drag for this automatically after the first time), having to decide on node types visually, the author is in charge of connecting the nodes together properly via connectors, etc.