Dividing the Population

I’ve been thinking for a long time about how to split up populations. There are many possibilities: race, class, faction, alignment, level, profession (distinctly different from faction), and so on.

In D&D 3.x these appear to be handled pretty inconsistently.


Before delving too deeply into solutions, let’s think a bit about what has come before.

Demographics in D&D 3.x

Racial demographics are handled by determining the degree of racial mix in the community.  Taken from the D&D 3e Dungeon Master’s Guide (I think the 3.5 DMG is slightly different, but it’s upstairs).

Isolated Mixed Integrated
96% human 79% human 37% human
2% halfling 9% halfling 20% halfling
1% elf 5% elf 18% elf
1% other races 3% dwarf 10% dwarf
2% gnome 7% gnome
1% half-elf 5% half-elf
1% half-orc 3% half-orc

Of course, there are allowances for communities of other races.  An ‘elven city’ wouldn’t be populated mostly by humans (oh, but it might!  See below), so ‘elves’ move to the top entry by integration, humans are put in second place, then everything else settles down.

On the other hand, classes are determined by first finding the highest level character for each class, the calculating a ‘tree’ of lower-level characters of that class until you get to first level.  Then you take whatever’s left of the community and divide that up by NPC class (91% commoners, 5% warriors, 3% experts, 0.5% aristocrats and 0.5% adepts), all first level.

There aren’t particular guidelines for determining faction or profession, and alignment is kind of iffy as well, having a single table for ‘power centre’ alignment but not much else.

This really isn’t to my taste.  Too many pieces to remember, tables that are inconsistent, and I have decided in my advancing age that I no longer much care about single-digit percentage differences in application.

In analysis I might care, and you’ll see some fractional percentages soon, but in actual application I don’t want to bother.

Triangle Numbers

I have long been a fan of ‘triangle numbers’.  For instance, if you want an asymmetric roll from 1..3, you could do worse than rolling d6 and treating a roll of 1..3 as a 1, 4..5 as a 2, and 6 as a 3.  Your frequency graph is ‘triangular’.  If you want four numbers, a d10 will work for you — 1..4 = 1, 5..7 = 2, 8..9 = 3, 10 = 4.  Sadly, five (15 slots, but no d15) and 6 (21 slots, no d21) don’t quite work.  d20 is pretty close to d21, though.

d20 Almost Triangle

I’ve started using d20, with the following mapping, for splitting populations in various ways.

d20 Roll Value % Chance
1..5 1 25%
6..10 2 25%
11-14 3 20%
15-17 4 15%
18-19 5 10%
20 6 5%

I can assemble these as needed to address most combinations I might want.  That I can’t exactly model the Racial Demographics table above — in one step — is not a bad thing in my mind.

Of course, if I want to make it slightly more complicated, I can use two dice in conjunction to get up to 0.25% selection — or only do that for some rolls.

d20\d20 1..5 6..10 11..14 15..17 18..19 20
1..5 25/400 = 6.25% 25/400 = 6.25% 20/400 = 5% 15/400 = 3.75% 10/400 = 2.5% 5/400 = 1.25%
6..10 25/400 = 6.25% 25/400 = 6.25% 20/400 = 5% 15/400 = 3.75% 10/400 = 2.5% 5/400 = 1.25%
11..14 20/400 = 5% 20/400 = 5% 16/400 = 16% 12/400 = 3% 8/400 = 2% 4/400 = 1%
15..17 15/400 = 3.75% 15/400 = 3.75% 12/400 = 3% 9/400 = 2.25% 6/400 = 1.5% 3/400 = 0.75%
18..19 10/400 = 2.5% 10/400 = 2.5% 8/400 = 2% 6/400 = 1.5% 4/400 = 1% 2/400 = 0.5%
20 5/400 = 1.25% 5/400 = 1.25% 4/400 = 1% 3/400 = 0.75% 2/400 = 0.5% 1/400 = 0.25%

I don’t really consciously work with the percentages.  I quickly multiply the frequencies together to see what I’m dealing with, just to make sure I don’t end up with unexpected frequencies (such as more elves than human fighters).


As may (and should) be evident, there are many ways this can be applied.

Determining Race

Determining race.  In a simple way, you could assign various races to each entry in the d20 table.  Your most common race probably takes up one or two of the biggest entries, then you can allocate the rest as needed.  You might subdivide one or more entries (such as in an isolated community, ’20’ might indicate nonhuman, and then a second roll to determine what kind).  You might consider culture in addition to race — the two biggest slots might be ‘Saxon’, but the second-smallest might be the (currently) ruling Normans.  Both are human, but there is a division evident.  60% are human (fully 50% are Saxon, only 10% are Norman).  The remaining 40% might be other races (the dwarves are in the 15% slot because they maintain relations with this community, the halflings might be in the 20% slot but are not a major power, and the elves might be in the 5% slot because they are around but not really evident).

In a drow community you might have 20-25% of the population drow, and the rest are servants, slaves, and persistent visitors or prisoners of various other races.  As I mentioned, it’s possible to have the dominant race not be the most populous in the area.

Determining Class

You could assign different classes (again, most common in the biggest slots) to the various slots.  Subdivide for various groups.  You might have 15% for ‘standard elite’ classes (split up between fighter, wizard, cleric, rogue) and 5% for ‘more elite classes’ (paladin, monk, and so on), but because this is a ‘monastic settlement’ you might have fully 10% being monks.  Rather than trying to mess with the frequencies indirectly by changing how the highest-level character in each class is found, then building the trees, and messing with various frequencies and multipliers and so on, simply change the allocation between the various slots.

Determining Level

Level can be similarly determined.  In Echelon terms, very few ‘normal people’ are likely to exceed fourth level (Basic Tier).  Roll the d20 ‘almost triangle’ describe above, and you will have 25% ‘first level’ (children, untrained apprentices, and so on), 25% second level (apprentices, youths), 20% third level (journeymen, mostly-trained craftsmen and professionals), and 15% fourth level (master tradesment).  Fully 85% of this part of your non-adventuring population is no more than fourth level, which is consider less than D&D 3.x ‘first level’.  15% might be considered the analogue of a first or second level adventurer.

This does not need to be applied consistently for all classes.  ‘NPC classes’ might have their levels determined as above, everyone else one tier higher (levels 5..10, or 1..6 in D&D terms).  You might mix it up a little more, with ‘common elite’ one tier higher than NPC classes, ‘uncommon elite’ two levels higher than that, and monks another tier higher (this is a monastic town, after all).  If you have an entry for prestige classes (most are NPC classes, 15% are ‘common elite’, 10% are ‘more elite’, 5% are members of prestige classes) they might be a tier above the common and more elite classes (have to be in order to meet the requirements for prestige classes).

Determining Factions, Alignment, Patron Gods, Trades, Nationalities, Social Class, Professions, and so On

As may be evident, the various ways of dividing people up can be done in similar manner.

Closing Comments

I think this provides an easily managed way of dividing populations up in a number of different ways, while being consistent in how the technique is applied.  While it is a good idea to keep notes on how the pieces are split up (write down the tables created!) it doesn’t require the same mental effort to remember what entry you are working with.  No more single-digit percentages, a standard table of effect (1..5, 6..10, 11..14, 15..17, 18..19, 20), and if you can remember just the relative size of the various entries you can largely recreate the tables if needed.

Also, if you find you do need precise percentages, they are easy to work out.  In a single d20 table it’s 25, 25, 20, 15, 10, 5.  In a double d20 table it is somewhat more complex — there are 36 entries after all, and fractional percentages — but it is very easy to figure the precise percentage chance of any particular combination (multiple two numbers no bigger than 5, then divide by 4, and you have your percentage).  A triple d20 table would clearly be more effort, but I have never felt the urge to create one — if only because I don’t know a good way to represent it in my notes!

No related content found.

1 Comment to "Dividing the Population"

  1. September 1, 2012 - 3:06 pm | Permalink

    2dN gives a naturally triangular distribution if that’s any help (peak is in the centre mind).

    PS: it doesn’t seem to be possible to login using FF on kjd-imc.org; works fine on echelond20.org though, also fine in IE and Chrome.

Leave a Reply