Wednesday, January 15, 2014

On Constructing Random Lists

I've published couple of random lists recently.  Which is a bit of a change from last year, when I would have thrown them into JavaScript and put them on the Utilities page.  Stellios over at d20DarkAges suggested in the comments that I could work in the entries from the Random Creatures from the Lower Planes table out of the 1e DMG to the 236 Mutations table.  His suggestion is worth a response as to why I won't be doing it any time soon.

   If you look at the Utilities page, you'll see that they're just random generators at the heart no different from the mutation and insanity lists I published.  And I construct them in the same manner, that is I look at all the entries I have and then I start grouping them into categories.  The type of category, whether the  what body part is mutated or what type of creature may be encountered doesn't matter, at this step I'm establishing a base chance that a something n that category is encountered. In the case of mutations, I decided that I wanted hybrid crossbreeds to appear about 15% of the time, other visible physical mutations about 60% and unseen mental or other mutations the remainder.

    I then establish subgroups and weight their probability as needed within those categories.  At this point since I have something specific in mind, like adding wings, I start thinking of every possibilty related to that that I can think of.  It's one thing to find bat wings in a list, but why not chicken wings?  And if they're there what do they do?  This is where the actual content is determined.

   The final step is to put probabilities by each entry and make them add up to 100%.  Some movement of the group percentages occurs to ensure that the individual entries occur in the desired frequency, that's how hybrids ended up at 16.3% of the list.

   Now, when you're programming it's trivial to keep the category and subgroup ratios constant as you add individual entries. But it's a non-trivial challenge with a list. You can do it with multiple tables, but to me the point of the list is to quickly and easily generate a result.  On the ridiculous end I could see you rolling on seven tables to generate a mutant with red and green plaid eyeballs; but I don't see anyone wanting to.  So as a design choice I keep the lists flat, preferably a single list if I can, to let the user roll and go. 

   The other design choice is how many entries are in the list?  Obviously it's bounded by the maximum die roll, which in turn is set as the minimum power of 10 which includes the total number of entries.  A little recursive, but trust me on it.  Adding, for example, plaid eyeballs into the table while keeping the category and subgroup proportions consistent, requires recalculating at least every entry under Physical Mutations -> Head OR, more likely as there are are many entries in the 1e DMG tables, increasing the die roll from d1000 to d10,000 and recalculating every probability in the lists.    

So while I'm not planing on expanding the list, if I do put Mutations on the Utilities page, I'll include the 1e tables and the plaid eyeballs.

No comments:

Post a Comment