October 5, 2008

Extending Gygaxian Naturalism II

This is Part 2 of my series on Extending Gygaxian Naturalism to create a unified Monster Ecology Index. Please read the first post to get up to speed.

In my last post, I covered the basic idea of how we might construct a grand Monster Ecology Index using the idea of directed graphs and basic probability functions. The data would be represented in a hash table of keys and values. The keys being the name of some sort of fictional creature, the values being the probability of another creature (key) being associated with it. If your already confused, either just think of this as a big table of monsters, and the chances that other monster/creatures are associated with all of them.

Now, to create such a massive table it would take a fair amount of research. To be comprehensive, one would want to go back through all the previous editions of the game to get a consensus of what the game designers were thinking. Then, once this information was in hand, it would get compiled into the table of probabilities that link one creature with all those that it might be found with, coupled with the terrain and climate information.  Over the next couple of weeks (months), I'll be developing such a table (to satisfy my inner nerdish) and going over some examples of what it takes to 'properly' synthesize the information needed for a table like this. Below is an example of what I mean...

Lets take something rather elementary for our first example: An Ogre Lair. The following entries about Ogres are drawn from each of the Monster Manuals from 1st Edition Advanced Dungeons & Dragons through to the current 4th Edition of the game:
"They will sometimes be found serving as mercenaries in the ranks of orc tribes or evil clerics or joining with gnolls for a profitable raid. Ogres mingle freely with trolls and some giants, and they are at times enslaved by certain demons." -- 1E AD&D Monster Manual
"Ogres are big, ugly, greedy humanoids that live by ambushes, raids, and theft. Ill-tempered and nasty, these monsters are often found serving as mercenaries in the ranks of orc tribes, evil clerics, or gnolls. They mingle freely with giants and trolls." -- 2E AD&D Monster Manual
"Ogres are big, ugly, greedy creatures that live by raiding and scavenging. They join with other monsters to prey on the weak and associate freely with ogre mages, giants, and trolls. ... Ogres sometimes accept mercenary service with other evil humanoids (including humans)." -- 3E/3.5E D&D Monster Manual
"Aggressive, strong, and dull-witted, ogres are the quintessential big, dumb brutes. Many creatures (particularly orcs) take advantage of ogres and convince the monsters to work for them." and "demons" in the suggested encounters -- 4E D&D Monster Manual
OK, so Ogres have had a pretty consistent, if not somewhat expanding, role with other types of creatures across the editions. They are found with trolls and giants. They work for orcs, gnolls, "evil humanoids" in general, and sometimes demons. Now, if I take the same approach to each of the creatures found with Ogres, then we might end up with a network that looks like this:
Made with GraphViz 1.13 by The Core Mechanic
Graphs like this might alone to help DMs stock their adventures and campaigns with encounters that are internally consistent (in this case, for Ogres). Of course, for your campaign - you could tweek the associations completely. Maybe Hill Giants eat Ogres, maybe Gnolls live with Bullywugs too. I have no idea - but the point is that a graph like this can help you organize your thoughts about what makes sense. Also, you'll note that in the above example I completely removed the associated probability for each association. This is just to keep things "simple" for now.

In my next post on this subject, we'll extend the concept of using graph theory for monster ecology to include terrain and climate data to build up a network map of any given "monster ecology". For example - what does the network map look like for Ogres, Elves, and a few other beasties for a temperate forest region?


  1. Perhaps you should store that data in a SQL table, so it could be used by other projects and programs?

  2. @AMZ : welcome to The Core Mechanic! Yes... if this project of mine ever sees the light of day, then either a live mysql database, and/or flatfiles for download would be made available to the public. I'm also toying around with using Google Spreadsheets -- becuase with their new API you can use javascript to make queries to public google spreadsheets (like any of my existing Core Lists).

  3. Jonathan, your idea captured my fancy, but it's been some time. I hope it's still cooking somewhere, albeit in a massive pot.

  4. Yeah... way way too many things in the pot to be honest... Nevermet Press is devouring just about all my free time. =D


By submitting your comment below, you agree to the blog's Terms of Service.