Tuesday, June 24, 2014

AD&D Demographic Data

I like simulation. I like it when the game rules imply things about the setting, or vice versa. One of the D&D assumptions is that random people are "rolled up" by the 3d6 in order method. PCs might be different, but that doesn't mean that the setting as a whole is.

When working on figuring out what the rules imply about the setting, one thing I noticed is that there isn't a good, reliable accounting of how many people in a given setting are members of which character classes. Gary Gygax seems to have just made something up for his table in the DMG, and no one has bothered to improve much on that intuitive method.

But we know some things. According to the DMG, 1 person in 100 has a chance of having a character class. Of those 1%, though, there will be different numbers of randomly-rolled characters who qualify for each of the various classes.

Now, sure, we can just make something up and deal with that. That works, and is fine. But if we had a better way available… why not use it?

All of the numbers involved have a mathematical probability. It just takes a lot of effort to work out if done manually (trust me, that's how I started to approach this). A computer program, though, can work through all of the possibilities in just minutes or seconds. So I wrote one. Here's the raw data regarding the basic AD&D 1E classes (excepting the Bard, which is more a matter of choice; suffice it to say that Bards are extraordinarily rare in AD&D 1E). This set of data does not include the UA classes at all, though if someone requests it I could probably put that together. It also doesn't include anything about demihumans. I haven't consolidated that information yet, and there are some characteristic maximums to deal with that I would have to write into the program, not to mention the characteristic modifiers that change probabilities around.

The data is in the following format: an ID#, the name of the classes that qualify under that ID#'s set of characteristics, and the characteristics themselves, then on the next line it gives the probability of a random roll of 3d6 in order qualifying for that set of statistics, and finally on the last lines a list of the ID#s that qualify for the ID#, but include one or more stats that are higher (all of the probabilities of those ID#s are included in the probability listed, so they have to be subtracted out). My purpose for all of this is to work out what classes a given set of stats can qualify for, subtracting the probabilities of the higher sets from that of the lower sets that they also qualify for. Then, the probability of each set of stats will be divided among the set of classes. I'm also thinking about ways to modify the software to do that work for me, but I don't know if I'll be able to do that with my level of programming skill.

I don't plan to do this myself for the raw AD&D classes (unless I can work out how best to code it), so I'm giving that data out for someone who might be interested in doing so. There are only 76 sets that qualify for different groups of classes in AD&D, so it probably wouldn't take all that long to work through them. The data I'm working with includes over 500 distinct ID#s, divided into three main groups to cover the three main culture groups so far in the Middle Sea world, so I have my work cut out for me. It's nowhere near as imposing as it was before I wrote this program, though.

Data after the cut. Remember that it is the raw data as described above. I am also willing to take any set of classes and stat requirements and do the same for others, since the software is easily modified for just about anything. It won't easily handle very complex things, though, like requirements that one of several stats be above a value, but the other stats of that set only need to be of a lower value (like the Psionicist, which requires a 10 in Int, Wis, and Cha, but at least one must be 16, which particular case I did work out for my own use, but requires more modification of the basic program than just plugging in a set of classes). Drop me a line if you want this kind of data.


ID# 1 Assassin  S12 I11 W6 D12 Co6 Ch3
0.0639527887106
3 5 7 9 11 13 15 17 19 21 23 25 33 35 36 37 41 42 44 45 47 49 50 51 52 53 54 55 57 58 59 60 

ID# 2 Cleric  S6 I6 W9 D3 Co6 Ch6
0.612801909447
3 4 5 8 9 10 11 14 15 16 17 20 21 22 23 26 27 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 62 63 65 66 68 69 71 72 73 74 75 76 

ID# 3 Assassin Cleric Magic-User Thief  S12 I11 W9 D12 Co6 Ch6
0.047372430563
5 9 11 15 17 21 23 33 35 36 37 41 42 44 45 47 49 50 51 52 53 54 55 57 58 59 60 

ID# 4 Cleric Druid  S6 I6 W12 D6 Co6 Ch15
0.02872508578
5 10 11 16 17 22 23 27 30 34 35 37 39 40 41 42 43 44 45 48 49 51 53 55 56 57 58 59 60 63 66 69 72 73 75 76 

ID# 5 Assassin Cleric Druid Magic-User Thief  S12 I11 W12 D12 Co6 Ch15
0.00232837814838
11 17 23 35 37 41 42 44 45 49 51 53 55 57 58 59 60 

ID# 6 Fighter  S9 I3 W6 D6 Co7 Ch6
0.583054184914
7 8 9 10 11 18 19 20 21 22 23 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 64 65 66 70 71 72 73 74 75 76 

ID# 7 Assassin Fighter Magic-User Thief  S12 I11 W6 D12 Co7 Ch6
0.0580312386155
9 11 19 21 23 33 35 36 37 41 42 44 45 47 49 50 51 52 53 54 55 57 58 59 60 

ID# 8 Cleric Fighter  S9 I6 W9 D6 Co7 Ch6
0.431892037392
9 10 11 20 21 22 23 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 65 66 71 72 73 74 75 76 

ID# 9 Assassin Cleric Fighter Magic-User Thief  S12 I11 W9 D12 Co7 Ch6
0.0450727976859
11 21 23 33 35 36 37 41 42 44 45 47 49 50 51 52 53 54 55 57 58 59 60 

ID# 10 Cleric Druid Fighter  S9 I6 W12 D6 Co7 Ch15
0.0212277043611
11 22 23 30 34 35 37 39 40 41 42 43 44 45 48 49 51 53 55 56 57 58 59 60 66 72 73 75 76 

ID# 11 Assassin Cleric Druid Fighter Magic-User Thief  S12 I11 W12 D12 Co7 Ch15
0.00221535004675
23 35 37 41 42 44 45 49 51 53 55 57 58 59 60 

ID# 12 Illusionist  S6 I15 W6 D16 Co3 Ch6
0.00371845788322
13 14 15 16 17 18 19 20 21 22 23 31 36 37 42 45 50 51 54 55 58 60 

ID# 13 Assassin Illusionist Magic-User Thief  S12 I15 W6 D16 Co6 Ch6
0.00139442156069
15 17 19 21 23 36 37 42 45 50 51 54 55 58 60 

ID# 14 Cleric Illusionist Magic-User Thief  S6 I15 W9 D16 Co6 Ch6
0.00275441352278
15 16 17 20 21 22 23 36 37 42 45 50 51 54 55 58 60 

ID# 15 Assassin Cleric Illusionist Magic-User Thief  S12 I15 W9 D16 Co6 Ch6
0.00108304596506
17 21 23 36 37 42 45 50 51 54 55 58 60 

ID# 16 Cleric Druid Illusionist Magic-User Thief  S6 I15 W12 D16 Co6 Ch15
0.000135380760184
17 22 23 37 42 45 51 55 58 60 

ID# 17 Assassin Cleric Druid Illusionist Magic-User Thief  S12 I15 W12 D16 Co6 Ch15
5.32322301297e-005
23 37 42 45 51 55 58 60 

ID# 18 Fighter Illusionist Magic-User Thief  S9 I15 W6 D16 Co7 Ch6
0.0026207040064
19 20 21 22 23 36 37 42 45 50 51 54 55 58 60 

ID# 19 Assassin Fighter Illusionist Magic-User Thief  S12 I15 W6 D16 Co7 Ch6
0.00132673117332
21 23 36 37 42 45 50 51 54 55 58 60 

ID# 20 Cleric Fighter Illusionist Magic-User Thief  S9 I15 W9 D16 Co7 Ch6
0.00203549815342
21 22 23 36 37 42 45 50 51 54 55 58 60 

ID# 21 Assassin Cleric Fighter Illusionist Magic-User Thief  S12 I15 W9 D16 Co7 Ch6
0.00103047082666
23 36 37 42 45 50 51 54 55 58 60 

ID# 22 Cleric Druid Fighter Illusionist Magic-User Thief  S9 I15 W12 D16 Co7 Ch15
0.000100045719591
23 37 42 45 51 55 58 60 

ID# 23 Assassin Cleric Druid Fighter Illusionist Magic-User Thief  S12 I15 W12 D16 Co7 Ch15
5.06481446791e-005
37 42 45 51 55 58 60 

ID# 24 Magic-User  S3 I9 W6 D6 Co6 Ch6
0.612801909447
3 5 7 9 11 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 67 68 69 70 71 72 73 74 75 76 

ID# 25 Assassin Magic-User Thief  S12 I11 W6 D12 Co6 Ch6
0.0609920099378
3 5 7 9 11 13 15 17 19 21 23 33 35 36 37 41 42 44 45 47 49 50 51 52 53 54 55 57 58 59 60 

ID# 26 Cleric Magic-User  S6 I9 W9 D6 Co6 Ch6
0.453927338123
3 5 9 11 14 15 16 17 20 21 22 23 27 29 30 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 68 69 71 72 73 74 75 76 

ID# 27 Cleric Druid Magic-User  S6 I9 W12 D6 Co6 Ch15
0.0223107486963
5 11 16 17 22 23 30 35 37 39 40 41 42 43 44 45 48 49 51 53 55 56 57 58 59 60 69 72 73 75 76 

ID# 28 Fighter Magic-User  S9 I9 W6 D6 Co7 Ch6
0.431892037392
7 9 11 18 19 20 21 22 23 29 30 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 70 71 72 73 74 75 76 

ID# 29 Cleric Fighter Magic-User  S9 I9 W9 D6 Co7 Ch6
0.335450083017
9 11 20 21 22 23 30 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 71 72 73 74 75 76 

ID# 30 Cleric Druid Fighter Magic-User  S9 I9 W12 D6 Co7 Ch15
0.0164875350893
11 22 23 35 37 39 40 41 42 43 44 45 48 49 51 53 55 56 57 58 59 60 72 73 75 76 

ID# 31 Illusionist Magic-User Thief  S6 I15 W6 D16 Co6 Ch6
0.00354630709626
13 14 15 16 17 18 19 20 21 22 23 36 37 42 45 50 51 54 55 58 60 

ID# 32 Cleric Fighter Monk Thief  S15 I6 W15 D15 Co11 Ch6
0.000361015350791
33 34 35 36 37 38 39 43 44 45 52 53 54 55 59 60 

ID# 33 Assassin Cleric Fighter Magic-User Monk Thief  S15 I11 W15 D15 Co11 Ch6
0.000189270169358
35 36 37 44 45 52 53 54 55 59 60 

ID# 34 Cleric Druid Fighter Monk Thief  S15 I6 W15 D15 Co11 Ch15
3.50500340573e-005
35 37 39 43 44 45 53 55 59 60 

ID# 35 Assassin Cleric Druid Fighter Magic-User Monk Thief  S15 I11 W15 D15 Co11 Ch15
1.83757438208e-005
37 44 45 53 55 59 60 

ID# 36 Assassin Cleric Fighter Illusionist Magic-User Monk Thief  S15 I15 W15 D16 Co11 Ch6
1.75250152097e-005
37 45 54 55 60 

ID# 37 Assassin Cleric Druid Fighter Illusionist Magic-User Monk Thief  S15 I15 W15 D16 Co11 Ch15
1.70145767697e-006
45 55 60 

ID# 38 Cleric Fighter Magic-User Monk Thief  S15 I9 W15 D15 Co11 Ch6
0.000280400243355
33 35 36 37 39 43 44 45 52 53 54 55 59 60 

ID# 39 Cleric Druid Fighter Magic-User Monk Thief  S15 I9 W15 D15 Co11 Ch15
2.72233228316e-005
35 37 43 44 45 53 55 59 60 

ID# 40 Cleric Druid Fighter Magic-User Paladin  S12 I9 W13 D6 Co9 Ch17
0.000942144833971
41 42 43 44 45 56 57 58 59 60 73 76 

ID# 41 Assassin Cleric Druid Fighter Magic-User Paladin Thief  S12 I11 W13 D12 Co9 Ch17
0.000250057171797
42 44 45 57 58 59 60 

ID# 42 Assassin Cleric Druid Fighter Illusionist Magic-User Paladin Thief  S12 I15 W13 D16 Co9 Ch17
5.71689770368e-006
45 58 60 

ID# 43 Cleric Druid Fighter Magic-User Monk Paladin Thief  S15 I9 W15 D15 Co11 Ch17
5.44466502106e-006
44 45 59 60 

ID# 44 Assassin Cleric Druid Fighter Magic-User Monk Paladin Thief  S15 I11 W15 D15 Co11 Ch17
3.67514894606e-006
45 59 60 

ID# 45 Assassin Cleric Druid Fighter Illusionist Magic-User Monk Paladin Thief  S15 I15 W15 D16 Co11 Ch17
3.40291563816e-007
60 

ID# 46 Cleric Fighter Magic-User Ranger  S13 I13 W14 D6 Co14 Ch6
0.00160518102348
47 48 49 50 51 52 53 54 55 56 57 58 59 60 74 75 76 

ID# 47 Assassin Cleric Fighter Magic-User Ranger Thief  S13 I13 W14 D12 Co14 Ch6
0.000631163362414
49 50 51 52 53 54 55 57 58 59 60 

ID# 48 Cleric Druid Fighter Magic-User Ranger  S13 I13 W14 D6 Co14 Ch15
0.000155842819368
49 51 53 55 56 57 58 59 60 75 76 

ID# 49 Assassin Cleric Druid Fighter Magic-User Ranger Thief  S13 I13 W14 D12 Co14 Ch15
6.12779913354e-005
51 53 55 57 58 59 60 

ID# 50 Assassin Cleric Fighter Illusionist Magic-User Ranger Thief  S13 I15 W14 D16 Co14 Ch6
2.78290754068e-005
51 54 55 58 60 

ID# 51 Assassin Cleric Druid Fighter Illusionist Magic-User Ranger Thief  S13 I15 W14 D16 Co14 Ch15
2.70185182671e-006
55 58 60 

ID# 52 Assassin Cleric Fighter Magic-User Monk Ranger Thief  S15 I13 W15 D15 Co14 Ch6
3.18046550092e-005
53 54 55 59 60 

ID# 53 Assassin Cleric Druid Fighter Magic-User Monk Ranger Thief  S15 I13 W15 D15 Co14 Ch15
3.08783046421e-006
55 59 60 

ID# 54 Assassin Cleric Fighter Illusionist Magic-User Monk Ranger Thief  S15 I15 W15 D16 Co14 Ch6
5.6794028751e-006
55 60 

ID# 55 Assassin Cleric Druid Fighter Illusionist Magic-User Monk Ranger Thief  S15 I15 W15 D16 Co14 Ch15
5.51398329662e-007
60 

ID# 56 Cleric Druid Fighter Magic-User Paladin Ranger  S13 I13 W14 D6 Co14 Ch17
3.11685653287e-005
57 58 59 60 76 

ID# 57 Assassin Cleric Druid Fighter Magic-User Paladin Ranger Thief  S13 I13 W14 D12 Co14 Ch17
1.22555993585e-005
58 59 60 

ID# 58 Assassin Cleric Druid Fighter Illusionist Magic-User Paladin Ranger Thief  S13 I15 W14 D16 Co14 Ch17
5.40370365343e-007
60 

ID# 59 Assassin Cleric Druid Fighter Magic-User Monk Paladin Ranger Thief  S15 I13 W15 D15 Co14 Ch17
6.17566115579e-007
60 

ID# 60 Assassin Cleric Druid Fighter Illusionist Magic-User Monk Paladin Ranger Thief  S15 I15 W15 D16 Co14 Ch17
1.10279671617e-007


ID# 61 Thief  S6 I6 W3 D9 Co6 Ch6
0.612801909447
3 5 7 9 11 13 14 15 16 17 18 19 20 21 22 23 25 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 

ID# 62 Cleric Thief  S6 I6 W9 D9 Co6 Ch6
0.453927308321
3 5 9 11 14 15 16 17 20 21 22 23 32 33 34 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 63 65 66 68 69 71 72 73 74 75 76 

ID# 63 Cleric Druid Thief  S6 I6 W12 D9 Co6 Ch15
0.0223107468337
5 11 16 17 22 23 34 35 37 39 41 42 43 44 45 49 51 53 55 57 58 59 60 66 69 72 73 75 76 

ID# 64 Fighter Thief  S9 I6 W6 D9 Co7 Ch6
0.431892007589
7 9 11 18 19 20 21 22 23 32 33 34 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 65 66 70 71 72 73 74 75 76 

ID# 65 Cleric Fighter Thief  S9 I6 W9 D9 Co7 Ch6
0.33545011282
9 11 20 21 22 23 32 33 34 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 66 71 72 73 74 75 76 

ID# 66 Cleric Druid Fighter Thief  S9 I6 W12 D9 Co7 Ch15
0.0164875350893
11 22 23 34 35 37 39 41 42 43 44 45 49 51 53 55 57 58 59 60 72 73 75 76 

ID# 67 Magic-User Thief  S6 I9 W6 D9 Co6 Ch6
0.453927308321
3 5 7 9 11 13 14 15 16 17 18 19 20 21 22 23 25 31 33 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 68 69 70 71 72 73 74 75 76 

ID# 68 Cleric Magic-User Thief  S6 I9 W9 D9 Co6 Ch6
0.352564930916
3 5 9 11 14 15 16 17 20 21 22 23 33 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 69 71 72 73 74 75 76 

ID# 69 Cleric Druid Magic-User Thief  S6 I9 W12 D9 Co6 Ch15
0.0173287373036
5 11 16 17 22 23 35 37 39 41 42 43 44 45 49 51 53 55 57 58 59 60 72 73 75 76 

ID# 70 Fighter Magic-User Thief  S9 I9 W6 D9 Co7 Ch6
0.33545011282
7 9 11 18 19 20 21 22 23 33 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 71 72 73 74 75 76 

ID# 71 Cleric Fighter Magic-User Thief  S9 I9 W9 D9 Co7 Ch6
0.260543763638
9 11 20 21 22 23 33 35 36 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 57 58 59 60 72 73 74 75 76 

ID# 72 Cleric Druid Fighter Magic-User Thief  S9 I9 W12 D9 Co7 Ch15
0.0128058521077
11 22 23 35 37 39 41 42 43 44 45 49 51 53 55 57 58 59 60 73 75 76 

ID# 73 Cleric Druid Fighter Magic-User Paladin Thief  S12 I9 W13 D9 Co9 Ch17
0.000731762906071
41 42 43 44 45 57 58 59 60 76 

ID# 74 Cleric Fighter Magic-User Ranger Thief  S13 I13 W14 D9 Co14 Ch6
0.00124674232211
47 49 50 51 52 53 54 55 57 58 59 60 75 76 

ID# 75 Cleric Druid Fighter Magic-User Ranger Thief  S13 I13 W14 D9 Co14 Ch15
0.000121042947285
49 51 53 55 57 58 59 60 76 

ID# 76 Cleric Druid Fighter Magic-User Paladin Ranger Thief  S13 I13 W14 D9 Co14 Ch17
2.42085898208e-005
57 58 59 60 

4 comments:

  1. Interesting, but I'm not clear on your use case. Once you figure out probability of a given Stat set for a class combination, how do you intend to use the data? Populate an area or for an NPC with Stat set of X randomly determine the class?

    ReplyDelete
    Replies
    1. By determining that x percent of the population will have set of stats gamma, and that gamma allows that percent of the population to choose from y classes, then I can divide gamma's percentage into y parts to figure out how many of the general population not only qualify for each class but choose to join each one. This will allow me to make a chart showing the percentage of the general, class-having population that is part of each class. In addition, I can insert those percentages into my handy-dandy demographic spreadsheet that will then output the numbers of each class that are at each level (based on a modified algorithm related to Delta's analysis at this link).

      Delete
  2. "Gary Gygax seems to have just made something up for his table in the DMG, and no one has bothered to improve much on that intuitive method."

    Please do not say no one.

    ReplyDelete
    Replies
    1. AH! Very nice work. You cover some other issues that I had just been handwaving and aren't dealt with in Delta's analysis either.

      Delete