Page 1 of 1

Looking for an explanation of Locations

Posted: Sun May 27, 2018 7:52 pm
by nathanj
Hi Tony

One thing I haven't figured out yet is Locations. I saw the page Dialogue Editor Locations Tab in the Dialogue Editor but still didn't really gleam any comprehension of how it works.

Is there another page that explains this, or perhaps some other link to basic game theory that I am completely missing? :lol:

Thanks in advance.

Nathan

Re: Looking for an explanation of Locations

Posted: Sun May 27, 2018 9:58 pm
by Tony Li
Locations are just optional data records. You can use them for whatever purpose you want, or ignore them. The Dialogue System doesn't do anything special with Locations -- unlike Actors, which get assigned to conversations; or Items/Quests, which can define quests for the Dialogue System's quest subsystem.

The Dialogue System started as a Unity front-end for a dialogue editing program called Chat Mapper. Chat Mapper has Locations, so this is the only reason why the Dialogue System has Locations, too.

Re: Looking for an explanation of Locations

Posted: Sun May 27, 2018 10:23 pm
by nathanj
Ok, that kind of makes sense.

I had noticed that @Racoon7 had mentioned them with Articy:Draft and I was wondering if it had something to do with 3rd party support.

One other thing mentioned in that post (and I realise now that I should have just posted in that thread) was how DS allowed you to " set link priority by changing the colour of the connections", this I assume is something else that is available through Articy:Draft and not a DS standalone feature? I don't really how this would be different from conditions but if there are ways for setting up more dynamic conversations I'm always interested in learning.

Thanks again,
Nathan

Re: Looking for an explanation of Locations

Posted: Mon May 28, 2018 6:53 am
by Racoon7
Hi nathanj,

yes, I was talking about articy:draft.

In the program, a location is a type of object you can create. It's intended as a sort of draft of a game map/level. Dialogue System imports the name and description (+ custom additional data) which can be used – for example – in an in-game world map, or to set up the level when it loads.
Locations
Image

The data about the location object get imported.

Image
The link priority actually is a DS standalone feature which is not present in articy:draft. When there are multiple NPC responses to choose from, DS picks the one with the highest priority of its link. Articy doesn't have this (it picks the topmost response), so changing the colour of connections is simply a way to notify the Articy→DS converter to give a certain connection (link) a higher priority.
Priority
Image
Inside the Dialogue Editor in Unity, you simply click on a link and select the priority you want from a popup.

As far as I know, you can't tell a link's priority just by looking at the graph itself, you have to click on the link to find out.

Image

Priorities are great alongside conditions. They make it much easier to add lines of dialogue which shouldn't be said until every other reply has been exhausted, or when you want something else to override regular conversation. You can technically replace this with conditions, but that would require many one-time variables you'd have to needlessly micromanage.

E.g. it's easier to set link's priority to Low than to use a condition like "Reply1Used && Reply2Used && Reply3Used".
Priority example
Here's a conversation template I use. When meeting a character for the first time, I want to trigger some kind of introduction (Above Normal priority). The second time you talk to the same character, the regular conversation is used.

Image
In the future, I might want to add some kind of emergency dialogue line with High priority which should always override everything else.
For example, if the character's hometown started burning, they'd certainly not use their regular dialogue line "Oh, jolly good morning, my good fellow!" but "Help! My house is on fire!".
You could also cause something to make the character hate you, which should also take precedence.

Without using priorities, the regular conversation would now probably have to use:
Variable["CharacterMet"] == true &&
Variable["CityBurning"] == false &&
Variable["CharacterHate"] == false &&
Variable["CharacterLove"] == false
as a condition.

Can you see the benefit of the priorities now? ;)

Re: Looking for an explanation of Locations

Posted: Tue May 29, 2018 6:14 am
by nathanj
@Racoon7

Thank you for the extremely detailed and thoughtful response. I was completely unaware of the link priority functionality and your explanation has completely sold it!

As soon as I clicked on the link and saw the priority panel I had to facepalm my dumb face because it is so obvious.

Nathan