Aller au contenu

Photo

Preferences with villagers' conversations and names...


  • Veuillez vous connecter pour répondre
19 réponses à ce sujet

#1
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
I am deciding how to set up the conversations for the villagers in my campaign.  I was thinking about giving each villager a name and a short unique conversation.  My concerns are that If I do so, the player will get overwhelmed and not know which ones lead to quests and which ones don't.  Maybe I could make all of them point to the quests in some way.  I'm interested in hearing thoughts on what would be most fun and on hearing how others have handled this.  My main concern is to have a chance to throw in some fun dialogue, point the player toward sidequests, and avoid overloading the player.

#2
kamal_

kamal_
  • Members
  • 5 254 messages
You can just name your generic commoners "villager" or whatever, then set the name when the player talks to them (there are default scripts for first and last name). It's both more realistic (player doesn't know the names of everyone in the village they just arrived in) and gives the player a guide on who to talk to for quests. If you want them to refer to quests it could be as simple as "oh, you should talk to Innkeeper Bill, he knows all the stuff going on in town.", this routes the player to a single questgiving npc.

I'm using one conversation assigned to all my commoners, they randomly select a barkstring. The fact they just have a barkstring reinforces the fact they are generic ambiance npcs. But then I have a lot of commoners and giving them all unique conversations would take way, way too long.

#3
PJ156

PJ156
  • Members
  • 2 985 messages

kamal_ wrote...
I'm using one conversation assigned to all my commoners, they randomly select a barkstring. The fact they just have a barkstring reinforces the fact they are generic ambiance npcs. But then I have a lot of commoners and giving them all unique conversations would take way, way too long.


I did the same as this, methinks it's a good plan. As is the naming idea, then they also know who they have spoken to.

I set up four random sets of 10 barks for my commoners each set of ten pertainging to a progress gateway in the module. That updated as the mod did. thus if you talk to the npc hafway through the mod they refer to a fight you had at the start. That could be modified against a reputation as well?

In the first two of my mods I gave each of the villagers thier own convos but there were very few of them and the villagers themselves were relevant to the plot and thus it all worked together.

Horses for courses but I agree that the player could become lost in the minutae of Jack Baxters ferret breeding problems.
At the same time I also wonder that, if every villager told you to go see the inkeeper you might start to feel a little railroaded?

PJ 

#4
kamal_

kamal_
  • Members
  • 5 254 messages
Well there's an assortment of npc's the player could be referred to. Innkeeper, priest, local ranger, mayor, general store owner. Any of these could presumably be expected to know most of the village's goings on. This would be less railroading, since they would all know what's going on.

#5
Arkalezth

Arkalezth
  • Members
  • 3 191 messages
It depends on how much population is there. I liked personalized names and conversations for everyone in PJ's modules (it gives more depth to NPCs), but as he said, there weren't a lot of them. In a large town, it doesn't make sense to know everybody.

What kamal said is the most realistic option. Maybe the PC can ask the gate guard or commoners for directions or something. Random commoners may be named either just "villagers", or things like "red dressed woman" or "fat mustached man".

#6
The Fred

The Fred
  • Members
  • 2 516 messages
Yeah, if you live in a big city (or even just a town), people are just "Fat mustached man" or "Fat-mustached man".

#7
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages
I did the barkstring route, too, but I used a custom token and wrote a little script to generate a list of random replies. Using the script means I get to add replies based upon about anything: area, time of day, quest status, the PC's gender, equipped items, alignment, or their current ambient task. All this can be done with a regular convo, but the script makes it easy to add new replies as you go along, and use some more complicated logic structures.

I might add to it by doing something like Arkalezth suggests, giving each NPC a generic but distinct personality. Maybe one always says something cynical, another hysterical, a third just talks about her cat all day, and a fourth is just there to mock the PC (think Janitor from Scrubs). Maybe add a progression counter, too, so each time the player talks to the NPC the counter goes up and different replies are added to the mix.

#8
PJ156

PJ156
  • Members
  • 2 985 messages

The Fred wrote...

Yeah, if you live in a big city (or even just a town), people are just "Fat mustached man" or "Fat-mustached man".


Indeed, with a smattering of "Fat mustached woman" for good measure.

Lugaid of the Red Stripes wrote...

I did the barkstring route, too, but I used a custom token and wrote a little script to generate a list of random replies. Using the script means I get to add replies based upon about anything: area, time of day, quest status, the PC's gender, equipped items, alignment, or their current ambient task. All this can be done with a regular convo, but the script makes it easy to add new replies as you go along, and use some more complicated logic structures.

I might add to it by doing something like Arkalezth suggests, giving each NPC a generic but distinct personality. Maybe one always says something cynical, another hysterical, a third just talks about her cat all day, and a fourth is just there to mock the PC (think Janitor from Scrubs). Maybe add a progression counter, too, so each time the player talks to the NPC the counter goes up and different replies are added to the mix.


That seems a good system to me, random but with character. I can't script as you describe but it can be done off a convo. In the end each personality be it cat lady or ferret man you need a convo per person though a set of barkstrings is easier than a full two way conversation with roleplay elements.

I had three sets of bark strings with slight differences last time, one for guards, one for the prostitutes and one for the merchants. I may go down your suggested route for the next lot. It is also a plce to put some humour in.

Another thing I have done is give the commoner a convo and, rather than repeat this, once it is no longer relevant the convo defaults to barkstrings. that way the PC knows the commoner is not longer plot relevant. 

#9
kamal_

kamal_
  • Members
  • 5 254 messages

The Fred wrote...

Yeah, if you live in a big city (or even just a town), people are just "Fat mustached man" or "Fat-mustached man".

How I'm handling it in Crimmor:
As a local, you already know by name anyone of note in the area around where you live. Shopkeepers, priests, etc.

In other parts of the city, you can ask people of note their name and it gets assigned to them. Before that, they are "shopekeeper" or "priest" or whatever. If you have reason to know their name, like being sent to see them by someone else, they are automatically named when the player approaches them. For example the player meets a person who is obviously a druid. So when the player approaches them they are named "druid". If the player asks them their name then it becomes "Jim the Druid" or whatever.

Famous or well known people are named by default, as you know who they are. People like the King, the mayor, the famous hero. Everyone knows who Lord Nasher is, even if he doesn't know who you are.

Non- notable npcs are identified by general class. Commoner, merchant, guard, noble etc. These generic names tell the player this person isn't especially notable for anything. Each group of npc's get their own set of random barkstrings. In Path of Evil I made the barkstrings famous quotes related to the area they were in by using some online quote databases. So all commoners in a dock district had quotes about fishing for instance, while those in the slums had quotes about poverty.

/I'm handling mapnotes in a similar way, you know the nearby places of note, and the famous places, and discover other places of note and you explore the city. Journals are clearer on locations, for instance in Crimmor there is a famous inn called the Pearl. Every Crimman would know where it is, and it's automatically marked on the player map in the area where it is. But if the player is sent to the Pearl by someone, the journal says what area it's in because the player doesn't know even though the pc does.

#10
kamal_

kamal_
  • Members
  • 5 254 messages

PJ156 wrote...

The Fred wrote...

Yeah, if you live in a big city (or even just a town), people are just "Fat mustached man" or "Fat-mustached man".


Indeed, with a smattering of "Fat mustached woman" for good measure.

:sick:

#11
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
Do you have the NPC's name saved as a local string, and then change the name to that string once the PC talks to it?

#12
kamal_

kamal_
  • Members
  • 5 254 messages

M. Rieder wrote...

Do you have the NPC's name saved as a local string, and then change the name to that string once the PC talks to it?

No, I just assign it via script. There are default firstname and lastname scripts to assign names. ga_first_name_set and ga_last_name_set . For what I'm doing there is no advantage to storing it as a variable.

#13
The Fred

The Fred
  • Members
  • 2 516 messages
I like the idea of applying names once you find them out. We never used to be able to do this, but since we can now, we may as well.

I imagine that if someone already had a pre-determined name, you could set it as a variable first, but there's only be any point in this is the name was also being randomly determined. For example, a quest to give a letter to a random villager. This actually opens up quite a few options for randomly-generated quests, but that's another topic.

#14
M. Rieder

M. Rieder
  • Members
  • 2 530 messages

kamal_ wrote...

M. Rieder wrote...

Do you have the NPC's name saved as a local string, and then change the name to that string once the PC talks to it?

No, I just assign it via script. There are default firstname and lastname scripts to assign names. ga_first_name_set and ga_last_name_set . For what I'm doing there is no advantage to storing it as a variable.



Oh, so it just creates a random name when the script runs?  Thats pretty convenient. 

#15
rjshae

rjshae
  • Members
  • 4 497 messages
I like the suggestion made in another thread to color-code the character's mouse-over name to indicate importance to the player. Hence, you could color code a key NPC as "Villager", then switch the name from "Villager" to, say, "Dirk the Pirq" when a conversation is begun.

Modifié par rjshae, 02 juin 2011 - 05:40 .


#16
kamal_

kamal_
  • Members
  • 5 254 messages
@ Reider. No, the name scripts take variables, not assign random names like the character generator (though that would make a nice trick).

#17
kamal_

kamal_
  • Members
  • 5 254 messages
Thinking about random naming, you could easily alter the default scripts to randomly select names from a list you provide in the script itself instead of having the script take arguments. It would be pretty trivial to do. Provide 20 names for a first and 20 for a last and you'd get more combinations that most mods would have random commoners. Viola, everyone has names that are unlikely to overlap.

#18
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
That would give the option of giving names a cultural flavor as well. What is the name of the random name generator script?

#19
kamal_

kamal_
  • Members
  • 5 254 messages

M. Rieder wrote...

That would give the option of giving names a cultural flavor as well. What is the name of the random name generator script?

You could take the default first and last name assigning scripts, and rewrite them so they take no arguments but randomly select from a list you put inside the scripts. Would take 30 minutes or less.

#20
kamal_

kamal_
  • Members
  • 5 254 messages
//randomly assign first name to npc from list in script.
//by keeping the list in script, you can customize the list of names easily.
//script takes no parameters
//last name is the same except SetLastName


#include "ginc_param_const"

void main()
{
oTarget = OBJECT_SELF;

//we only want a name assigned once per npc
int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF));
if (DoOnce==TRUE) return;
SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE);

//50% Bill, 50% Ted in this example
// will support as many names as you want by changing the percents
//and adding more else ifs

if (d100()<=50)
{
oTarget = OBJECT_SELF;
SetFirstName(oTarget, "Bill");
return;
}
else
{
oTarget = OBJECT_SELF;
SetFirstName(oTarget, "Ted");
}

}

Modifié par kamal_, 04 juin 2011 - 10:25 .