SUSU / PORTFOLIO
All work返回作品

Solo · Live Tool · For Numerical Designers独立 · 在线工具 · 面向数值策划

Gacha Economy Sim

React · TypeScript · Monte Carlo · Web Worker

A real-time gacha-economy simulator for numerical designers: edit pool weights and pity periods and watch the P50/P90 pull-cost distribution update instantly — no engineer round-trip, no spreadsheet guesswork. 面向数值策划的实时抽卡经济模拟器:改池子权重和保底周期,立刻看到 P50/P90 抽数成本分布更新——不用等工程师介入,也不靠 Excel 估。

Design Goal设计目标

Collapse the slow loop between "change a gacha rule" and "see what it actually costs real players" down to a single interaction a designer can run themselves — and make the answer trustworthy enough to ship a banner on.

把"改一条抽卡规则"到"看清它对真实玩家到底要多少钱"之间那条慢循环,压缩成一个策划自己就能跑的交互——并且让结果可信到能据此上线一个卡池。

The Workflow使用流程

Edit weights / % / pity inline → run a target-driven simulation of 1000 players pulling until they hit item X → read the P50/P75/P90/P99 cost → save the scheme or import JSON / xlsx.

权重 / 概率 / 保底周期就地编辑 → 跑目标驱动模拟,1000 名玩家各自抽到目标 X 为止 → 读 P50/P75/P90/P99 成本 → 保存方案或导入 JSON / xlsx。

🔧 The Build🔧 程序实现

At the core is a pure, 2-level draw engine with a 4-hook plugin-rule interface, so mechanics like pity or a scripted first-draw are rules rather than special cases. Heavy runs — 100k-pull batches — go off the main thread into a Web Worker and return in ~500ms, with results charted in ECharts. The engine is covered by 60 tests and validated within ±0.4% of closed-form values over 200k Monte Carlo pulls, so the numbers are not just plausible, they're checked.

核心是一个纯函数的二级抽卡引擎,配 4-hook 插件式规则接口,于是保底、首抽脚本这类机制都成了"规则"而非特例。重计算——10 万抽批量——被丢到 Web Worker 的主线程外,约 500ms 返回,结果用 ECharts 绘制。引擎有 60 个测试,并在 20 万次蒙特卡洛抽样下与闭式解误差 ±0.4% 内——所以数字不只是"看起来对",而是被核对过的。

🎯 The Insight It Surfaces🎯 它暴露出的问题

Running real distributions instead of point estimates revealed that the common spreadsheet drop-rate formula overstates true rates by roughly 20% — exactly the kind of quiet error that under-prices a banner and breaks an economy. That gap is the whole reason a tool like this earns its place next to the spreadsheet.

用真实分布而非点估计去跑,暴露出常见的 Excel 掉率公式比真实概率高估约 20%——正是这种悄无声息的误差,会让一个卡池定价过低、把经济拖垮。这个差距,就是这样一个工具值得摆在 Excel 旁边的全部理由。

Role角色

Solo — engine architecture, plugin-rule design, UI, test suite.

独立 — 引擎架构、插件式规则设计、UI、测试。

Scale规模

60 tests · ±0.4% vs closed-form over 200k MC pulls · 100k-pull batches ~500ms off-thread.

60 个测试 · 20 万抽下与闭式解误差 ±0.4% · 10 万抽批量约 500ms(主线程外)。

Stack技术栈

React 19 · TypeScript · Zustand · Zod · Web Worker · ECharts · Vitest