I’m gradually figuring out the character generator for Homestead. My prototype had some problems built into it which required some rethinking, but I believe I’ve come to a good solution. The less wordful version is that I’ve managed a good chunk of progress by sitting down and having a good ponder, and I think all that remains is to finish up the rest of it before building something I can use to test it.
The more wordful version is how I’ve been thinking of resolving nationality, languages, and ethnicity. It’s not something that can be added later without (as I have discovered) a lot of code rewriting, so it’s a good thing to get it in early. I also think it’s a good thing to track that adds depth; teaching staff to read and write in the native language is a strong character facet and a good potential area to bond with them. A fox girl that you’ve taught to read and write will have a lot to be thankful for, as an example.
The problem: Determining where a person is from in order to simulate their name, ethnicity, whether they can speak the local language (which I’ll call Common here), and how well. The logical thing, at least I thought so at first, is to look at gender, then ethnicity, native language, then from those choose suitable name and figure out the probability from there how well that person can speak Common. The trouble is that with this approach is that its unecessarily concerned with race as it relates to their birthplace and how that translates to nationality, as well as adding a lot of extra steps.
The solution: Infer everything in reverse order by accent. During generation, give a character a gender and an ethnicity, be it skin colour or species, and from that give them an accent based on likelihood. Everyone has an accent, and from it we can infer everything else: the likelihood they speak Common, to what degree, and pick from a tidy list of workable names for them. This makes things cleaner to program as well as putting nationality on the sidelines, because ultimately it means nothing. For instance, an American might speak with a Nigerian accent since they could have been born in America and raised by parents who spoke Hausa. The fact that they’re American tells us nothing. Rather than needing an enormous number of varying name lists to cover every possible name for an American, I can work from their accent and determine more easily what their name could be, and how probable it is that they speak a certain language. For clarity, this game’s not set on Earth, obviously, but this makes it a much simpler way to generate a character’s biography.
It seems simple enough, but it was a problem that baked my brain a bit. As I’m learning, and have been talking to my programming betters, learning the shortest path through inference to the desired result is a good skill to have. Anyway, I know it’s hardly horny stuff but pretty much all the sexual things are done already as far as character generation goes.
Until next time!