Hey,
I started a project in Unity a few months ago, for which I've been doing most of my narrative design (and general design-side data stuff) in articy. I have a lot of non-dialogue work already done in articy; I have very little dialogue work already done in articy.
I was using my own little dialogue handler for articy data, but I downloaded Dialogue System a few days ago, and after wiring everything up I'm absolutely loving it so far. I'm curious, though—and I know this might be a very personal-view-oriented question—if Dialogue System's designers/devs feel that it works better to:
A) Build dialogue in articy and use it as-is by importing via Dialogue System's articy importer, or
B) Import entities, quests, items, etc., from articy, but use Dialogue System's dialogue editor to actually build out the dialogue, or
C) Build dialogue in articy and then edit it further in the DS editor to build out logic.
I'd also appreciate people weighing on what they feel the ideal use-cases for each approach are!
To expand a bit, I'm planning on having in-dialogue-flow logic that is outside the realm of just reading/writing global gamestate variables, but still mostly very normal WRPG/CRPG stuff—calling some methods, rolling some dice, wiggling a camera around, switching dialogue branch validity on the fly. My gut feeling from poking through DS over the past couple days is that this sort of thing is generally much less of a headache to deal with in DS's editor than it is in articy's dialogue editor, esp. since it involves interfacing with my codebase.
However, I might be underestimating articy—I remember seeing a devblog from ZA/UM indicating that they did dialogue design in articy, which makes me think it might be better at code integration than I'm giving it credit for. I also would, of course, prefer to use as few discrete tools as possible to reduce headaches.
I know that this is a very broad question with lots of nuances, but I'd love to hear if anyone had any pertinent experience or guidance on this—I'm in the rare position of having everything in place for any approach, but no sunk cost in any particular one, so I want to try to start down the right path.
Thank you!
Is there a preferred workflow for editing dialogue w/ a database from articy?
Re: Is there a preferred workflow for editing dialogue w/ a database from articy?
Hi,
Thanks for using the Dialogue System!
I recommend (A), or possibly (B), but definitely not (C). Edit your dialogue in one place, especially since articy is unidirectional; it can't reimport content.
ZA/UM, among others, went with (A). This way, your content is mostly all in one place. In the Dialogue System, you can use Lua expressions to control paths through dialogues, and you can use sequencer commands for user experience operations (animation, audio, camerawork. etc.). The Dialogue System's articy importer does a pretty good job of converting articy:expresso code into Lua. And you can either use dialogue fragments' Stage Directions fields or a custom Sequence field to hold sequencer commands. So you'll probably use articy:expresso to switch branch validity, and sequencer commands to play dice animations and move the camera around. You can register your own C# code with Lua. One catch with (A) is that, while you can include function calls to your custom code in articy:expresso expressions and they'll import just fine, the articy export process will report (harmless) warnings that those functions aren't a part of articy:expresso.
The Dialogue System's built-in editor introduced scene events after Disco Elysium came out. A scene event is a UnityEvent on a dialogue entry node that you can hook up to scene objects in the Unity inspector, similarly to how you can hook up a UI Button's OnClick() event. Scene events are useful and are probably the best argument for going with (B). But, on the other hand, you can do the same things with articy:expresso and sequencer commands. The built-in editor has some other handy features, such as being able to drag and drop audio files into nodes' Sequence fields, that of course you can't do in articy.
Spend a little time playing around with dialogue editing in articy and the Dialogue System's built-in editor. If you find that you prefer one over the other, it could help you decide between (A) and (B). Among Dialogue System users, the built-in editor is by far the most commonly used editor. But, personally, if I were already using articy for a particular project, then I'd probably stick with articy for all content in that project just to keep it all in one place and keep my mindset in a single editor UI.
Getting even further into the realm of personal viewpoints: If you don't need Nevigo's Unity integration, remove it. With large articy projects, it gets very slow (editor time, not runtime) whenever you make a change to the articy project.
Thanks for using the Dialogue System!
I recommend (A), or possibly (B), but definitely not (C). Edit your dialogue in one place, especially since articy is unidirectional; it can't reimport content.
ZA/UM, among others, went with (A). This way, your content is mostly all in one place. In the Dialogue System, you can use Lua expressions to control paths through dialogues, and you can use sequencer commands for user experience operations (animation, audio, camerawork. etc.). The Dialogue System's articy importer does a pretty good job of converting articy:expresso code into Lua. And you can either use dialogue fragments' Stage Directions fields or a custom Sequence field to hold sequencer commands. So you'll probably use articy:expresso to switch branch validity, and sequencer commands to play dice animations and move the camera around. You can register your own C# code with Lua. One catch with (A) is that, while you can include function calls to your custom code in articy:expresso expressions and they'll import just fine, the articy export process will report (harmless) warnings that those functions aren't a part of articy:expresso.
The Dialogue System's built-in editor introduced scene events after Disco Elysium came out. A scene event is a UnityEvent on a dialogue entry node that you can hook up to scene objects in the Unity inspector, similarly to how you can hook up a UI Button's OnClick() event. Scene events are useful and are probably the best argument for going with (B). But, on the other hand, you can do the same things with articy:expresso and sequencer commands. The built-in editor has some other handy features, such as being able to drag and drop audio files into nodes' Sequence fields, that of course you can't do in articy.
Spend a little time playing around with dialogue editing in articy and the Dialogue System's built-in editor. If you find that you prefer one over the other, it could help you decide between (A) and (B). Among Dialogue System users, the built-in editor is by far the most commonly used editor. But, personally, if I were already using articy for a particular project, then I'd probably stick with articy for all content in that project just to keep it all in one place and keep my mindset in a single editor UI.
Getting even further into the realm of personal viewpoints: If you don't need Nevigo's Unity integration, remove it. With large articy projects, it gets very slow (editor time, not runtime) whenever you make a change to the articy project.
Re: Is there a preferred workflow for editing dialogue w/ a database from articy?
Thank you! That's enormously helpful, I really appreciate it.