creating engaging NPC interaction

Started by
7 comments, last by esrix 16 years, 7 months ago
Like many of us, I'm trying to design an RPG. I've got a battle and exploration system, and I've got a good idea of how to handle character growth. But where I'm finding a great deal of difficulty is in NPC interaction. I hate NPC interaction in most RPGs--just walk around and talk to random people is not my idea of engaging. So I'm trying to develop something more engaging. I'd like to know your opinions on the system. What I've come up with so far was inspired by having multiple online conversations at once; the five characters each talk to a different person in town. This is represented through a chat window with 5 tabs. To switch each character's conversation, you just click on the tab and it will show you who that character is talking to. Now, I have three factors that play in how the conversations will go: 1) Some NPCs will respond differently to different characters. For example, one guy might not like non-human types and withhold information, but he may enjoy a woman's company and spill all he knows about the paths leading to the next town or dungeon. 2) NPCs will ask questions, and choosing different answers may yield interesting--and permanent--results. In the process of telling you one thing, they may not tell you about something else (which is okay, because in an ideal world, the game would be multi-linear) 3) The people you talk to don't just sit there and wait for you to respond. It's a time-based balancing act. You have to make sure you cycle through and spend a fair amount of time talking to each person, otherwise they may become angry or even leave entirely. Spend enough time talking down the shopkeeper's price and he may give you a discount. Don't spend enough time with the town's bum and he might not tell you about the robbery last night, or that he saw where the robber went. To indicate the time needed to respond, there would be a small meter at the top of every tab that depletes and flashes when the time to respond gets incredibly low. For real life distractions, the player would be able to pause the game. However, doing so makes the dialogue and options unreadable. That's what I've come up with so far. Obviously, I'd have to set up a chat logging system as well for the player to refer to later on. One thing I haven't decided yet is whether or not there will only be 5 people per town to talk to, or whether you have to choose from a pool of people to talk to. Comments and questions are welcome. [ADDENDUM] I will note that gossiping will be different from shopping, because shopping is a pretty involving procedure that is more time consuming and requires a good amount of analysis. [Edited by - esrix on September 24, 2007 11:47:50 PM]
Advertisement
Keep in mind, it's human nature to want to talk about oneself. It's the vanity factor.

If someone shows a bit of interest in your game development, whether they are genuine or not, you may run off at the lip about it in more detail than they give a damn about. I'm not trying to be a jerk, I am using a real life situation that should hopefully make sense to you.

The subject of the conversation, as well as the participants, can and does modify interest. People prefer to talk about sex rather than fence mending. Two merchants will prefer to talk about making money rather than laying flooring.

Characteristic tics are fun to bring into a conversation. From the BG series, Tiax talked about himself in third person, Minsc was a slow wit, but always a harmless big lug (at least toward good people he was harmless)...characters should have distinctive personalities.

In the context of a game, heartbeat type functions (your timer) can be resource hogs, especially if they are applied for several objects that inherit a base blueprint.

You could inact the heart beat function in the conversation and end it when the dialog terminates. If the dialog ends because the NPC got tired of waiting, will they allow a dialog to start up again? Will it affect other levels of interaction?

#2 is good. I've seen it done effectively before.

[Edited by - aCynic2 on September 25, 2007 5:47:24 AM]
You make good points, aCynic2.

I suppose there could be ways to re-initiate dialogue; the NPC could storm off angry and you could go catch them, but they might not be as willing to talk to you about the same subject.

The option to restart all five NPC dialogues over may be useful as well.

Another useful feature would be some sort of indicator when a keyword pops up. If someone says "You should head north to the Mytrhil Caves", there could be a chime sound and the appropriate tab could blink to indicate which conversation the keyword(s) appeared in.

Also, not every moment will be timed, and some timed moments will be longer than others to help balance things out. They won't be timed down to exact milliseconds, so I'm not as worried about them being resource hogs. I could be totally wrong, but you never know until you try.

As for the subject of conversation... one challenge in writing dialogue in any game is keeping it interesting for people to read. Someone may very well start talking about making money and another could talk about sex, but if the conversation about making money can be made interesting (such as making money by hilarious and totally illegal means involving small children, chipmunks, and peanut butter) might it peak the player's interest a little more? Not as much as the conversation dealing with sex, of course :) I think that relies more on the writing than the system of interaction.

Character ticks are a must, and again, that lies with the writing more so than the actual system.
Always worth asking - What are you trying to achieve with this system? You've stated that its to make NPC interaction more engaging, I don't think it does that.
What it does achieve is to take the searching out of the interaction, as you don't have to go looking for the people to talk to, could be a good or a bad thing - depends on the style of game. It also introduces real time management of several conversations as a gameplay element, not intuitive, but certainly could be interesting!

Hmm... Perhaps engaging was not the correct word.

More intense, maybe? Not balls-to-the-wall intense, though, just something to keep the player on their toes.

I'm wondering if I should make talking to multiple people optional, though. Perhaps you only have a limited amount of time to talk to people in town before they turn in for the evening? And the next day, they may talk about something else, so you could lose some information, but gain other information as well... So it may benefit to talk to more than one person at a time with different characters, but creates the balancing act as a result if you do.

It makes the system more complex, but it sounds like it'd be fun to design!
Perhaps the character that you primarily control is the the leader of the group. You could send the others out and ask them to retrieve information from the people about the village, get them looking for specific info possibly. And if theres someone particularly interesting they could tell you where to find him, or bring him to you...
That conversation, and any other you choose to strike up yourself will be more along the lines of traditional RPG conversations.

My main concern is that all the chat windows would not be nice aesthetically, and all that management off putting in a normal RPG. If you could assign a character to get info about x in area z then they could go off, ask the right questions and come back with the info if they were successful. You could still control how much time they spent doing that, and which of your characters spoke to which villagers etc. It would also be nice that you could arrange that, do some stuff around the village during the day and have the info come back in later when your other characters return. Rather like sending an email or making a forum post - as opposed to maintaining 5 msn chats at once :)

The system sounds interesting, in an "arbitrary but fun" sort of way. The main question I have is, where's the feedback to the player? How do they work out which approaches work and which do not? Will it be quite easy for players to work out the optimal approach (eg. rotate though talking to every NPC in order), and does character skill play much of a part?

Also, sometimes we revisit an NPC to remind ourselves of useful information - how practical and/or necessary is that with your system? Is the chat logging for this purpose?
Really the best way I would think is to go with either option 1 or 2, both sound kinda like the way Morrowind is set up as far as interaction based upon a person/player's type, however, ultimatly there are going to be NPC's that really aren't going to have much to say that is 'intense' or 'interesting'.

That's simply because you could not write a story or a game that used most of the people in the game, if you did that, the game would be very sparse, and generally, people would become numb to the fact that everyone they talked to is important.

Definatly think improving NPC interaction is necessary for a lot of games out there right now, but the concept of doing it effectively is more important than actually trying to 'fix' the interaction.

Open ended games right now such as Morrowind/Oblivion, and some MMO's, mainly WoW, have a decent amount of NPC interaction which drives the story relatively well, but take note that it takes a lot of time/money to attain those goals.
thelovegoose-
The chat windows would resemble something along the lines of Trillian, if you've ever used that. The best way I can say that Trillian works is that it has multiple tabs, one for each conversation your having, in one window... a lot like how most modern internet browsers allow tabbing instead of having multiple windows open. As I see it now, this would probably be a 2D RPG with limited animation, so I'm not too worried aesthetically about having the world and it's people being represented in some sort of window interface.

Kylotan-
Yes, the chat logging is for the player to refer to useful information. As for working out the optimal approach, I'm not sure I want there to be a truly 100% optimal approach, I'll have to work on that (I literally thought up this system 2 days ago) I haven't thought about implementing character skills into conversations... I'll look into that.

Sephyx-
Uhm, those weren't "options" I was listing. What I listed were things I wanted to put into interacting with NPCs collectively. Sorry for the confusion. I'm aware of the time/monetary constraints on high budget games and if I deem the system too time consuming to uphold, I can always fall back on the standard system. But yes, you are right that people would become numb to a system where everyone has something important to say...

Thanks to everyone for the replies so far! I'll retool what I have based on the comments, but feel free to keep posting if you have something to say.

This topic is closed to new replies.

Advertisement