90% Dialogue Based Game
LucidDayDream
12 May 2014, 06:05Hello
I am very new to this software and have never designed a game before.
However, I find this quite fun to play with.
ButI want to make a game that is MOSTLY dialogue. Basically approaching characters and talking to them. THe person will be able to chat with people and choose what they want to say, in a sort of old school LucasArts game sort of way.
Ideally I'd also like some randomness to occur (such as random characters in the rooms), however, I am unsure if that is possible with this software.
Is there any way I can learn how to do this dialogue stuff?
Thanks a ton.
I am very new to this software and have never designed a game before.
However, I find this quite fun to play with.
ButI want to make a game that is MOSTLY dialogue. Basically approaching characters and talking to them. THe person will be able to chat with people and choose what they want to say, in a sort of old school LucasArts game sort of way.
Ideally I'd also like some randomness to occur (such as random characters in the rooms), however, I am unsure if that is possible with this software.
Is there any way I can learn how to do this dialogue stuff?
Thanks a ton.
HegemonKhan
13 May 2014, 00:19quest can certainly do dialogue, though you got to craft your dialogue system yourself, but here's some help for the basic coding of it:
npc = non-playable character (monster, townspeople, a hint guide ~ 'wise owl', etc)
(see, click on, the relevant links~threads within these links below)
1. http://quest5.net/wiki/How_to
2. viewforum.php?f=18
learning lists and dictionaries is a bit difficult if you're new to coding, but this is how you do dialogue coding. There's many ways of doing dialogue coding designs, from simple (like multiple 'show menu' functions) to complex.
as for randomness:
GetRandomInt (min,max)
GetRandomInt (1,3)
output: (it randomly selects 1,2, or 3)
so, for the coding:
<object name="global_data_object">
-> <inherit name="editor_object" />
-> <attr name="my_string_list" type="simplestringlist">red;blue;yellow</attr>
</object>
global_data_object.my_string_list = split ("red;blue;yellow")
ordering of lists' items:
0: red
1: blue
2: yellow
ListCount (Object.StringList): the quantity~amount of items in the list: 3 (red-1, blue-2, and yellow-3)
StringListItem (Object.StringList, order_number_of_item): returns the string (name) of the item, selected via it's list ordering.
result_x = StringListItem (global_data_object.my_string_list, GetRandomInt (0, ListCount (global_data_object.my_string_list) - 1))
if (result_x = "red") {
-> msg ("apple")
} else if (result_x = "blue") {
-> msg ("blueberry")
} else if (result_x = "yellow") {
-> msg ("banana")
}
--------
and it's similar for npcs moving to random rooms:
global_data_object.my_object_list = ~Scope_or_Get_AllRooms ()
result_x = ObjectListItem (global_data_object.my_object_list, GetRandomInt (0, ListCount (global_data_object.my_object_list) - 1))
npc.parent = result_x
npc = non-playable character (monster, townspeople, a hint guide ~ 'wise owl', etc)
(see, click on, the relevant links~threads within these links below)
1. http://quest5.net/wiki/How_to
2. viewforum.php?f=18
learning lists and dictionaries is a bit difficult if you're new to coding, but this is how you do dialogue coding. There's many ways of doing dialogue coding designs, from simple (like multiple 'show menu' functions) to complex.
as for randomness:
GetRandomInt (min,max)
GetRandomInt (1,3)
output: (it randomly selects 1,2, or 3)
so, for the coding:
<object name="global_data_object">
-> <inherit name="editor_object" />
-> <attr name="my_string_list" type="simplestringlist">red;blue;yellow</attr>
</object>
global_data_object.my_string_list = split ("red;blue;yellow")
ordering of lists' items:
0: red
1: blue
2: yellow
ListCount (Object.StringList): the quantity~amount of items in the list: 3 (red-1, blue-2, and yellow-3)
StringListItem (Object.StringList, order_number_of_item): returns the string (name) of the item, selected via it's list ordering.
result_x = StringListItem (global_data_object.my_string_list, GetRandomInt (0, ListCount (global_data_object.my_string_list) - 1))
if (result_x = "red") {
-> msg ("apple")
} else if (result_x = "blue") {
-> msg ("blueberry")
} else if (result_x = "yellow") {
-> msg ("banana")
}
--------
and it's similar for npcs moving to random rooms:
global_data_object.my_object_list = ~Scope_or_Get_AllRooms ()
result_x = ObjectListItem (global_data_object.my_object_list, GetRandomInt (0, ListCount (global_data_object.my_object_list) - 1))
npc.parent = result_x

jaynabonne
13 May 2014, 06:10Quest supports dialogue "out of the box" - assuming you're satisfied with the Ask/Tell method it uses! 
To try out basic dialogue, do this:
1) Click on the "game" object and select the "Features" tab. Then check "Ask/Tell: players can ask or tell characters about selected topics."
2) Create an object for your NPC. On the Setup tab for that object, you can set the Type to Male, Female, etc.
3) On the NPC's "Ask/Tell" tab, you can add responses for various topic keywords. For example, if you add an entry with topics "apple banana fruit", and set the script to Print Message "Oh, I hate fruit!", then you can have the following:
You can also use the full power of Text Processing to vary the text. (See http://quest5.net/wiki/Text_processor). If you were to set the text printed to:
then you might have a session like:
Now this is very basic conversation. If it suffices, then you're set. If not (for example, if you prefer a menu-based approach), then you'll have to roll it yourself using Quest scripting. Or use ConvLib: viewtopic.php?f=18&t=4261

To try out basic dialogue, do this:
1) Click on the "game" object and select the "Features" tab. Then check "Ask/Tell: players can ask or tell characters about selected topics."
2) Create an object for your NPC. On the Setup tab for that object, you can set the Type to Male, Female, etc.
3) On the NPC's "Ask/Tell" tab, you can add responses for various topic keywords. For example, if you add an entry with topics "apple banana fruit", and set the script to Print Message "Oh, I hate fruit!", then you can have the following:
> ask tommy about fruit
Oh, I hate fruit!
> ask tommy about apples
Oh, I hate fruit!
> ask tommy about apple
Oh, I hate fruit!
> ask tommy about ap
He does not reply.
You can also use the full power of Text Processing to vary the text. (See http://quest5.net/wiki/Text_processor). If you were to set the text printed to:
{random:Oh, I hate fruit!:Not now, thanks. I'm full.:I think there's a real crisis in Bolivia.}
then you might have a session like:
> ask tommy about fruit
Not now, thanks. I'm full.
> ask tommy about fruit
Oh, I hate fruit!
> ask tommy about fruit
Oh, I hate fruit!
> ask tommy about fruit
Not now, thanks. I'm full.
> ask tommy about fruit
I think there's a real crisis in Bolivia.
Now this is very basic conversation. If it suffices, then you're set. If not (for example, if you prefer a menu-based approach), then you'll have to roll it yourself using Quest scripting. Or use ConvLib: viewtopic.php?f=18&t=4261