Thesis Log: Yesterday
I just realized I forgot to make a post about what I did yesterday... and now a new day has begun, so here are my notes for yesterday. I think they might be interesting. The topic is creating quests from NPC needs motivated by... what?
The question is, where do the motivations stem from? Apart from the more basic parts of Maslow's hierarchy of needs - that is, the Physiological and Safety layers - the needs of the individual are generally not all necessary at the same time. That is, while many may long for friendship, family, self-esteem, creativity etc., we have little reason to believe all people always strive for all at the same time. Instead, people prioritize, and different needs vary in relevance between people and between periods in an individual's life.
We need something to base our motivations on. We should probably assume that all individuals will seek physiological and safety fulfillments, and in fact go so far as to almost entirely ignore the lowest layer; not so much because it isn't relevant in theory, but because fetching dinner for someone isn't exactly the stuff that heroism is made of. At least in the long run, we might want to overlook it... though in this early stage, it might be worth looking into, if only as a basic and easily understood motivational factor for early system prototypes.
Anyway, we need some way of deciding what factors the NPC is most likely to want fulfilled at any particular point. There are a few strategies we can think of off-hand. Our first impulse may be to simply select one at random, but this has a few unwanted effects.
To begin with, this strategy results in NPCs lacking “memory”. If an NPC regularly gives us quests to fetch him turnips for dinner, eventually he's going to have a lot of turnips! It wouldn't make sense for him to keep sending us on similar quests. In other words, we need to alter the NPCs needs according to what the player does for him.
Secondly, this gives us somewhat schizophrenic NPCs. An NPC that doles out quests more or less randomly, even if he does respect his own changing needs, will be hard to understand and connect with. Instead, we want the NPC to act in accordance not only to his current needs, but to his personality. This gives the NPC more life: instead of being a random quest hub that hands the player things to do, the NPC becomes something that has a believable life within the simulation. We don't have to hand these traits to the player right away, but simply the NPC acting consistently with his own assigned personality will gradually let the player discover this right away. Humans are good at this, discerning personality through subtle hints. If this could somehow be captured, the result would be smashingly good NPCs.
What we'd like to do here is to randomly generate personality traits for NPCs when they are created. We assume here that they don't change a lot, which is usually a fair enough assumption (unless, perhaps, we add “Fickle” or “Turncoat” to the NPCs traits...). From these traits, in addition to “special” effects—for instance, an NPC that happens to have the Racist negative trait may simply refuse to talk to the player if he is of the wrong species, or may send the player to perform morally questionable tasks—these traits should somehow alter how much the NPC cares about some particular need with regards to the player.
An example to illustrate: An NPC may have a trait we call Vindictive: He is prone to seek out revenge. From this, we establish that the NPC cares about having people he doesn't like brought to “justice”—in other words, having the player beat them over the head. Thus the NPC might generate a lot of quests that involve doing just this.
As an added bonus, traits may in some future application be used to change the NPC's dialogue to further vary the player's experience and avoid the problem of all NPCs otherwise sounding alike, something which threatens to seriously damage the player's immersion in the setting. Paranoid NPCs would talk a lot about how they're being stalked, Cheerful NPCs would happily greet the player, and so on. It's unlikely I'll be looking a lot into this in this project, but it would definitely be a welcome addition to a future project.
I am yet uncertain how many traits we should assign to an NPC. Too few, and the NPC appears flat; too many, and he appears artificial or possibly schizophrenic. This'll have to be determined experimentally, I think.
Comments
Definitely an interesting approach to take. In order to not risk making to big systems, how about trying to get this into a form of grammar (compatible with the quest grammar) and make it as small as possible while still interesting?
I just realized how strangely written the above notes are. Funny. Anyway, yes, that's the next step... I need to formalize the relationship between personalities, needs, and the quests they generate.