last day (15 days later) » 

3:07 PM
first!
 
So the basic points/ideas are these.
awww..
1. Each NPC will be randomly generated based on 20 personality and background traits
2. Each trait will have an ordered list of possible attributes
2E: Birth Social Standing. A) Noble B) Soldier C) Merchant D) Craftsman E) Peasant this is not an exhaustive list. The more granular the better the generator will be able to come up with unique combinations
3. Each attribute will be weighted for probability. I.e. it is far more likely to be born a peasant than a noble and the probability of noble being selected should be significantly smaller.
 
The generator should be able to handle binary, continuous and stepwise personality attributes.
 
4. Definitions for (basically a job/position) each combination should be defined. The same job/position could be applied to multiple combinations
That's what I have so far.
 
it'd be interesting if you had different probabilities for different settlements. Like a farming village is more likely to have poor farmers, and a town is more likely to have merchants
 
Should we also account for the age of the NPC with its attendant changes in physical strength, mental ability, wisdom.
 
3:15 PM
@DaaaahWhoosh That could be accounted for with a location attribute...and then applying modifiers to other attributes based on what location is selected.
 
Also, a parameter for addictive tendencies would be fun.
 
@Green Yeah that makes sense
@Green Agreed
 
And a list of possible addictions including but not limited to <weird fetish>....because people get addicted to all kinds of weird things.
 
maybe there's a list of 'addictive items' with weights, and there's always a chance of getting more than one item per addiction
 
How do we account for being born in a small village and then moving to a large town?
that would add some depth
so I was born in a small farming village but ended up in a larger town after raiders destroyed my home.
 
3:18 PM
@James I think that could emerge from other attributes like introverted/extroverted, desire for quiet...
@James A random event generator would furnish such things.
 
Could you have 3 location attributes? Like loc1 loc2 loc3 with it weighted towards things staying the same?
rather heavily if you are talking about a medieval world
 
maybe the location you're in has a 'instability' value which determines how many people have changed homes/jobs
 
@James I'd make that one dependent on local social standing, livelihood, random events, profession and a "tendency to wander" attribute.
Gypsys have a crazy high wander score. Townies have a really low score.
 
makes sense
Ok so I have this defined:
Trait Attribute 1 Attribute 2 Attribute 3 Attribute 4 Attribute 5 Attribute 6 Attribute 7 Attribute 8
Birth Status Royal Noble Knight Soldier Merchant Religious Peasant Outlaw
Age next?
 
Are we going to account for people changing professions after they take the proverbial arrow to the knee? Or, get promoted?
How will we account for that?
 
3:23 PM
not sure. being medieval we could have status1 status2 status3, again weighted to stay the same
(you may see a theme in my ideas)
 
Lunch time. I'll be back.
 
Me too
 
3:38 PM
Holy cow this is getting complex.
And should parents influence children, and communities influence children as well?
 
Yeah...creating someone unique personalities in a programmatic way is going to be complicated.
 
People are complex. We are merely reflecting reality.
 
Most will turn out as peasants right, with a bit of variation on background and skills, be they a farmer or a craftsman, sailor or whatever. But it would be awesome if you could have 1 generated PC show up like this:
I was born a major noble and was in line for the throne for a big nation/city, at some point in my life x happened and I was forced into exile, now I live on a farm in squalor with chickens sleeping on my lap.
That should probably happen no more than twice in any given world, you don't want a bunch of deposed nobles running around complaining about chickens...
 
so maybe for each NPC, you generate them twice
once for early life and again for now, then try to explain what happened
because really, most people were completely different when they were children. Give every NPC a past to overcome and they're already way more interesting than most
 
@DaaaahWhoosh This is a good idea I think (though I don't know the technical side well enough. Again MOST would be one thing and remain that thing but some valid percentage would be interesting people...
 
3:55 PM
I think the hardest part is going to be figuring out order-of-operations, and how to weight things, and how far back you want to go
once that's out of the way this can probably be as esy/complex as you're willing to wait for
okay, never mind, the whole thing sounds hard
 
Yeah this is a giant spiderweb of ...human.
 
the part that bothers me is the inherent randomness of it. Like you could go through an entire village and accidentally only generate nobleman farmers. But on the other hand, you could generate the entire civilization from a tribe of monkeys, but that would probably take a really big computer
 
Yeah this idea is pretty big...
 
it'd be nice to come up with some sort of scalable design. Something where we could start with a POC and build complexity onto it
so maybe start with the present state, and add history later?
 
4:19 PM
ooh, and maybe when generating history, you also generate a list of events. And any successive NPC can use those same events or generate new ones. So things that happen in the past can affect multiple people
for instance, you generate the current state of the NPC. Then you pick/generate an event, and work backwards to see who they were before, and how that event made them into what they are today. Or you generate who they used to be, and use/generate an event to explain the difference.
events have weights, like chances of social upheaval or chances of making people immigrate/emigrate
 
I mean the biggest battle is taking all of these traits and having them affect the actions and dialogue of the character in a believable way. You're making how the procedural generation of them complex. I'm impressed.
 
well, I don't really like most procedural generation. It always seems like most of the variables turn out to be useless
also, I have no idea what this is for. What is this for?
 
I do not comprehend how that image answers my question, but I'm gonna assume it does
or should I say, I'm gonna imagine it does
 
I think we're doing this as a simple thought experiment because imagining things is fun. :P
I heard no mention of an actual project anywhere in the discussion.
 
4:35 PM
oh... well I was getting all excited for programming it
(even though I probably would never get around to it, just like that terrain generation project I never started)
 
But if we actually code it we'll have language wars!
Which language is best?!
I've tried to not hate Javascript. Oh, how I've tried. Typescript enabled me to accomplish that.
 
@NexTerren eeeew
Typescript is like soldering tires to a horse
 
@DaaaahWhoosh TypeScript is allowing strongly typed aspects! And you can insert normal, straight Javascript wherever you want, so it never holds you back. And it compiles down to Javascript so you can debug Javascript, and there are tools to reverse connected it to the Typescript, so you can debug that as well. And if you ever decide to go back to raw Javascript you can just take the complied Javascript file and move on with your life.
What's not to love?!
Unless you're just a dirty coder or have this unnatural and demonic hatred for strong types (ignoring some projects but for those sort of projects... why are you using JavaScript?!), what wouldn't you like about it?
 
it just seems like it's solving a problem I don't usually have with Javascript
I don't want to learn a whole nother language to put on top of a language I already know, nor do I want to worry about all the compilers/translators/debuggers you have to mess with
 
I have the problem whenever I read somebody else's code, or reread old code I wrote. Strongly typed code forces away several readability errors and stomps out various bugs. I mean, even the creators of Javascript agree, with ES6 moving in the same direction as Typescript.
 
4:49 PM
@James Though it could make for an interesting village where there are a bunch of deposed nobles living with chickens.
 
Well, I mean. It's not a whole other language. You can learn 80% of it in an afternoon--no kidding--if you're already comfortable with JavaScript. And the compilers just... hit a button and you get your .js and .min.js.
 
@NexTerren eh, I tried once, it just seemed silly. I guess I'd need to work on a bigger project with it to get a feel for its usefulness
 
@DaaaahWhoosh I'm doing it for fun.
 
@DaaaahWhoosh I mean, absolutely it depends on the scope. Making a webpage with JavaScript there's no point. Making a web app on the other hand...
I mean Google's Angular 2 assumes you're using TypeScript.
 
@NexTerren yeah, that's the main reason I tried to learn it. But at my job I'm getting further and further from the front end
and they're trying to change the back end these days, so I don't think we'll make the jump to Angular 2 for a long time
 
4:53 PM
Fair enough there.
 
Maybe I should start looking for a job as a front-end developer, those were pretty fun times
@Green yeah, I think I'd want to do this for fun too. I guess James was the one who had the original idea, then?
 
I really enjoy reasoning about the kind of complexity we are attempting to grapple with here.
..and most everyone knows humans well enough to be able to tell when something is off with a generated NPC. (which raises the interesting possibility that 'being off' is a signal in game play. perhaps.)
 
there was a game I saw on Steam that seemed to have really good NPC psychology. Most of the reviews were just stories about things that happened to the settlement, of the NPCs and their interactions
forget what it was called, but it seemed like a really good time, like Dwarf Fortress only with NPCs that were interesting
 
5:54 PM
@DaaaahWhoosh Well...creating worlds really. If it actually worked we could sell it to ...Bethesda, I mean seriously all the settlers in FO4 are named Settler
Ok lets brainstorm the 20 personality traits and start there. I will add them to an excel sheet I have up
 
6:10 PM
does it have to be 20?
at least make it a power of 2
 
Not really I suppose, that's just a number I pulled out of my ass
 
honestly, that doesn't sound like the best source for ideas
unless you like eating textbooks
 
...there's a "nugget of wisdom" joke here somewhere
So yeah anyway poop jokes aside start listing off traits
 
Social Status is the only thing I have on the list thus far.
 
6:14 PM
Friendliness to Strangers
Racism
Religiousness
Laziness
Knowledge
Ability to learn
Memory
Selfishness
 
I added STR/DEX/CON/INT/WIS/CHA to the list
 
Satisfaction with life
 
I added Piety
 
@James Eh, SDC/IWC is so mundane.
 
Is there a parent to, Ability to learn, Memory, knowledge?
 
6:16 PM
Are you sure that you don't want to go with something more... SPECIAL?
 
lol
 
@James I want them to be separate
but you could go with INT
 
Vault Boy isn't impressed with you.
 
Ill jot down everything and we can sort/categorize it later
 
Liberal/Conservative
Desire to Murder Someone
Dog/Cat Person
Health?
 
6:19 PM
@DaaaahWhoosh that's constitution
 
ah, I was wondering what that stood for
 
Optimist/Pessimist
Extrovert/Introvert
Shy/Bold
Fearful/Courageous
 
got em
 
Leader/Follower?
 
...Man/Parasite
 
6:21 PM
@DaaaahWhoosh for sure
 
<<Insert Andrew Ryan quote here>>
 
@DaaaahWhoosh or should that be derivative from other attributes?
Whatever I will write it down, we can figure out where to draw the lines later
 
@NexTerren would you kindly leave Bioshock out of this?
 
@DaaaahWhoosh A MAN CHOOSES, A SLAVE OBEYS
 
So for example a Courageous, Bold, Extrovert could well be a leader...
and if that leader is also a peasant farmer and progressive (liberal) then he could end up being a rebellion leader...
...who likes dogs
 
6:25 PM
whoo...f!
 
we have....Social Status
Age
Piety
Work Ethic
Social Accepting
Intelligence
Strength
Constitution
Dexterity
Wisdom
Charisma
Ability to learn
Memory
Selfless/Selfish
Traditional/Progressive
Violent/Peaceful
Optimist/Pessimist
Extrovert/Introvert
Fear/Courage
Lead/Follow
Vices
what else
crap meeting, back in a few
(that's not a trait)
 
Happy/Sad should be a somewhat permanent characteristic
depressed people will be more likely to make life changes or get addicted to stuff
 
@DaaaahWhoosh I always connected happiness as a passing trait, with 'joy' the less fleeting, more stable emotion. Not sure what the opposite of joy is, though.
Or 'contentment' if you don't like 'joy,' but that sounds almost baseline rather than positive.
 
I don't know, I'd say that's one of the defining characteristics of someone. You have a life, and as time goes on your life becomes pretty much the same thing every day, and you can either be happy or sad about how things turned out.
like there's people who hate their lives and go out to get drunk every night to forget about it. You don't want to be stuck sitting next to such people. Then there's people who've achieved an inner peace, and they wake up with a smile every day, and share that joy with everyone they meet.
 
Isn't that more optimistic/pessimistic? One takes the mundane and normal and is positive about it, the other goes and gets drunk, or blames the world, or whatever.
 
6:35 PM
I guess that's a decent point. But sometimes people are just in a bad situation, and are sad in a logical way because of it
I think of optimism/pessimism as more of an irrational response to things
I guess they're both pretty similar, I don't think they're the same but there's not enough difference to keep both
 
Hmmm.
 
maybe happy/sad is the parent? If you're sad, you're probably a pessimist because of it?
 
I don't know, honestly.
 
well, either way, at least one of them is important
ooh, and what about favorite color?
 
lol
a fine detail.
 
6:47 PM
perhaps a sense of humor would be useful.
or, a sense of one's sense of humor
 
sense of humor added
 
perhaps appreciation for beauty. Like if you're selling them things, do they care how they (the things) look, or just how useful they are?
 
Martial Prowess?
 
The theory of multiple intelligences is a theory of intelligence that differentiates it into specific (primarily sensory) 'modalities', rather than seeing intelligence as dominated by a single general ability. This model was proposed by Howard Gardner in his 1983 book Frames of Mind: The Theory of Multiple Intelligences. Gardner articulated eight criteria for a behavior to be considered an intelligence. These were that the intelligences showed: potential for brain isolation by brain damage, place in evolutionary history, presence of core operations, susceptibility to encoding (symbolic expression...
 
@James I don't think we should get into skills, there's too many of them for NPCs
 
6:53 PM
true
 
and I don't think they have much interaction with these other attributes
 
So we need to differentiate base into from derived info. Base info would be, Gender, Age, Mental Attributes (intelligence/wisdom), physical attributes (Str/Dex/Con), personality attributes (charisma), what else would be born with qualities?
 
To touch back upon my link, it's a somewhat more scientific way of describing "Intelligence, charisma, wisdom" and a few other mental traits.
Not sure how that meshes with codability or end user experience, though.
 
@NexTerren seems like it'd be a great way to define the player, maybe not the NPCs though
 
@NexTerren That may be a good base though...reading now
 
7:12 PM
@NexTerren I heard about this a long time ago. It has been a good explanatory model for why some people are really good at one thing but not another.
I've also found the Strengths Finder model to be very helpful.
 
7:49 PM
Could we base our generator on this: en.wikipedia.org/wiki/Category:MBTI_types
 
@James nooo I mean probably, but I seem to recall that test doesn't work
 
@DaaaahWhoosh I always felt (at least personally) it was pretty accurate.
 
33
Q: What does Myers-Briggs Type Indicator tell about a person?

SumaDoes Myers-Briggs Type Indicator tell something objective and predictive about the persons decision making tendencies? In other words, can a Myers-Briggs score give you useful information about what decisions a person is likely to make in future scenarios, or about his/her abilities?

but in this case, I guess it just goes back to what we want
what are the use cases for this generator?
 
...creating NPCs?
 
right, but we aren't creating real people, so what are the NPCs going to be used for?
are we hiring them, or are they hiring us?
or are they just interacting with one another?
 
8:13 PM
@James I would add socio-economic history.
 
8:34 PM
@Green Would that be covered by social status (available options being: Royal, Noble, Knight, Soldier, Merchant and peasant (each having sub categories))
 
@James I don't think so. Someone who was a soldier then a merchant will have a different approach/outlook than someone who was an soldier then an engineer. Certain habits will carry forward from the soldiering days that will change the NPC's approach to their current profession.
 
True enough
 
Ie, you can almost always tell someone who used to be a US Marine. The way they hold themselves, their approach to life in general. Their time in the Marines changes their approach, regardless of whether they are now a shop keeper or a grissled software developer.
 
Yeah marines are real real obvious in civilian life.
 
@James More subtly, someone who worked on designed and deployed telecom equipment will have a different software development approach than someone who has just played around with toy Ruby on Rails projects. It's still software in both cases but radically different outcomes.
Even people of equivalent amounts of experience will be very very different.
I kind of wish we had a priorities hierarchy in here. What's more important to this NPC, do be fast or correct? To be right (and acknowledged as right) or to be at peace with one's neighbors.
 
8:41 PM
hmmm...that's a challenge
 
@James HA! :)! Dude, this whole thing is a challenge.
Let's not pretend this is easy in any way.
If we aren't worried about determining an NPCs actions in real time, and we are just interested in their history then we don't need a priority hierarchy.
In fact, we may be able to derive their priorities from their life history. Damn! It strikes me that with the priority inference functionality we might build, is functionality that many humans lack.
 
perhaps we need to define types of attributes. Things that they are, things that they want, things that they've done. Then as we add sub-attributes we can connect them all together
 
@Green Are we building a warped weird version of skynet?
 
@James Not unless we give it the nuclear launch codes. Then it will be skynet.
 
8:56 PM
@Green Oh right. Good thing we don't have those. That feels like a mistake we would make.
 
@James This being WB, we very well might :)
Given that we flippantly talk about throwing giant rocks at planets with rich ecosystems, we might do any number of things.
 
@Green All of them stupid :P
@Green Can I put you down for podcast episode 1?
was thinking we could discuss this little effort.
 
@James Sure. Any idea when it might be? Fridays, Saturdays and Sundays usually work well for me.
 
@Green No idea at this point. What time zone are you in?
 
@James Eastern. Boston.
 
9:09 PM
Good that's not biggie I am CST
Sunday night might be a good time once my kids go to bed...so I'd be free after 9CST/10EST
@NexTerren @DaaaahWhoosh did you two want to participate in the cast episode 1
 
@James I don't want to crowd somebody else out, but I'd certainly enjoy it.
 
Green and I were just discussing making this little side project the main discussion topic
 
I'm CST. I can only comment on my availability this weekend later this week. Normally I'm free Tuesday evenings, Friday evenings, Saturdays, Sundays (except evenings), and every other Friday (not this Friday), all day.
 
well we have some time to get this sorted out. there is still plenty of technical stuff to get set up.
Ill mark you as tentative.
 
Yeah, JD needs to head up the technical front first.
 
9:26 PM
Have we nailed down a conferencing service and if this will be video or just audio?
 
@Green come over to Universe factory so we can consolidate this convo: chat.stackexchange.com/rooms/27736/universe-factory
 
10:00 PM
Question: what problem does this solve? If I'm writing a story and I want to include a realistic medieval town, couldn't I just do some research, find a real town, and base my characters off of that?
 
The NPC generator?
I believe it's theoretically for a game to consume/use.
 
And if I want my characters to meet another character on the road, shouldn't I base that character on the plot of the story (i.e. My characters will need shoes, they meet a cobbler)
 
It started out about a discussion on No Man's Sky and their procedural planet generation. A few of us thought that NPC procedural generation (including personality) would be interesting.
Not all world building is writing world building.
Does that offer some context?
 
@NexTerren I think dwarf fortress does something similar
 
Random or procedural NPCs? I think it's random, and the NPCs are very shallow. DaaaahWhoosh and James were going for something considerably deeper.
I don't think they're actually going to code it (maybe they are), they just wanted to think through the process, and so they spun off a side chatroom to talk about it.
 
10:06 PM
Then your talking about a personality simulator? Deciding what personality someone has is easy, but simulating it is hard
Thanks for the context though
 
@Hamlet Right, I agree and said something along those lines. Once they generate the framework on how to create the personality organically, actually having them act on it is going to be the biggest challenge.
 

  last day (15 days later) »