Best import format for easy editing?

Announcements, support questions, and discussion for the Dialogue System.
User avatar
Tony Li
Posts: 21986
Joined: Thu Jul 18, 2013 1:27 pm

Re: Best import format for easy editing?

Post by Tony Li »

What is +- used for? It's been a while since I looked at the JLC format. Mografi, the developers of Jenny LeClue - Detectivu, designed the format and contributed the importer. I've intended for some time now to roll it into an official import format and provide a more full-featured import window. I'll bump up the priority to get it done soon.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

That was the tag used for scripts, which is something I just started working with to connect dialogue events and lua commands with things happening in the game (and it works great) :)

I will try the current import/export, and let you know how it works. Don't worry about prioritizing it, it's probably not impossible for us to adjust it ourselves. :)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

I read a PDF with some documentation of the JLC import/export, but I can't find it now, it's not in the Zip.. hmm?

However, i just tried it, also with the Google Docs formatting plugin, and it works GREAT, this is exactly how I wanted to write. The features to import/export through a file or clipboard is perfect.

The +- symbol isn't critical, it's very easy to change in the file DialogueEscapeChars.cs, so the guys who made this did a great job.

So the only missing major feature for us is the ability to jump back in the tree.

Another small thing that I find maybe unnecessary, is that the response options needs to be repeated, like this:

Code: Select all

#16 Chippy/Good Morning

MessageBot: Good morning Chef... Time to wake up! ±Interaction("turnOffAlarm")±

	[Alarm?]
	Player: Come on, please turn off the alarm. What's going on?
	[Alarm?]

	[Who are you?]
	Player: Huh, what? Where am I? Who are you?
	[Who are you?]

MessageBot: Chef... are you ok? It's me, Chippy, your personal assistant! ±Interaction("turnOffAlarm")±
Player: Chippy?

I would prefer the following, and just detect that the indentation ends, or another response bracket start.
It would make it slightly more readable.

Code: Select all

#16 Chippy/Good Morning

MessageBot: Good morning Chef... Time to wake up! ±Interaction("turnOffAlarm")±

	[Alarm?]
	Player: Come on, please turn off the alarm. What's going on?

	[Who are you?]
	Player: Huh, what? Where am I? Who are you?

MessageBot: Chef... are you ok? It's me, Chippy, your personal assistant! ±Interaction("turnOffAlarm")±
Player: Chippy?

Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

This is what it looks like with the formatting in google drive, but it's also very easy to use in a plain text editor. :)
Skärmavbild 2021-02-14 kl. 08.04.26.png
Skärmavbild 2021-02-14 kl. 08.04.26.png (163.64 KiB) Viewed 881 times
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
User avatar
Tony Li
Posts: 21986
Joined: Thu Jul 18, 2013 1:27 pm

Re: Best import format for easy editing?

Post by Tony Li »

Hi,

The PDF file is in the zip. It's named Readme.pdf.

When I update the importer, I'll add the option to use +/- or a different character for Scripts. To maintain compatibility with existing JLC content, both will be supported. Any suggestions for the alternate character to use?

Also, to maintain compatibility, I'll keep the repeated response options ([response] text [response]). I'm sure the JLC devs had a reason for it.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

Great, you don’t need to update it, like I wrote before, there is a config file where we can set it already. It’s all good :)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
User avatar
Tony Li
Posts: 21986
Joined: Thu Jul 18, 2013 1:27 pm

Re: Best import format for easy editing?

Post by Tony Li »

Great! It's been a while since I looked at it. I thought it was defined in a script.

As you use it, let me know if any ideas come to you that would improve your workflow.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

Ok so I've worked a bit more on the import/export scripts from the JLC format, and fixed one issue with the JS, one that you could probably implement to help all.

So here are my thoughts/fixes:

1) In the formatActorNames function, I changed this line to remove tabs. This now causes each character to have its name in a consistent color throughout the script. Before it looked like my image a few posts up, due to the reason that tab-characters were included in the names, causing the actorColors array to detect them as different actors.

Here's the codefix (just add replace.. to the end)

Code: Select all

    var characterName = text.getText().replace(/\t/g, '');
2) I need to add instructions to make connections back in the tree. This is the current format I'm using, along with some custom code in the google doc for the dialog formatter to highlight it. So instead of having a separate tag to jump to, I simple tell it to jump to a specific branch. I also imaging adding -->#13 would make it jump to that conversation. I haven't made the code for it in the importer yet, so that's what I would love some suggestions for.

Is there perhaps some sequencer command or lua command I could use to make jumps to:
a) another branch within the same conversation
b) to the start of the conversation or
c) a different conversation?

That would make it easier than to modify the importer. But if that's not possible, I'm willing change the importer, but it still would help with some guides on how to locate a node by it's "Menu Text" and make a connection.
Skärmavbild 2021-02-23 kl. 19.22.57.png
Skärmavbild 2021-02-23 kl. 19.22.57.png (185.2 KiB) Viewed 872 times

3) Another thing that gets in the way is the repeated [branch] command in the end which I mentioned before. It's very easy to forget to change the one in the end when you change the branch command. At first I through the indentation was important, but I realized that it only jumps back/forth in the depthLevel depending on if the same [branch] is or isn't detected. I guess I could convert it so it detects the indentation level with tabs, kinda like Python, but the problem is that Google docs does this super annoying thing where it sets the first line indent in some cases, so there really isn't a tab in the file. Do you know if it's possible to disable this behavior, and just have tabs?
dialog.gif
dialog.gif (934.91 KiB) Viewed 872 times
My plan is to hand this over to our writer soon, and trying make it as easy as possible for him to focus on the text, and not on codes :)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
User avatar
Tony Li
Posts: 21986
Joined: Thu Jul 18, 2013 1:27 pm

Re: Best import format for easy editing?

Post by Tony Li »

Hi,

Thanks for the code fix for (1).
nicmar wrote: Tue Feb 23, 2021 1:32 pm2) I need to add instructions to make connections back in the tree....
There isn't a built-in sequencer command or Lua command, but you could write one. I think it will be better in the long run to modify the importer. To locate a node by its Menu Text field:

Code: Select all

Conversation conversation; //<-- Assumes this points to a valid conversation.
DialogueEntry growEntry = conversation.dialogueEntries.Find(entry => entry.MenuText == "Grow?");
You can also search by Title field (entry.Title). Maybe it would be better to define "anchors" (like anchors in HTML files) using the Title field.
nicmar wrote: Tue Feb 23, 2021 1:32 pm3) Another thing that gets in the way is the repeated [branch] command in the end.... Do you know if it's possible to disable this behavior, and just have tabs?
I haven't looked at the importer yet. But maybe you could use something like "[-]" to mean "close the most recent block. Example:

Code: Select all

Chippy: You need three things, a plant box, soil, and seeds!
    [Plant box?]
    Chippy: You can craft one in the workshop. -->Grow?
    [-]
    
    [Soil?]
    Chippy: Soil is the stuff plants grow in.-->Grow?
    [-]
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Re: Best import format for easy editing?

Post by nicmar »

Great ideas, I've been working on adding the link functionality to the importer, and noticed some problems.

1) I realized I don't want to jump to the [Grow?] menu text, but to the part where I select options again, so basically so I get to the step where I choose the 3 options, but without hearing the line "You need three things, a plant box, soil, and seeds!" again. Is that possible, or would I need an intermediate link without text for that to work? I think I've seen something about that in the forums.
Skärmavbild 2021-02-24 kl. 05.01.18.png
Skärmavbild 2021-02-24 kl. 05.01.18.png (185.2 KiB) Viewed 868 times
2) How would I set it up so if you get to a branch the second time, the player says another line? I remember this being used quite a lot in Monkey Island, like first time "Tell me about pirates", and the second time "Tell me about pirates again".

3) I noticed the JLC importer imports the response options in reverse order, and I found this line with the comment in the end. I used Add instead, not sure why they wanted it to insert at the start instead. So it works now.

Code: Select all

newEntry.outgoingLinks.Insert(0, link);//Add(link);
4) I've been working on adding support for links, but it's not working yet, I'd like to share the code later when it hopefully works :)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
Post Reply