RPG: conversation trees & relationships

Started by
30 comments, last by krez 22 years, 3 months ago
i am working on the communicating-with-all-the-NPCs part of my game. originally i was planning on using a tree-like setup, where the player has several options of what to say to the NPC... but upon further thought i realized how much i hate those in other people's games then i remembered Ultima 4, where the player can type in what they want to say (well, not exactly; the game only checks for the appropriate keywords, and spits out a response if one is found). so, basically, you had to walk up to everyone and say "name" and "job" to them, and then continue the conversation from there, typing in any words that might lead to interesting information (based on what the NPC said at first, or what other people/clues have lead you to believe this NPC might know about). while this isn't really any more open-ended than a tree where you click on what you want to say, it seems to be since you can try to chat about whatever you like, and also i can throw in some interesting yet unrelated stuff just for kicks (if you type in something about "rabbits" maybe the NPC has a bit of something to say about the topic, although it wouldn't be worth making a clickable line in the tree-like version). does anyone have any ideas about this? likes? dislikes? anything? also, i am planning on implementing a "relationship" tracker for each NPC... it'll track several things that might change what they have to say to you, and how they say it. currently these relationship variables are: * alignment - good/evil, chaotic/lawful * trust - does the NPC trust you? distrust you? neutral and waiting to form a judgement? * bribery - have you given the NPC money/items/help (completed a quest perhaps) that would make him/her more likely to be open with you? * friendliness (i need a new name for this, but it doesn't matter as all the numbers are hidden from the player anyway) - based on player's charisma, and previous conversation/deeds with the NPC (were you rude earlier? polite? helpful?) * honor (?) - does the NPC "owe you one" (because you saved his/her life, or something) * intimidation - is the NPC afraid of you? it might make them fear giving up info, but then again they might be bullied into it. does anyone have any other ideas that i could use for these relationships? or any comments about the ones i listed? well, that was just a spewing of my ideas, before i start coding. any help or ideas or criticism will be appreciated, as i want this game to be fun for someone besides me --- krez (krezisback@aol.com) Edited by - krez on January 14, 2002 4:26:22 PM
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
Advertisement
It would be a mistake to include alignment in there. Change it to apparent alignment or something. If I am evil, you have not one clue to this unless I perform evil acts. If I make it a point to always make sure there are no witnesses to my crimes, I could be well liked/respected...sounds like a politician, doesn''t it?



ShadeStorm, the Day_Glo Fish
ShadeStorm, the Day_Glo Fish
Use the conversation tree that was implemented in Ultima7. I haven''t found a better one since then. Only problem is the complexity in coding and writing dialogue for it...
*********-.o-**********
quote:Original post by krez
originally i was planning on using a tree-like setup, where the player has several options of what to say to the NPC... but upon further thought i realized how much i hate those in other people''s games
then i remembered Ultima 4, where the player can type in what they want to say.
...
while this isn''t really any more open-ended than a tree where you click on what you want to say, it seems to be since you can try to chat about whatever you like, and also i can throw in some interesting yet unrelated stuff just for kicks (if you type in something about "rabbits" maybe the NPC has a bit of something to say about the topic, although it wouldn''t be worth making a clickable line in the tree-like version).
does anyone have any ideas about this? likes? dislikes? anything?

I''d hate it. Although you may not consider this relevant, it goes against basic human-computer interaction principles by making the interface to the system less explicit. You are now having to play an extra sub-game of "guess the words". At worst, this will lead to people noting down everything the NPC says, in order to type it in, a word at a time, to see what information you get. So what have you gained then? You''ve wasted the player''s time by forcing them to note/memorise the conversation before they can get the information.

The only way I would think such an interface would be justified, would be if the NPC knowledge was really dynamic, and they really could talk about almost anything. However, I doubt many people will be putting anything so useful into their programs right now. And no, this doesn''t include hacking some Eliza program in there: I mean adding some sort of knowledge base so that NPCs can talk sensibly about a range of subjects.

quote:also, i am planning on implementing a "relationship" tracker for each NPC... it''ll track several things that might change what they have to say to you, and how they say it.

This is going along the right lines... but given that your system is essentially still a tree system (with hidden branches), it''s just going to lead to a combinatorial explosion of dialogue for each character.
I''ve got to say that I (and most people) probably wouldn''t like it that much. Wizardry 8 uses a similar system (words appear in your list as you hear about them), but then when you hear a word, you have to go and click on the word with everyone else you''ve talked to (that it may apply to). Unfortunately, this ends up with a couple things:

1) A long list of words you end up clicking on every NPC on the chance they may know something about it (most of the time they don''t).

2) Generic sounding sentences just to fit the "key" words in... everyone starts to sound the same, then... no personality.

Though I agree with you that the tree method leaves a lot to be desired (especially when the sentences they give you often sound NOTHING like something your character would say), I don''t know if doing it this way is much better. Keep in mind, though, that unless your system is horribly unintuitive, it probably won''t hurt the gameplay either way you do it (though I''m not a big fan of the Wiz8/Ultima7 method, the games were good enough that the speech method didn''t bother me a whole lot).

-Chris
---<<>>--- Chris Rouillard Software Engineercrouilla@hotmail.com
As has already been noted, I don''t think there is a really "nice" way to model NPC dialogs.

Personally I dislike the "word-game" solution, and I''m not a big fan of conversation trees either. I''d probably try to stay right out of actually allowing interaction in conversation.

A lot of games do this by simply allowing a character to ''converse'' with another character. Then the game checks to see if there is anything of importance that the character should be told, and that information comes up as dialog. If there is nothing relevant, then the person just says something unimportant to any quests (but perhaps useful in some way such as the ingredients for a potion). Conversation might take up a certain amount of game time depending on how much information the player received.

This is an interesting topic!

Crouilla's description of the Wizardry 8 system seems different to the Ultima7 one in this way: You don't build up a list of words for everyone. The words you can ask are only relevant to that conversation.

Words which lead to further conversation are highlighted too, so there's no need for "guess the words".

I actually liked the Ultima7 one. I guess what I like about this system is it does, in a way, represent the way we converse in the real world. We pick up things along the way that we want to talk about, and occasionally we bring the conversation in that direction. Of course, the person we're conversing with often has the same agenda. That needs to be reflected somehow.

These days, many consider using the keyboard to be out of the question, and higher screen resolutions would allow display of keywords for selection.

Krez may be right in saying that it's structure could be simpler to implement than the traditional tree. You just tie a response to each keyword.

As some extra relationship variables, depending on the setting, you might want to consider prejudices and magnetisms, in terms of sex, race (species if we're doing Sci-fi or fantasy), age, social status, etc. You don't have to include them all, but some standout ones give insight on the culture of the setting.

Trevize

---------
"it's not like the movies
they fed us on little white lies" - radiohead

Edited by - golan trevize x on January 14, 2002 10:29:24 PM
Everyone,

The tricky bit with NPCs is that you always know that at their heart they''re not really people, but little locks which you must finagle with to spring and release juicy information. At this point, the only true way for NPCs to converse normally with the PCs is if all the characters in the game are PCs: that is, a MMORPG. Even in MMORPGs, certain NPCs are necessary: think Deckard Cain, the Identify Station, in Diablo 2. At first, the NPC personalities are interesting, but after a while you get annoyed by what is essentially a device acting like a person.

One way to solve this is have paid GMs running a set of NPCs: when the NPC is asked to perform standard functions, it goes through the motions with a minimum of fuss, but when a PC tries to converse with it in a way it doesn''t understand, the GM is called in to run the conversation. This only works with online games, though, and it''s rather expensive, even if relatively few people can run most of the NPCs. Another way is to admit that NPCs are essentially devices and make all of them robots, with a simple menu printed right on the front. Of course, when everybody except you is a robot, this makes for a rather lonely play experience. Someone mentioned Eliza; is that the chatroom Turing machine? That could be used to good effect to give nonessential NPCs the ability to chat about this and that and thus make the world a little more believable. Furthermore, if NPCs use word recognition, then they could spill what they know in the course of casual conversation. However, this could be a frustrating experience if you''re only out to gather information, rather than chitchat about the weather.

I think the conversation system''s parameters depend in part on the kind of game you want. If you want an action game, then NPCs should be strictly functional: perhaps with an interesting backstory, but overall giving quick access to their necessary abilities. If you want an immersive RPG, then go with the chatty people. Just make sure that if you''re looking for information, it will be obvious who has the information you need; or include a "shout to bar" function where you ask a direct question to everyone in the room and immediately find out what everybody who does know something knows. I truly hate trying to find the right person to ask the right question to unlock the next part of the game, and it''s this kind of "treasure hunting" that I suspect people are reacting to when they say they prefer conversation trees to natural-language systems. Just don''t make us bang our heads against the keyboard, and any system should do fine!

---------------------------------------------------
-SpittingTrashcan

You can''t have "civilization" without "civil".
----------------------------------------------------SpittingTrashcanYou can't have "civilization" without "civil".
Reading this, I got to thinking about a system for regular conversation. ( eg. Nice day, eh?) This could be done with various flags. Something like: If weather is nice pick a random response for nice weather. If the PC happens to mention something like the war with the neighboring nation or something else that would prompt info, then you could have a set response.
This might be impractical due to the amount of extra programming, but it would make NPCs a lot more lifelike.
I think NPC conversations should be functional only. When you''re playing a game you don''t want to talk about the meaning of life with a computer programme.

If I go to a store in the game the NPC shopkeeper should just facilitate the transactions. There could be some "ear candy" where the NPC has a few original phrases but that''s it.

Now I go to the inn cos I want info about a quest. I agree that a shout the bar approach is best here. An NPC comes forward and there is a short dialogue and off I go. Given that the NPC, by coming forward, has told me he knows something about the quest, I don''t need a lot more than to ask him / her specific questions.

What is interesting Krez is whether I get the right information. This is perhaps where your alignment system works. The NPC has two or three programmed responses depending on alignments. One could send me into a trap. One could send me on a detour and the other to the right place.

But why do you want extensive NPC conversation? What purpose does it serve in the overall game?

This topic is closed to new replies.

Advertisement