Randomized Hero Generator

By Antistone, in Descent Home Brews

I have created a spreadsheet that generates random Descent heroes ! (Excel file with macros.) It's highly parameterized so you can tweak the costs, priorities, and ability list to customize the results. It's not fully documented yet, but you can probably figure most things out from the cell comments, and I'm happy to answer questions.

This is currently a preliminary version, and I plan to release another with bug fixes, parameter tweaks, and probably an expanded ability list soon, but I wanted to get some additional eyes on it. Do the generated heroes seem generally reasonable? Do you notice any tendencies that seem odd or undesirable? If you look at the behind-the-scenes "costs" for different things, does anything leap out as over- or under-valued? Please post your comments and feature requests. Also accepting suggestions for more abilities to include in the giant list; want to keep the heroes feeling as different as possible.

Thanks, and enjoy.

Generally seems to produce reasonable heroes (I note the ability list is substantially expanded over just abilities published heroes have). A few points:

* It seems quite keen on producing heroes with 2 fatigue.

* It's capable of producing heroes with 7 speed. That's very powerful- borderline overpowered, I think. One hero I got was 3 fat/ 7 speed/ 1 conquest/ 8 health/ 0 armour/ place a rest order every turn (only recover 2 fatigue on rest). I would chose that in a heartbeat over any published hero except Zyla, who is broken. Granted it only had one skill.

* It seems to create lists of unrelated (and thus unthematic) abilities quite often. I don't like this very much. An example:

You have Undying.
You may equip one extra "Other" item.
When you drink a potion, each adjacent hero recovers 1 fatigue

I'd prefer to see it only give out one (or a couple of closely-related) ability, but balance out strong or weak abilities with weaker or stronger stats.

* It does seem to be impossible to get a hero with speed+fatigue higher than 10 or lower than 6: this is good.

* I'd prefer to see less variation in number of skills. I don't mind divergent trait dice, but having only 1 or 2 skills is dull.

Just my 2 small-units-of-currency-of-choice.

Theoretically, it can generate a hero with 8 speed, though I haven't seen any yet. The 7th and 8th points of speed each cost about as much as a skill, though...so if "+2 speed" isn't a broken skill, it seems unlikely that that would be inherently broken.

It can also theoretically generate a hero with 2 fatigue and 3 speed, but it's more likely to generate heroes with stats that sum to 12+ (after you divide wounds by 4), which means it's less likely. 2 fatigue and 2 speed is even possible, but only with an ability that inhernetly lowers speed (such as Brother Glyr's). Fatigue+Speed higher than 10 is also possible (I think I saw 12 one time), but it costs a lot of points.

Just for your personal use, you may want to know:

  • You can cap the maximum speed it will generate by changing box M5 on the parameters sheet.
  • You can prevent it from adding extra stuff onto basic abilities if you set "Ideal Ability Value" and "Perk Base Prob" both to zero (cells B7 and B8).

I may try to do something to encourage buying fatigue above 2. I probably will not do anything to try to match up "related" abilities, because that's wildly impractical if I want to allow the user to type in a bunch of arbitrary abilities they made up and have the generator use them.

Aren't those skills that give movement added after actions are declared? Whereas if you have those points in your base speed, and declare a run action they're effectively doubled, rather than added to the total.

No. Swift increases your actual speed score. In fact, it's even better than just having a higher speed printed on your hero card, because the skill isn't limited by wearing heavy armor (for example, it allows you to have a net 6 speed even while wearing Chainmail).

You may be thinking of the Ring of Quickness and Boots of Speed items, which just give you movement points and don't affect your speed. Though that's arguably better still, since you get the movement points even on a Battle or Ready-Attack action, which you probably use more often than a Run action.

Very cool little widget you've made here; I like it. The only major problem with the heroes tends to be that I keep getting crazy trait dice like 1/0/1 or 2/2/2, where the first is virtually useless/weak and the second has spent all their build points on unnecessary trait dice. Maybe changing it to a 5 total dice maximum and 3 dice minimum, with a 2 category maximum(so that you get at least 2/1/0 and not 1/1/1) would make them more balanced, but still unique. Otherwise, great work!

Are you saying that you don't think that heroes should ever have 1/1/0 traits (like Arvel Worldwalker from ToI), or are you just concerned that it's not balanced in a straight trade for something like 3/0/0?

The generator uses a point system to try to keep heroes balanced, and something like 1/1/0 costs a lot fewer points than 3/0/0, which means the hero will be better in some other area (stats, skills, or ability). And it's not just based on the total number of dice; 1/1/1 costs less than 2/0/0. 2/2/2 only costs a little more than 3/0/0 and less than 4/0/0, let alone a concentrated spread with equal dice like 5/1/0.

If you think that the heroes with low traits are also too weak overall, then I might not be charging enough points for high trait scores. But just the fact that not all trait distributions are equal is something that has already been taken into account (at least theoretically).

(You can play with the costs on the Parameters sheet if you feel like it.)

Antistone said:

I have created a spreadsheet that generates random Descent heroes ! (Excel file with macros.) It's highly parameterized so you can tweak the costs, priorities, and ability list to customize the results. It's not fully documented yet, but you can probably figure most things out from the cell comments, and I'm happy to answer questions.

This is currently a preliminary version, and I plan to release another with bug fixes, parameter tweaks, and probably an expanded ability list soon, but I wanted to get some additional eyes on it. Do the generated heroes seem generally reasonable? Do you notice any tendencies that seem odd or undesirable? If you look at the behind-the-scenes "costs" for different things, does anything leap out as over- or under-valued? Please post your comments and feature requests. Also accepting suggestions for more abilities to include in the giant list; want to keep the heroes feeling as different as possible.

Thanks, and enjoy.

Pretty good in general.

I imagine it is practically impossible to sort out, but I have seen some really bad ability/stat combos.
An 8W 0Ar hero with BodyGuard1 - umm, not useful!
A hero with a spend 3 Fatigue ability (for Blast) and 2 max fatigue...

I expect that this generator will always perform best when hooked up to a sanity filter to discard the outliers, but I am trying to rule out as many problem cases as practical, so this sort of stuff is useful. Let me know if you see any other bad combos.

Corbon said:

An 8W 0Ar hero with BodyGuard1 - umm, not useful!

Could be useful if paired with a conquest value of 1, perhaps? I do have it set up so that heroes with the bodyguard ability are more likely to have a low conquest value relative to their wounds/armor, but there's still significant chance involved. It might be reasonable to amplify the tendency a bit.

Corbon said:


A hero with a spend 3 Fatigue ability (for Blast) and 2 max fatigue...

Yeah, I should probably add the option for abilities to specify new maximums and minimums for stats, rather than just direct modifiers, so I can guarantee that you have enough fatigue to actually use those...

Antistone said:

No. Swift increases your actual speed score. In fact, it's even better than just having a higher speed printed on your hero card, because the skill isn't limited by wearing heavy armor (for example, it allows you to have a net 6 speed even while wearing Chainmail).

You may be thinking of the Ring of Quickness and Boots of Speed items, which just give you movement points and don't affect your speed. Though that's arguably better still, since you get the movement points even on a Battle or Ready-Attack action, which you probably use more often than a Run action.



Ah, okay. I hadn't realized that split trait dice were so cheap, thanks. Also, clarification on the "Double Layers" ability. Does it mean that you can wear up to one piece of armor that prevents you from using runes, or up to zero? For instance, would both or only the second of these combinations be possible: (1) Chain Mail and Leather Armor, (2) Mage's Cloak and Leather Armor?

The intent was "up to 1", so you can wear chainmail and leather, but not two chainmails.

(If anyone is currently having an aneurysm from the idea of wearing two armors, note that taking that ability also reduces your base armor by 1, so if your second armor is leather you only break even. It's actually a pretty weak ability.)

YellowPebble said:

* It seems quite keen on producing heroes with 2 fatigue.

The more I play with it, the more annoying this gets. Seriously, I get closer to 2/3s of heroes coming out with 2F than 1/2.
Would it be possibly to manipulate the stat-summing formula so that F is chosen first? The only thing I can think of is that F is chosen last so tends to get downgraded in order to keep the total at or near 12.

Generally speaking I've been playing with the Ideality multiplier (up to 10 at the moment) because while random heroes are nice, I prefer most of them to fit close to the standard parameters. gui%C3%B1o.gif

There are two things favoring high speed (rather than fatigue) right now:

  1. Speed starts at 3, while fatigue starts at 2 (it's only possible to end up with 2 speed if you have an ability that lowers it, such as Brother Glyr's).
  2. The algorithm for spending BP slightly favors options that use up a larger fraction of remaining BP (so that it's more likely to take an option that uses all the remaining BP when it runs low, rather than buying something cheaper and being unable to spend the remainder). Speed is configured to cost a bit more per point than fatigue, plus its incremental cost is inherently higher due to the stat starting out higher.

My current plan is to lower the cost of both fatigue and speed slightly, and make the costs equal; also, to add a new parameter that controls favoritism for one over the other, and defaulting it in favor of fatigue to compensate for the fact that it starts lower.

In the mean time, if you want to make sure that it always buys a point of fatigue first, just increase the fatigue minimum (cell K6 on parameters sheet) to 3. You can also delete the "2" row for fatigue costs and slide everything else up, but it won't check the cost of the starting row, so if you do that you should set the "3 fatigue" cost to zero and reduce total BP to compensate.

And yeah, I'm already tweaking other parameters in the draft of the next version. Currently have ideality multiplier at 3, stat weight at 1.5, and primary weight at 4 (there's a bug in the posted version that prevents tertiary traits/skills from being selected most of the time; once I fixed that it started generating a lot more wide splits, so primary weight is higher to compensate).

Also brainstorming more abilities for the master list. Think I'll probably post the new version after the weekend (plus however long BGG takes to approve it).

I just got a character that could make a magic attack have the blast ability at the cost of 3 fatigue but the character only had 2 fatigue. Not sure if this is of interest to you but i thought I would let you know.

The "spend 3 of 2 fatigue" problem is already fixed in the next version.

By the way, for anyone trying to produce heroes that better fit the usual conventions:

There are two major reasons you'll end up with atypical heroes even if you crank the ideality multiplier up to infinity. First, the ideality multiplier doesn't affect the spending of spare BP once all categories have reached their ideal totals (e.g. it doesn't affect the decision between a 4th trait die and a 13th stat point). Second, buying a die in the hero's second or third trait is usually the cheapest upgrade available, so there's a decent chance that will be the only thing the computer can buy at the very end, regardless of priorities.

In FFG's heroes, stat total is more variable than trait or skill totals. If you want to simulate that, I'd reduce the ideal stat total, set the stat weight really high, and set the ideality multiplier even higher than that. That will strongly encourage it to spend everything on stats once it has 3 traits and 3 skills, and encourage it to get 3 traits and 3 skills even if that doesn't leave enough BP to get the stat total up to 12. You'll still probably end up with a fourth trait die fairly often due to that being the only thing affordable at the very end, but you can always manually strip it off if you want.

New version's up, though you'll need to wait til the BGG maintenance is over to download it.

  • There should be a lot fewer heroes with 2 fatigue.
  • Heroes with abilities that require or give 3 fatigue should now always have 3+ max fatigue.
  • Fixed a bug preventing tertiary traits/skills from being selected unless primary and secondary were both maxed and/or unaffordable.
  • Added and tweaked parameters to (hopefully) give a better hero distribution.
  • Added 136 new perks and abilities (that should last you a while...)
  • ReadMe file now has an explanation of the generation algorithm and how all the parameters are used

If anyone wants to look through the ability list for anything that seems over- or under-priced, that'd be grand, though it's also a lot of work, so don't feel obligated. Remember you can always add, edit, or remove abilities if you don't like the one that are there.

Pointless Contest: Find the most broken hero that could theoretically be generated by this tool, either by stepping through the algorithm manually or just generating a bunch while keeping an eye out for broken ones. Post your submissions here!

I thought it'd be interesting to see how the heuristics used in my hero generator would rate FFG's official heroes. So, I've calculated the minimum number of build points (BP) needed to reconstruct the official heroes in my generator, assuming all other settings at default. (NOTE: The generator normally allows 360 BP.)

276 Red Scorpion
302 Ispher
302 Shiver
309 Sahla
311 Zyla (without Fly)
313 Lyssa
314 Spiritspeaker Mok
317 Vyrah the Falconer
319 Laurel of Bloodwood
319 Trenloe the Strong
323 Aurim
324 Battlemage Jaes
327* Eliam
329 Tetherys
332 Sir Valadir
334 Corbin
345 Arvel Worldwalker
352 Bogran the Shadow
352** Karnon
355 Nara the Fang
357 Laughin Buldar
357 Modrog
359 Brother Glyr
360 Mad Carthos
-----------------------------------
362 Andira Runehand
364 Okaluk and Rakash
365 Grey Ker
369 Ronan of the Wild
372 Steelhorns
374 Varikas the Dead
382 Lord Hawthorne
382*** Nanok of the Blade
387 Runemaster Thorn
407 Silhouette
410 Landrec the Wise
417 Tahlia
427 Kirga
442 Runewitch Astarra

One Fist (ability not supported)
Truthseer Kel (ability not supported)
Jonas the Kind (ability not supported)
Tobin Farslayer (ability not supported)

* My spreadsheet only allows Eliam's ability on melee-primary heroes; this total assumes that Eliam is melee-primary but has been allowed to break the rule that no trait can be higher than the primary, so he can have his secondary trait (magic) at 2.
** Karnon's cost also includes the ability to ignore Ghost, since that's paired with the ability to ignore Fear in my spreadsheet.
*** Nanok's ability isn't supported on the spreadsheet; this total assumes he gets Barbarian level 2 instead, for a total of 4 armor, Ironskin, cannot equip Armor or Runes.


I think those ratings look pretty reasonable overall, with a couple notable exceptions. I think I let the people in [this thread] talk me into pricing Runewitch Astarra's ability too high, and I think Shiver should probably be worth more, but it looks like most of the heroes are clumped around the amount of BP the spreadsheet allows by default, and the highest and lowest heroes are mostly the ones you'd expect.

Interestingly, in my testing I also randomly generated heroes extremly close to Modrog and Brother Glyr (Glyr was -1 fatigue but +1 melee dice, Modrog had traits of 2/2/1 instead of 3/0/0, but they were otherwise identical to the official heroes).

Thoughts?

Not sure about your newest version. In the 0.9 build I had one character turn up with zero skills. I haven't been able to duplicate it but with zero skills going by the standard rules this makes them incapable of obtaining any feats.

Yeah, it's a low-probability outcome, and should be rarer with the increased ideality multiplier, but still possible. Should probably just not play with any heroes with zero skills, or rule that they can draw any type of feat (or something similar).