Making random characters feel less random

Started by
19 comments, last by AngleWyrm 15 years, 3 months ago
Traits shouldn't be too hard given a little bit of time spent on it. I'm sure they big dev houses could spare a few days for extra lines of flavour text even if it's not auto generated.

But I want to go one step further and say I'm tired of seeing empty worlds (few to no people) and those few people standing still just waiting for you to talk to (or kill) them. Don't they have lives too? MMOs are the biggest culprit here (SWG I'm looking at you), they are the ones that need it the most.

I realise everything takes cycles and development time, but surely with big budgets and powerful cpu's we can add a little more flavour into locales such as towns and villages. People doing things, maybe as simple as sitting at a desk with a pen and paper writing (nothing tangible, but just the action), then after a while get up, perhaps boil some coffee of go chop wood or tend to the chickens... That blacksmith is gonna need a break from beating that same sword over and over, maybe he should take a nap! And if there is a night cycle, they should all go home to bed!

Asking a lot I know, especially of current development houses. Would sure make a game like Oblivion a lot more believable. It should be easier on the cpu in games that are not sandboxes, as you move along that small village will get unloaded and not be seen again, but the experience will make the player feel more like it is more of a real world.
Advertisement
Quote:Original post by Konidias
That sounds nice in theory... Just remember how much effort will need to be put in to making all of this. Unless you come up with some crazy good random generator, a lot of the stuff you're describing is going to have to be pre-made by developers. Generating random NPCs that can give out quests/items and such isn't too hard, but generating random NPCs that will grow to have an entire story arc about them is going to require far more work.

In the situations I described, there would be no story arc. I would have a random mission, and need a character to play this part and that part. There might possibly be some varying dialog lines that pop up during the situation that could hinge on each character's personality. But otherwise, it would be just as easy to use a pre-existing character (one the player met in a night club) as one that was made up just for the mission.

How many lackeys and crime bosses do you rampage through in a typical game? They're just nameless play dolls. That's fine, but what I'm suggesting is replacing a few of them with these specific characters. Or in some cases, making the mission "play dolls" turn into these specific characters.

Quote:For the whole assassin thing, you're going to need to also generate the thugs she's fighting, along with any of the dialogue that goes on afterwards.

That would be a random street event. People being mugged, ganged up on, or shot. The player will see that sort of thing a lot while just walking around. With a few design adjustments, I can occasionally have known characters be included in them. Some situational dialog would be nice, but I doubt I would go very far into it. You just happen to run into her while she was beating down some street thugs - something she does a lot.

Quote:You're getting into the realm of non-generated NPCs at this point. You might as well just have a lot of "hand-made" NPCs that just seem random, since it chooses from an archive.

Nothing I've brought up so far would require that. I've probably just described it poorly.
Quote:Original post by JasRonq
That is a valid point. is it easier at that point to just hand make your archive of gem grade NPCs and randomly trigger their presence in the world, or is it easier to create a huge archive of traits and a system to logically create personalities from these traits such that they are memorable and self consistent and then create their stories as well. Either way, that's a whole lot of content.

For one thing, it would probably be even harder to hand-make them. Just hand-balancing all of their skills and traits would be a huge job. I suppose you could use a tool or point-assignment system to keep things balanced, but that would be nearly as difficult as a random generator.
How to make a character randomly generated be unique enough for the play to say hey that's cool...

What defines a person? The people they interact with and random decisions that generate their background to make them act a certain way towards others.

So what you really need is a data base that links all the characters together and a random event generator that creates ripple effect of how other characters interact with that character with stats for various personality quirks. These quirks would be able to create all the "randomly" created stats and skills needed to make a cool NPC that seems unique.


Personally speaking i think back story is more important than stats for a unique character because for most classes of character they are really a dime a dozen and there are only a few exceptions.
Quote:Original post by BLiTZWiNGI realise everything takes cycles and development time, but surely with big budgets and powerful cpu's we can add a little more flavour into locales such as towns and villages. People doing things, maybe as simple as sitting at a desk with a pen and paper writing (nothing tangible, but just the action), then after a while get up, perhaps boil some coffee of go chop wood or tend to the chickens... That blacksmith is gonna need a break from beating that same sword over and over, maybe he should take a nap! And if there is a night cycle, they should all go home to bed!

This is definitely a plausible suggestion. None of what you suggested would be particularly hard to add to an npc. Animations could be kept simple... simple command scripts could be called to make the npc go from one animation the next, depending on the time or weather or whatever situation....

It's really just a matter of most massive RPGs wanting quantity over quality, so they just toss a ton of boring npcs all over the place to make it seem like there is a ton of content.

Sure the animations might take up more space, but I'd rather have all that fun stuff to look at in the game than the giant file size of the pretty movies they have that don't actually benefit gameplay in any way.
[size="3"]Thrones Online - Tactical Turnbased RPG
Visit my website to check out the latest updates on my online game
Just wanted to chime in on the issue of having clashing/illogical traits: When I encounter memorable characters in books, most often they're memorable because their traits conflict. This makes them unpredictable, which is something that's refreshingly human because humans are a complex snarl of conflicting emotions, histories and impulses.

So if I encountered Saint Francis of Assisi the Sniper, the first thought I'd have (if my belief were properly suspended) is "wow, how the heck did that happen." I would wonder if he's like the Arthurian Legend's Green Knight, the paradox of a warrior waiting to be defeated. If I encountered the surgeon who fainted at the sight of blood (and again you've done something to mask that I'm looking at random traits) I would wonder what in the world would make such a character-- was he tortured? Did something change his objectivity or shatter his confidence in what the human body was, altering it from understandable organism to be treated to horrific, nebulous other? Did someone hack one of his cortical implants?

It's been said that stories work because humans are pattern making machines. If you provide details and (I think this is key) a sequence in time, we'll connect the dots. If your sniper was once peaceful, I might think he experienced something that changed his world view from loving to vengeful. Or vice versa if he is becoming peaceful (I think this theme was in Glimmer Man with Steven Segal).

I don't think this will work, though, unless you have certain traits dominate behavior. If a surgeon faints from the sight of blood, don't show him doing surgery. If the sniper is peaceful, don't show him killing (unless there are reasonable stressors we can intuit-- for instance, showing him struggling with killing would be far more interesting because aspects of his personality could be shown to be competing for psychological supremacy).

If you did this, a feature I think would be the capstone would be if you could change / influence these traits both directly and indirectly. If I'm hunting for a surgeon, a fainting at blood guy is probably going to make me annoyed if that's all there is to him. But if I can reason with him, plead or bribe and somehow get him to just attempt the action, then you will have transformed my experience from passive observer of traits (which has low emotional investment) to active involvement.

IIRC, Kest, your theme is sci-fi, so you could even make this an overt thing. Stealing from George Alec Effinger, what if there were "personality mods" you could give to people to help change or suppress their attributes, but which were limited use (causing trauma or exhaustion)? Now your random personalities have a sort of tactical gameplay overlay for the player, as he invests in mods to augment friends (and even enemies?) into the sort of characters he needs. Imagine getting a dirt cheap psychopathic sniper and just trying to keep the guy stable enough to do one mission for you, then later having to take him out because he's gone off the deep end and is assassinating any and all randomly.

Probably very hard to pull off, but I think it would be similar to the effect you get in Half-Life 2 with the gravity gun: Suddenly what's normally ordinary window dressing becomes a vital part of the player's gameplay and strategy.
--------------------Just waiting for the mothership...
Quote:Original post by Wavinator
Just wanted to chime in on the issue of having clashing/illogical traits: When I encounter memorable characters in books, most often they're memorable because their traits conflict. This makes them unpredictable, which is something that's refreshingly human because humans are a complex snarl of conflicting emotions, histories and impulses.

So if I encountered Saint Francis of Assisi the Sniper, the first thought I'd have (if my belief were properly suspended) is "wow, how the heck did that happen." I would wonder if he's like the Arthurian Legend's Green Knight, the paradox of a warrior waiting to be defeated. If I encountered the surgeon who fainted at the sight of blood (and again you've done something to mask that I'm looking at random traits) I would wonder what in the world would make such a character-- was he tortured? Did something change his objectivity or shatter his confidence in what the human body was, altering it from understandable organism to be treated to horrific, nebulous other? Did someone hack one of his cortical implants?

It's been said that stories work because humans are pattern making machines. If you provide details and (I think this is key) a sequence in time, we'll connect the dots. If your sniper was once peaceful, I might think he experienced something that changed his world view from loving to vengeful. Or vice versa if he is becoming peaceful (I think this theme was in Glimmer Man with Steven Segal).

I don't think this will work, though, unless you have certain traits dominate behavior. If a surgeon faints from the sight of blood, don't show him doing surgery. If the sniper is peaceful, don't show him killing (unless there are reasonable stressors we can intuit-- for instance, showing him struggling with killing would be far more interesting because aspects of his personality could be shown to be competing for psychological supremacy).

If you did this, a feature I think would be the capstone would be if you could change / influence these traits both directly and indirectly. If I'm hunting for a surgeon, a fainting at blood guy is probably going to make me annoyed if that's all there is to him. But if I can reason with him, plead or bribe and somehow get him to just attempt the action, then you will have transformed my experience from passive observer of traits (which has low emotional investment) to active involvement.

IIRC, Kest, your theme is sci-fi, so you could even make this an overt thing. Stealing from George Alec Effinger, what if there were "personality mods" you could give to people to help change or suppress their attributes, but which were limited use (causing trauma or exhaustion)? Now your random personalities have a sort of tactical gameplay overlay for the player, as he invests in mods to augment friends (and even enemies?) into the sort of characters he needs. Imagine getting a dirt cheap psychopathic sniper and just trying to keep the guy stable enough to do one mission for you, then later having to take him out because he's gone off the deep end and is assassinating any and all randomly.

Probably very hard to pull off, but I think it would be similar to the effect you get in Half-Life 2 with the gravity gun: Suddenly what's normally ordinary window dressing becomes a vital part of the player's gameplay and strategy.


Hmmmm... you have a very cool idea right there. I'm going to have to spend some time thinking about that.
I did a text variations generation language many years ago which mutated a message randomly each time it was called. Basicly it would say the same basic information but it would be somewhat different esch time.

Combinatorics would be used in nested random/optional text blocks on many subpharses so that the text string produced would be significantly different lengths and words used.

The basic construct was the random selector where a list of substrings were specified :

[string1/string2/string3] (one is picked randomly)

allowing a number of different strings to be used (or an empty string).

This was then allowed to be nested :

[ substring1prolog [substring1_1/substring1_2/substring1_3] substring1epilog /
substring2prolog [substring2_1/substring2_2/substring2_3] substring2epilog /
substring3prolog [substring3_1/substring3_2/substring3_3] substring1ep3log ]


Variables could be assigned strings early so that the same phrase could be used
multiple times without mutating.

The usual player name/gender/time insertions were also done.

Basicly you would have the options be the same thing phrased a different way and extra descriptive words could be added (or ommitted with empty string options).

I even had a language construct that gave a fractional probability of each option being used -- something like [2,phrase1/3,phrase2/1,phrase3]
to shape the random usage of the options.


I also had subroutines which could substitute for text phrases/spiels which were used frequently.


Entire stories /serts of stories could be built up using a language like this.
Of course all 'messages' would need logic to decide which ones are appropriate at the right time (it would be dim for the guard to be talking about his pet dog when a dragon was just then attacking the town....)


Something like this could be an addon to the usual dialog tree mechanisms that many game engines use to add some variability to the text (I recall Neverwinter Nights had an interesting tool which could script fairly complex test logics)


---------------


Now of course this assumes the (company) game writer is willing to do the effort to make their NPCs incidental talk more variable -- which so many apparently dont even do (ie -most having each one only have a repertoire of 3 or so messages that they cycle/randomly spew). We have Gigs of memory these days so having the scripts use more of it is not a valid excuse.


--------------------------------------------[size="1"]Ratings are Opinion, not Fact
(preface, I didnt read everything here)
Left 4 Dead did a really cool feature, where in they have a tree of phrases that can be said after another phrase. The available branches in the tree are determined through both randomness, and previous events in the game. The starting queue for any phrase is usually a place or object in the world (and this is where you could change things up). Once a character encounters the object, it spouts some words, and the other characters create a random dialog after it. Though all the dialog gets reused significantly, there is enough variation in how the conversations play out that most the time it feels unique.
One thing you need to consider is that most NPCs are not going to want to interact with your character. If you have some mine worker running home for lunch because he forget to grab it, he's not going to want to talk to you at all. If you have that same working coming home after work he's not going to want to talk to you once again.

This is me approaching it from: The main reason you'd want to have something randomly generated is to save a lot of work, like having cities that are actually full.

Now when you do say corner a bored merchant I'd probably do something off an event log. For instance when a rare event happens like some one stole from that merchant or a neighbor I'd madlib the noun, pronouns, and maybe some adjectives if race/sex/status/whatever or similar plays a role. Once again you keep these sort of common responses down to a bare minimum because generic people do not want to talk to you in most cases.

You could consider your case study going out into a city and stopping people to greet them

___
The only valid measurement of code quality: WTFs/minute

This topic is closed to new replies.

Advertisement