Using the central limit theorem, proof by induction, and bimodal distributions to build a spell comparison metric. Same instinct as BattleValue, different game.
Source: The Math of D&D Spells — The Gorilla of Destiny (PhD student, D&D science books) Transcript: dnd-math-spells-transcript.txt Links: BattleValue, Gaming, Logic and Mathematics, Newcomb’s Paradox, D&D Monster Tournament — Exact Markov Chains (the other D&D math thread — where this page models spells in isolation via CLT/bimodality, that one resolves whole fights exactly and needs a cast-priority policy as input)
The video builds a spell damage predictor from first principles, starting simple and layering in complexity:
For N dice with S sides, the expected damage is:
μ = N × (S + 1) / 2
Derived via the Gauss pairing trick: sum 1 through S by pairing first+last (1+S), second+second-last (2+(S-1)), etc. Each pair sums to S+1. There are S/2 pairs. Works for odd S too — the unpaired middle value is exactly (S+1)/2.
Example: Fireball = 8d6 → μ = 8 × 7/2 = 28
Requires the sum-of-squares formula:
1² + 2² + ... + S² = S(S+1)(2S+1) / 6
He proves this by induction rather than asserting it:
The standard deviation for a single die:
σ² = E[X²] - (E[X])² = S(S+1)(2S+1) / (6S) - ((S+1)/2)²
For N dice, multiply by N (variance of independent sums).
As N → ∞, the sum of independent dice rolls converges to a normal distribution. At N=8 (Fireball), the fit is already very good — a million simulated rolls overlay almost perfectly with the normal curve defined by the derived μ and σ.
This is the “unreasonable effectiveness” problem in miniature: a theorem about infinity gives accurate predictions for 8 dice.
D&D spells have a save mechanic — the target can halve damage by making a saving throw. This creates a bimodal distribution: a weighted sum of two normals.
The probability density function is:
f(x) = h × N(μ, σ) + (1 - h) × N(μ/2, σ/2)
Where h = hit rate = (DC - save_bonus - 1) / 20
The overall expected damage combines everything:
E[damage] = h × μ + (1 - h) × μ/2
The overall standard deviation requires a correction for the distance between the two distribution means:
σ_total² = h × σ² + (1 - h) × (σ/2)² + h(1-h)(μ - μ/2)²
This gives a single comparable number per spell — plug in your DC and the enemy’s save bonus, compare spells.
The model compares spells on single-round expected damage. This inherently biases toward burst damage:
The model answers “which spell does more damage this round?” — a narrower question than “which spell should I cast?”
This is structurally the same problem as BattleValue: reduce complex combat to a single comparable number.
| BattleValue | D&D Spell Model | |
|---|---|---|
| Input | Attack, HP | Dice (NdS), DC, save bonus |
| Output | BV = √(Attack × HP) | E[damage] = h × μ + (1-h) × μ/2 |
| Efficiency metric | BV / Cost | E[damage] / spell slot level |
| What it captures | Combat product | Expected single-round output |
| What it misses | Initiative, range | Duration, area denial, action economy |
Both are lossy compressions that sacrifice detail for decision-making speed. The metric is useful because it throws away information, not in spite of it. And in both cases, when the metric stops matching player experience (everyone knows Cloud Kill is good, everyone knows initiative matters), that’s the signal to build a better model.
The logic and math page argues that mathematics is a human construction that models real patterns. This video is a clean illustration:
This also illustrates logic-and-math open question #4: “does the process of building-and-testing formalisms converge on something?” The proof by induction for sum-of-squares is the meta-tool — a construction that validates other constructions. Induction lets you extend a finite check to all integers, which is remarkable if you think about what that means for a “mere” human construction.
Card games like Hearthstone have a related problem: developers use an internal cost model (mana curve vs. stats/effects), and players try to reverse-engineer it to find “bargain” cards — units whose BV/Cost (or stat-equivalent/mana-cost) exceeds the norm. The difference from D&D: card game design has a human designer choosing to break their own rules for balance or flavor. Dice physics don’t have a designer making Fireball “feel good.”
The BattleTech Simulator project is the same pattern applied to tabletop wargaming: compare empirical combat performance (Monte Carlo) to the official BattleValue2 rating and find where the published ratings are wrong.
The same instinct appears independently across games and domains:
| Domain | Metric | What it compresses |
|---|---|---|
| BattleTech | BV = √(A × HP) | Combat to a scalar |
| D&D spells | E[damage] | Dice + saves to a scalar |
| Hearthstone | Stat-equivalent / mana | Card value to a ratio |
| Economics | ROI | Investment quality to a ratio |
| MOO1 | BV/Cost fleet composition | Unit roster to an efficiency ranking |
Each metric is useful, each is incomplete, and each invites the same next step: identify what the metric misses and build a better one. The process is the point — the vault’s position on structural realism applied to game design.