Demographic generator -- more flexibility, fewer epic commoners, etc:

Post/Author/DateTimePost
#1

julescarv

Apr 08, 2008 23:48:40
Here's my basic idea for a demographic generator for NPCs:

NPCs of class k and level x = L(x) * C(k, x)

1: A level distribution L: It doesn't exist for any specific class -- it just denotes how many people there are of a given level. The sum of L(x) over all x from one to infinity is equal to 1. (although if, for instance, you don't want randomly generated NPCs of level 20 or higher, all levels beyond a certain point might have a fraction of zero)

2: A class distribution C: The class distribution may be related to level, although it it independent of the level distribution. (i.e., level is an independent variable for both functions, but the class distribution function does not contain the level distribution function as an input -- unless you're a weirdo) For any x, the sum of C(k, x) over all k is equal to 1.

Level distribution is a matter of taste. For a very low-level world, this function might be "fraction populace of level x = 0.9 * 0.1^(x - 1)." This would mean that the world is 90% level 1, 9% level 2, 0.9% level 3, 0.09% level 4, etc. People of level 7 or higher are literally one in a million, and in a typical preindustrial world of perhaps five hundred million souls, there's likely only one or two NPCs of level 10 or higher, if that.

Alternative demographics might be used for various circumstances -- for instance, one might say that elves, having time to experience life, are generally higher level than humans, and have a formula of 0.7 * 0.3^(x - 1) instead: that would mean level 7+ elves are one in 1,400 rather than one in a million. One might also use different demographics for different campaigns -- for a high-powered world, for instance, one might say that, instead of the typical commoner being level 1, level 1 is the norm for truly inexperienced children and such, and most responsible adult folks are level 2-4. One might create a binomial distribution with n = 18 and p = 1/6. In dice-rolling terms, this means that to determine someone's level, you effectively roll 18 d6s, and then count the number of sixes to determine the level of a random NPC. There would be a hump around level 3, with fewer people at level 1 or level 5.

Let's say that there are six classes: cleric, commoner, fighter, paladin, rogue, and wizard.

Say that you find the idea of a bunch of level 1 paladins and wizards unsatisfying -- paladins ought to be tough and heroic, not some so-so newbie warrior, and the idea of a wizard who hasn't mastered anything beyond silent image or burnings hands seems to be more like either an apprentice wizard who will eventually learn more powerful magic or a failed wizard, along the lines of Rincewind -- not the final state of a typical successful, robed, gray-bearded wizard.

Let's also say that you find the idea of a bunch of level 12 commoners a bit odd. Commoners should be proportionally scarcer as you get to higher levels, and proportionally more common as you go lower.

On the other hand, clerics, fighters, and rogues seem like they are equally at home throughout the distribution of levels, so a random sampling of level 15 characters would reveal the same proportion of clerics, fighters, and rogues as a random sampling of level 1 characters.

So the distribution of classes might be something along the lines of:

Cleric: 6%
Commoner: 80% - (4 * level)%
Fighter: 5%
Paladin: 2% + (level)%
Rogue: 7%
Wizard: (3 * level)%

This means that at level 1, you have 6% clerics, 76% commoners, 5% fighters, 3% paladins, 7% rogues, and 3% wizards.

At level 10, you have 6% clerics, 40% commoners, 5% fighters, 12% paladins, 7% rogues, and 30% wizards.

At level 20, you have 6% clerics, no commoners, 5% fighters, 22% paladins, 7% rogues, and 60% wizards.

This is just an example using a small selection of classes, of course, but I think you see the idea.

So, if we're using the level system that has 90% level 1, 9% level 2, 0.9% level 3, etc, and we're using the class system above, and we want to know the number of level 3 paladins, we multiply 0.009 (population fraction) by (0.02 + 0.03 = 0.05) (class fraction at given level), for 0.00045, or one in 2,222 people.
#2

roog

Apr 11, 2008 0:21:11
Here's my basic idea for a demographic generator for NPCs:

What would you use this for?