D&D.Sci May 2021 Evaluation and Ruleset

This is a followup to the D&D.Sci post I made last week; if you haven’t already read it, you should do so now before spoiling yourself.

Here is the web interactive I built to let you evaluate your solution; below is an explanation of the rules used to generate the dataset. You’ll probably want to test your answer before reading any further.


Ruleset

(Note: to make writing this easier, I’m using standard D&D dice notation, in which “4d8+3” means “roll four eight-sided dice, sum the results, then add three”.)

Species

The carcasses brought back by adventurers are 213 Yetis, 513 Snow Serpents, and 613 Winter Wolves.

Days Since Death

The days since each creature’s death is modelled by rolling two d12s, taking the lowest result, and subtracting 1.

(For the rest of this post, let “[DSD]” stand in for “Days Since Death”.)

Butchery

Carver takes a “collect anything the local alchemists might pay for, then carve out all the technically-edible meat you can still access” approach to her vocation.

The amount Carver gains from a Yeti carcass is given by 72+1d6-[DSD]d6, the amount from a Snow Serpent is 20+2d6 (she can’t prepare snakemeat, so all the profit comes from non-degrading components like scales and fangs; ergo, no time effects), and the amount from a Winter Wolf is 25-2*[DSD]+4d6.

Bidders

There are three bidders at a given auction: Alistair, Betty, and—except for today’s auction, where you take her place—your employer Carver.

Carver the Butcher

Carver bids 32-2*[DSD]+2d20 on Yeti carcasses, 7+2d10 on Snow Serpent carcasses, and 31-3*[DSD]+2d8 on Winter Wolf carcasses.

Alistair the Butcher

Alistair has a different business model to Carver, focusing on extracting the highest quality cuts and selling them to rich clients; as such, his utility sharply decreases with time since death.

He is very predictable, bidding 55-6*[DSD] for Yetis, 60-20*[DSD] for Snow Serpents, and 50-12*[DSD] for Winter Wolves.

Betty the Necromancer

Betty doesn’t care how long something’s been dead, so long as no-one’s interfered with the body.

She bids 29+1d6 on Yetis, 9+1d8 on Snow Serpents, and 19+1d4 on Winter Wolves.

Strategy

The relevant factors are summarized in these graphs.

In almost all cases where rivals aren’t making bids greater than the Expected Value of the lot to Carver, the EV-maximizing choice is to bid the lowest amount that would guarantee winning the lot. The one exception is with lot #11, where it’s possible to eke out a tiny amount of extra EV by bidding 21 or 22 silver pieces.

Reflections

I aimed to make this entry as straightforward and approachable as I could. From the, uh, comprehensiveness with which it was solved, I think it’s fair to say I succeeded. Congratulations to simon and GuySrinivasan for reaching perfect answers; and then, between them, managing to deduce my entire generation process.

The main problem with this scenario from my point of view is that I once again ended up making a puzzle when I was aiming for a challenge. It’s premised on some Weird Crap (distorting effects of selection bias, auctions against rival agents) but the fact it needs a ‘proper’ solution obligates the Weird Crap to impose itself with a reliability it would never possess in real life (Carver acts implausibly randomly to limit the effect of selection bias, opposing bidders are wind-up toys who don’t know anything you don’t), and so players develop abilities optimized for synthetic problems.

I’m mad about this, but only a little. While my game failed to live up to my standards of quote-unquote-‘realism’, it succeeded at its primary objectives: being playable, giving players an excuse to practice technical skills, and setting things up for the Bonus Round (which I’m pleased to report is absolutely not a puzzle).

Scheduling

Oh yeah, there’s a Bonus Round. It’s all written up and ready, but I’m delaying it slightly so I can have it both be a week long and end on a weekend; I plan to run it starting next Monday and conclude it the Monday after, unless I get hit by a truck or someone in the comments gives me a reason to use a different time window. Watch this space.