Some Pseudo Math for Dominance in the Social Network Dungeon Experiment

Aug 7, 2013
Comments Off

I’m a full fledged old school gamer so I haven’t used much of the newer mechanisms for encounter balancing. Still, the underlying math attempts to approximate an a metric for dominance levels of creature groups in a constrained environment.

The Challenge Rating (CR)

This is fuzzy math to determine how one creature may measure up against either another average party level and/or another creature. I stumbled on Kaww’s post describing Vorpal Tribble’s approach for determining CR of a creature on the fly.

#1. Divide creature’s average HP by 4.5 to 6.5.
4.5 for 5 HD or lower, 5 for 6-10 HD, 5.5 for 11-15 HD, 6 for 16-20 HD., 6.5 for 20-25 HD.

#2. Add 1 for each five points above 10 its AC is, subtracting 1 for every 5 below.

#3. Add 1 for each special attack (+2 to +5 or more if its got a decent number of spells in its spell-like abilities).

#4. Add 1 for each quality unless you deem it worthy of more. Add 1 for each resistance and 10 points of DR it has, and 2 for each immunity. Subtract 1 for each vulnerability.

#5. Add 1 for every two bonus feats it has.

#6. Divide total by 3. This should be its rough CR

I have a couple of issues with this. The first (#1) is the segmentation of the average HP calculation. While dividing by HD might be more elegant, simplicity is key so I will just use the average in the middle of 5.5.

Most of the games I play use descending not ascending AC so just invert #2. #3 is judgement call so to automate it, I’ll just use the raw number of special attacks. #4 will just use the number of special abilities. Designating one ability over another is complicated so roughly speaking they will just all be the same. My systems of choice have no feats so it will just be ignored. Others may choose to include it.

The simplified calculation is:

CR = (HP / 5.5) + 1 * (#Special Attacks) + 1 * (#Special Abilities)

This ignores AC for now. I will need to source a table that gives some indicator of descending to ascending armor class comparisons. Given the descending nature, I think one bonus CR per 3 points of AC below 10 (9) would work reasonably at first glance. So we could add:

CR += abs(10 – AC) % 3

Then divide it all by 3 per the original calculation.

CR /= 3

Apply this on a per creature basis then average for the group of creatures. This will give a baseline CR for the group. So now there is a rough CR for the creature(s) as a group. Couple that with the number appearing and you can begin to resolve the CR relationship.

CR is Non-Linear

Based on the explanations I’ve read, CR is a non-linear relationship. There is little explanation that determines how 1n CR = 2 CR(n-2) or 1n CR = 4 CR (n-4). There is probably an obvious calculation this non math guy is missing.

My buddy, Keith, came to rescue with a simple approximation

#Appearing * (CR^2) = Dominance Level (DL)

Dominance Level is similar to encounter level in some contexts. Both break down at the extreme of disparate levels. As a rough approximation, it allows for large numbers of lower level creatures to exist within the space of a far more dominant monster.

It is not a perfect metric as Keith explains:

For the moment, though, I would suggest when considering dominance use an exponential-based relationship. The square of the HD would be dead easy, but in D&D 3.x the CR is perhaps a better measure, and one creature of CR n is roughly equated to four creatures of CR n-4 (and two creatures of CR n-2).

By this math 8 CR 3 creatures might be considered roughly equivalent Dominance to a single CR 9 creature (and nowhere near the dominance of a CR 24 creature, 8*3=24 notwithstanding).

Squaring and adding, on the other hand, would give 8*3*3 = 72, while a single CR 9 creature would be 1*9*9 = 81… not so far off, really. For even lower-level creatures you might see 9 CR 1 = 9*1*1 = 9 vs. a single CR 3 = 1*3*3 = 9.

I’m not sure which works better. Nine CR 1 creatures against a single CR 7 creature can be a kind of even fight in the right circumstances (focused fire has some happy effects), but it’ll be touch and go and the CR 1 guys can expect a lot of casualties, possibly TPK. This suggests to me that a lower-CR creature could effectively hold dominance (the single CR 3 creature might be enough to balance them ‘socially’ — equal Dominance score). They could probably beat him if it came to a fight, but would it be worth the trouble and the possibly (likely) casualties?

Dominance Level

DL is not the end-all-be-all metric. It is one of many drivers within a simulated social network driven dungeon. The overall relationships including friendship will determine if one group tries to overtake another. On one hand, if you used it without consequence, the dominant groups would overrun the dungeon. However, those same groups are aligned with other groups or perhaps co-exist so they have no desire to overrun less powerful creatures wholesale.

Comments Off

Affiliation Graphs for Dungeon Stocking — Raw, Random Thoughts

Jul 31, 2013
Comments Off

Random thoughts come with random generators. Early in the week, I was cleaning up a bunch of files from prior programs at work and a good part of it was relationship graph code that was targeted at a program which ended prematurely. Arriving at home, I decided to do a functional check of various random generators. One of those was the monster stocker. As I was testing and looking at the raw output, it struck me that rather than having to manually figure out how the monsters fit in a dungeon it would be cool to build up a relationship model. Keith over at In My Campaign has written about Node Based Megadungeon Design. He also happens to be on G+ so I tossed the idea at him last night. His input is intermixed with my own thoughts and I’ve tried to designate his insight appropriately.

Generating random affiliations is a complicated problem. Ad hoc language is easy to describe verbally — the bugbears in areas #2, #7, and #9 have subjugated the kobolds in #3, #5 and #6. Coding that is significantly more difficult. However, if you simplify the relationship into a few definable terms, one can begin to construct the nature of the affiliations between groups. From there, you begin to place those creatures in actual locations in the dungeon. For now, I am going to ignore physical space and just consider building up a rational model of the creatures within a dungeon.

Step 1 – Plausible Population

Assuming a map is available and general metric of the power rank of the creatures, it is simple enough to generate random population of plausible creatures. For simplicity, I will start with a single level dungeon with a single entrance into the world. Say 30 rooms with about 2/3rds of them populated with one creature or another. Just generating 20 creatures is unlikely to be an interesting population. Instead, pick out your random table of choice and do 3-6 times that number of creatures. Massive list, right?

Make it more interesting. Add in a fractional percentage of higher level creatures. Say we did 3X the number of rooms to start. Add in 1/2X creatures from the next level of power. 1/4 from the 2+ the starting point and perhaps 1/8th from 3+. So we end up with a starting population of 90 plausible rank 1 creatures, 15 rank 2, 7 rank 3, and 3 rank 4+. All told, there are 115 possible creatures for a mere 30 rooms of which only 20 will be actively occupied.

Step 2 – Density

Now we have a major pile of creatures that need to be pruned downwards. Nothing gets culled at this stage. Instead, the target population is evaluated for occurrence of the same beasts. This should not be a simple count of Creature Y showed up Z times. Evaluation should consider the number of creatures that could plausibly appear for each room / encounter. So if kobolds show up 3 times in the initial population but 12 of them can occur each time, the kobold density metric is 3*12=36 rather than 3. Thirty six creatures vs a singular purple worm that showed up from one of the upper level tables is significantly different.

Sum up the total creatures plausible then calculate possible density (total # / total possible). The value is between 0 and 1. Honestly, its slightly above 0 and 1 should hopefully never show up in a rational random table.

Step 3 – Segmentation

Next up, divide the population into two groups — actors and outliers. The actors are the top 10% (or whatever cutoff you choose) of the density metric. The rest are not dominant players in the dungeon but may be present. The group of creatures with the highest density is the starting target of the “lair” monster. Assign every creature an appropriate boolean actor flag.

Step 4 – Starting Relationships

Initial seeding of group dynamics can take many forms. Keith suggested a seeding metric based on alignment, Friendship. I considered one based on hit dice, Dominance. For alignment, depending on your preference, you either have 3 or 9 different models. On the ease of use stand point, use Law/Neutral/Chaos. Those with the same alignment get a 1 for friendship, 0 for one step removed and a -1 for opposing views. Granularity for the 9 could be added but I’m keeping the idea as simple as possible.

For Dominance, just look at HD vs HD at a group level. Nine 1-HD creatures can be treated at the 9 HD metric vs something with 3 HD. This is a rough metric; certainly not useful for with something with special abilities and/or other powers. I think a better metric might be using XP per creature as the relationship value.

Both Friendship and and Dominance are a 1-to-1 relationship. Every creature has a friendship and dominance model to every other one.

Next Steps

I’m out of time for the evening. This is a rough, raw look at how I’d begin to assemble a population in code. The outliers of the population need more significant relationships to the actors. Then cycle the “life” of the dungeon a few times to erode/enhance friendship and dominance. Sprinkle in a few more relationship metrics. Rinse, repeat, or deviate. I cannot predict where the idea is going to flow.

Comments Off

Spices, Herbs, and Such — Earth based

Jun 27, 2013
Comments Off

I had an oddball request for some fantasy spice names. Like most of my projects, I start with our own heritage. History has plenty of unusual names and people utilize an amazing number of plants. So here’s the quick and unedited list of spice like items.

If I move it forward, I’d just alter names and tweak to fit the ecology. The list is not historical. Rather it is the beginning of a more comprehensive list.

Download (PDF, 35KB)

Tags: , ,

Comments Off

Some Days…

Jun 5, 2013
Comments Off

Days, weeks, months, all of them can begin to wear you down. Occasionally you stumble across art that mimics your mood.


The art was up for bid by comment. I commented. I won. If I’m ever a zombie, I hope I’m cognizant enough to flip the bird with at least one hand. Possibly two. Or at least until the muscles rot away so I can no longer indicate frustration.

If you want zombie art, talk to Byron Rempel.


Comments Off

Enter the Hovel

Apr 9, 2013
Comments Off

At first I was hesitant to use this space for life stuff but for those following the RPG side of things, they can just use the RPG tag feed rather. It’s my space so choose to take the path less traveled and post on multiple topics. Random topics at times. Prepare.

Update: Changed my mind again, the Hovel, has its own site.

Comments Off

Drinking Quest with a Playmate

Apr 4, 2013
Comments Off

The video is pretty accurate and certainly representative of my personal play experience. We were lacking a playmate during our games. Next time perhaps. Plus there is a reference to the Snow Weasel. Hat tip to the Substance TV people and the lovely Pamela.

The Drinking Quest 3 crowd funding campaign is now fully funded and moving toward the stretch goals with 4 days left. I’m happy it has funded. Jason, the creator, is a hell of a lot of fun and a joy to interact with. Cool to see good people be successful in their projects.

Next convergence, I dub Randall the crazy hat guy.

Comments Off

Buckboard Bacon Experiment #1

Mar 25, 2013

Two weeks past, I decided to make some bacon. Something a bit more meaty and tasty than what you can buy in the store. After failing to find inexpensive pork belly locally, I stumbled on buckboard bacon, which is basically cured meat from alternate cuts.

I browsed a multitude of cure options and one that kept being mentioned was Hi Mountain Buckboard Bacon Cure. The majority of people who suggested it had great pictures of the end result. Without further ado, I ordered a package of cure and approximately 28 pounds of pork butts (shoulders).

Step #1 of the process is to debone the shoulders and remove excess fat. Removing the bones is straight forward with a decent boning knife. Go slow and just slowly trim around the bones. At the end, I had large slabs of meat along with a variety of smaller bits and the bones with some meat left on them. The latter ended up in green chili.

Bone Removal

I should have divided the larger slabs into slabs about 2 – 2.5″ inches across. It would have allowed the cure to absorb easier and kept sizes consistent.

Step #2 was application of the cure. Just follow the instructions for your cure. The application is not difficult. Sprinkle some of the cure on the meat and massage into the surface. Make to apply cure to all portions of the meat including the pockets where the bones were removed. After the cure is applied, the meat goes into the a refrigerator for 7-14 days. The curing time depends on the thickness of the meat and the specific cure used. I turned my meat about every other day and kept it curing for about 9 days.

Packaging for the refrigeration can be ziploc bags, vacuum sealed bags, or a plastic tub. I had a handy meat tub to use which seemed far easier than individual bags.

Cure Applied

Step #3 is waiting along with some meat turning and occasional curious eyeballing. Mostly waiting.

Partially Cured

After 6 days, the color of the meat is darker and feels much firmer. At this point, I chose to heavily pepper two portions for peppered bacon. Honestly, the smell of the process was making salivate with more waiting on the horizon.

Step #4 is the soak out and fry test. Rinse all the meat thoroughly using cold water and soak for an hour. Cut a few portions off and fry to check salt taste. Repeat the soaking and testing until the saltiness reaches the desired level. I used two rinses and two hours of soaking. Keep in mind that as the bacon is smoked, the salt flavor remaining will concentrate due to the removal of water. I used one of the smaller slabs for fry test.

Fry Test

The flavor of the fry test was somewhere between bacon and ham. Tasty but definitely not what I expected for the final product.

Step 5 is an overnight rest to form the pellicle. Pellicle was a foreign concept to me. Essentially the overnight rest allows the outer portion of the meat to form a tacky layer that aids in the uptake of smoke. To prepare for the rest, I patted the meat dry, tossed on a mixture of onion powder, garlic powder, and cracked black pepper. Additionally, for the one peppered bacon target, a re-applied a hefty layer of black pepper. Sadly, I forgot to keep the second separated during the rinsing process.

Pellicle formation requires air to all surfaces of the meat. I placed towels on my refrigerator shelves and then placed upside down jerky racks on the the towels. The meat then went in so I could begin yet another waiting period. Others suggest a fan blowing over the meat for an hour prior to smoking.

Come Forth Pellicle

Step 6 is bringing on the smoke. Finally, down to the last waiting period. Smoking can take many forms, flavors, and practices. Most traditional bacon is cold smoked somewhere between 70 and 90 degrees Fahrenheit, which can take anywhere from a day to a week. I did not have the gear to cold smoke even though the outside temperature was a balmy 8 degrees when I awoke to start the process.

I used both an offset charcoal smoker and barrel electric smoker in the process. I was aiming to keep the electric at lower temperatures for a longer period of time because the offset is not easy to keep below 200 degrees.

I placed the thicker two slabs on the offset at 150 degrees and the three thinner slabs on the electric at 100 degrees without applying smoke for one hour. At the one hour mark, I added cherry and apple chunks to the electric and crab apple / apple splits to the offset.

The offset temperature was increased to 200 degrees after applying smoke. I kept the electric at 100-120 for 4 hours, then increased the temperature to 200 as well.

My goal was to remove heat when the meat reached 140 degrees — the point at which pork is edible without additional cooking. Doing so cooks the fat as well as the meat so the final product would lack some of the traditional marbling look. Once the meat hit 140 degrees, I cut the heat to the smokers and allowed the meat to rest on the smoker for another hour. The bacon was then moved into the house to rest further and slowly cool for a couple of hours. I used the same upside down jerky racks atop towels on the counter before moving it into bags into a freezer to cool further.

I failed to take any pictures in the middle of the process. Just picture wafts of sweet smelling smoke.

Step 7 is final processing. Many people recommend resting the meat in the refrigerator overnight to allow the smoke flavor to blend into the meat. I did not. I let the meat cool down to around 50 degrees and grabbed one slab at a time to slice and pack.

Hand slicing 20+ pounds of bacon is time consuming and difficult to keep consistent. You also end up with a lot of oddball bits of meat that I just carved into smaller chunks for adding to other recipes.

Carving Peppered Bacon

After carving slabs into slices, I vacuum sealed about about half pound portions and put them in the freezer. For hand slicing, I should have allowed the meat to partially freeze but I was running low on time and high on bacon smell.

Tray O' Bacon

Final Thoughts

I should have trimmed all the initial meat into more uniform slabs. Some the larger chunks would have been better with longer curing times. Plus uniform slabs would make the smoking process simpler.

The rise to temperature was far faster than I initially estimated. I’d really like to build a cold smoker box to waft smoke over a couple of days at low temperatures to allow the smoke to penetrate deeper into the meat. Hot smoking smells delicious but I think the overall flavor would be better with longer and slower processing.

The end product is absolutely delicious. I cooked up final samples (breakfast for dinner rocks) for myself and my neighbor, Ken. Ken handed me a $50 and took home a third of the meat. The donation covered all of the meat costs, which is awesome.

Success achieved with more to learn.