Forum rules - please read before posting.

Advice for making game with a lot of non-branching dialogue

edited November 2021 in Technical Q&A

Hello,
I'm currently working on a project that is primarily just dialogue between two characters (plus some internal narration). It's linear dialogue with no player choice, but with a lot of dialogue going back and forth between characters.
I am new to Adventure Creator, but from reading up tutorials and looking it up in the manual, it seems you have to use a new "Dialogue: Play Speech" action in the visual scripting interface for every single line of dialogue, which I imagine might lead to a very unwieldy visual scripting window by the time I'm done. The visual scripting layout seems specifically made to easy branching storylines, but in my case, since the text will always come out the same way, I'm wondering if it won't end up slowing me down.
Is there any sort of advice for best practice going about this? I see AC supports Dialogue System, which in turn supports professional scriptwriting software, but my script is in fact quite simple so I don't think I need the bells and whistles of any of those. I can essentially write my entire script in a spreadsheet if need be, so would there be an easy way to perhaps import the script that way?
I am mostly worried about, say, the revision process if every time I want to tweak the dialogue I need to sift through thousands of little visual scripting pop up windows, but maybe I am overcomplicating the process.
Any advice would be greatly appreciated.

Comments

  • edited December 2021

    Welcome to the community, @rainvillain.

    The use of AC's visual scripting system is optional. The "Actions" that make up the system chiefly just handle the timing and triggering of other functions within AC itself.

    In the case of the "Dialogue: Play speech" Action, for example: dialogue is actually triggered by calling the Dialog component's StartDialog function. It's possible to trigger speech without the use of the Action this way:

    AC.KickStarter.dialog.StartDialog (mySpeakingCharacter, "My speech text");
    

    (For details on how to access AC components, see the front page of the Scripting Guide here)

    However, one of the main advantages of using the Actions system is that it can manage the timing of such function calls - with each Action (optionally) only running once the one before it has completed.

    It's possible to generate such Actions at runtime through script. This does away with the need to rely on any visual-scripting / node editors, but still gives you the benefit of Action's timing abilities.

    See the Manual's "Generating ActionLists through script" chapter for details on this topic. The included ScriptedActionListExample script file also provides a couple of commented examples.

    Let me know if this approach looks worth exploring!

  • Chris, correct me if I'm wrong, but if the main worry is the editing process and not so much the writing itself, I think this can be very easily achieved by gathering text and exporting the strings, and then reimporting the edited content? This would only work, of course, if they wanted to edit the strings, not delete or add more of them.

  • Also note that if you are worried that the visual scripting window might turn out to be a bit too messy to work with when you essentially only need a linear queue of actions, you can always work on an actionlist via the unity inspector. You can set up the first dialogue action, write it, copy the action via the cog icon, and "paste after" to create another dialogue entry without having to navigate the action menu again.

  • if the main worry is the editing process and not so much the writing itself, I think this can be very easily achieved by gathering text and exporting the strings, and then reimporting the edited content?

    Apologies if I misread things, @rainvillain. If so, @Rairun is correct.

    Once a text has been "gathered" by the Speech Manager, it can then be transferred to/from CSV files.

    This need not be used soley for translations - importing a CSV file can also update the text in your original speech Actions, but you can also opt to never actually use the original Action text: if you create a new language, you can check Don't use at runtime? beside the game's original language so that only "translations" are used - even if the only "translation" is just a copy of the original text, free to be overwritten through CSV.

  • Thank you both, @ChrisIceBox and @Rairun for your tips and suggestions!
    Yes, my question encompassed both of your points, so this is very helpful.
    I'm still going through the very early Adventure Creator basic tutorials so I haven't gotten to the point where I can implement your suggestions, but it sounds promising.
    Thank you very much! :)

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.