🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Dialogue from components

Started by
9 comments, last by superpig 20 years, 2 months ago
I just had this crazy idea... It''s considered impossible to construct a storyline on-the-fly. I''m not gonna refute that. Creating a successful storyline which will follow each and every decision the player makes, resulting in a huge number of possible endings, is not viable. But what about dialogue? A dialogue ''chunk'' has certain conditions. Firstly, a fixed number of people must be involved. Two, three, twenty, whatever. And each of those characters has attributes that must be met - health, mood, and so on. A conversation about a broken leg can only take place if the person with the broken leg *has* a broken leg, if you get what I mean. So, would it be possible - aside, perhaps, from the ''scripted'' storyline - to produce a pool of dialogue ''chunks'' which get used, rather than scripting the same ''leave me alone, I am busy'' response taken from most irrelevent NPCs in game... Here''s an example. You go into a shop, and a woman is working there. She''s spinning a pot. You go to talk to her, you get: "Sorry, not now. I''m busy." You wait a little, and she finished the pot. You talk again. "Ahh, ok. Done now. What was it you wanted?" The player comes out with whatever response, and the conversation is eventually ended. The player then proceeds to smash the pot with his/her sword/shield/terrier. Talking to the woman again elicits: "Tell me, do you know how to die, painfully?" "Uh.. no..." "Allow me to SHOW YOU!" [chases player out of area]. Now, each of those dialog extracts are ''generic.'' They could be used in other conditions - if you tried talking to a woodcutter sawing a log in half, for example, "Sorry, not now. I''m busy." could be a valid response. However, interruping a wizard trying to cast the world into the Seven Levels of Hell, "Sorry, not now. I''m busy" would probably not be a good response. So, what about setting up a ''pool'' of dialogue snippets to be used? It could even be set up so that when a snippet gets used it gets put to the bottom of the pool, to avoid repetition. What do people think? Superpig - saving pigs from untimely fates - sleeps in a ham-mock at www.thebinaryrefinery.cjb.net

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

Advertisement
I don''t think the this idea is anything original. Many people I know have thought about similar ones. I am sure many professional developers did too. See the problem is, this is way too much work to do. To save some work, the developers has to reduce the numbers of possible responses to one or two, to keep the game coherent too. I know you are talking about game that progresses purely depends on the player''s action. Then unless you can create AI that is even remotely close to human brain, the game is never going to have any solid characterizations of NPCs or the Protagonists.
Then, on the second thought. The point of game or movie is to let people experience something diferent from real world. Then what''s the point to create something so interactive just like the real world. Then, the impulse for a helluva detail adventure will be lost. Because, in the experience of the real world, it is kinda (very) hard for one person to create an epic adventure alone.
Struggling in converting something of mind to something of paper...
So far, this exists in the form of random sentences for one thing. say "Bye","Bye now","See you","See you later", can all be used with equal meaning. The problem is the underlying architecture : most games would simply have some sort of thing like "choose a random sentence among A,B,C,D".

One alternative would be to encode each sentence and it''s corresponding real meaning in some internal structure like:
{ACTION=salute,SITUATION=leaving}:{"Bye","Bye now","See you","See you later"}
Well, this is from the top of my head to suggest an idea I have been thinking about for ages.
The idea would be that by defining some sort of structure that allow us to choose a pronounced sentence by looking up for the what we are trying to express, we could have quite a range of interesting possibilities. For instance this would also allow to have various languages encoded; you could have various registers of language (emphatic/pompous/respectuous, polite, everyday, vulgar/slang), and so on...

Sorry if this isnt very clear, it''s more AI than Game Writing, to be honest, but I just thought it might be of interest





Sancte Isidore ora pro nobis !
-----------------------------Sancte Isidore ora pro nobis !
I think you should take many time to the dialogues, because so it seems to be a personally respons. On the other side it will take you a lot of time to write the dialogues. The idea with the random build respons is Okay, but their must be a lot of choices for the computergame. Let me show you how I mean it:

A = "Hello you"
B = "Go ahead"
C = "What do you wan of me?"
D = "Leave me alone"

random choice (A/B/C/D)

So the player can hear multiple responses. You can use a "Relation" value, so the respons is based on this value.
For Example:

A = "Hello you"
B = "Go ahead"
C = "What do you wan of me?"
D = "Leave me alone"

if (Relation = 50)
random choice (A/B)
else
if (Relation = 10)
random choice (C/D)

... and so on.

------------------------------
~the hammer is watching you~
------------------------------

[edited by - PeterFR on August 21, 2002 7:57:15 AM]
------------------------------~the hammer is watching you~------------------------------
This is sort of what I''m getting at, but rather than individual sentences, entire ''snippets'' of dialogue. When you leave of couple of NPCs in a room together, for example.

The ''relationship'' thing is also in there - but in a section of dialogue, you can say there''s a certain number of ''voices'' involved - and then define requirements for each of those voices. e.g. Voice #1 must have hunger level 50, Voice #2 must have gold of under 200. The dialogue could be something like this:

1: Ye gods, I''m hungry.
2: Shall I get something to eat?
1: You got any money?
2: Ah. No.
1: Well how you gonna pay for it, brain boy!?

Superpig
- saving pigs from untimely fates
- sleeps in a ham-mock at www.thebinaryrefinery.cjb.net

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

i think you have a good idea, the problem is repition. if i talk to the pot-maker, and later the wood-sawyer, im going to notice if they say the same thing... you would have to have quite a few snippets... or possibly, though difficult, you could have words within the snippets be random...

just an idea...

hey - ahw - i had no idea there was a patron saint of the internet...

-geo-
quote: Original post by Anonymous Poster
hey - ahw - i had no idea there was a patron saint of the internet...

-geo-


LOL I am glad someone noticed that. He is only proposed patron saint, I am not sure if it''s official. And no, I am not catholic. I just find the idea hilarious. (And I dont mean disrespect, neither, I just *really* find this amusing)

--AHW --
quote: Original post by Anonymous Poster
i think you have a good idea, the problem is repition. if i talk to the pot-maker, and later the wood-sawyer, im going to notice if they say the same thing... you would have to have quite a few snippets... or possibly, though difficult, you could have words within the snippets be random...

just an idea...


I was thinking that you would need both a large collection of snippets, and some way of marking which ones have already been used, yes.

Although, a snippet requirement could be something like ''has not yet met player.'' That way, there is at least no possibility of the same person saying the same opening phrase twice, and so on.

Superpig
- saving pigs from untimely fates
- sleeps in a ham-mock at www.thebinaryrefinery.cjb.net

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

How about using sentence links?
You have probabilistic links between two sentences, then you just chose them.

A
B C
D E F
A B end

Something like that
It would say sentence A, then it has a ?% chance of saying B and another %? chance of saying C, from there it just keeps going until it reaches end. (could also change probabilities, according to the charicters actions, and instead of only one sentance A, you have a few synonimous (sp?) sentences eg "I went to the shop yesterday", "Yesterday i went to the shop", "Yeah, i just went to the shop yesterday")
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
Mmm... necromancy...

This topic is closed to new replies.

Advertisement