<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Slg on PlumePHP</title><link>https://plumephp.com/categories/slg/</link><description>Recent content in Slg on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 17 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://plumephp.com/categories/slg/index.xml" rel="self" type="application/rss+xml"/><item><title>12.3 留存与付费的联合分析</title><link>https://plumephp.com/slg-num-12-3-retention-payment-joint-analysis/</link><pubDate>Mon, 12 Oct 2026 17:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-12-3-retention-payment-joint-analysis/</guid><description>12.1 看留存、12.2 看流失，这一节把留存和付费放在一起。用一个潜在活跃度同时驱动留存与付费，先量出「付费玩家 D7 留存更高」的原始溢价，再切活跃度十分位做分组内对照，把溢价里的选择效应分离出来，并给出收入结构与档位留存交叉表，最后讨论这张表怎么用于召回优先级。</description></item><item><title>12.2 流失预警与召回</title><link>https://plumephp.com/slg-num-12-2-churn-warning-recall/</link><pubDate>Mon, 12 Oct 2026 16:30:00 +0800</pubDate><guid>https://plumephp.com/slg-num-12-2-churn-warning-recall/</guid><description>上一节是事后诊断，这一节做事前预警：用活跃天数、停滞天数、付费额、是否入盟、等级增益五个特征，手写一个纯 Python 逻辑回归，预测谁会在未来 7 天流失；再用规则基线做同口径对照，跑一条 B 层基准，最后把告警量换算成召回活动的成本与回收价值。</description></item><item><title>《SLG 游戏产品设计》卷二《数值平衡与商业化运营》目录与阅读路径</title><link>https://plumephp.com/slg-num-toc/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-toc/</guid><description>《SLG 游戏产品设计》卷二《数值平衡与商业化运营》全书目录：16 章 48 节，第三部分讲属性与战力、成长曲线、战斗数值、兵种阵容、掉落概率、抽卡礼包、匹配分段、赛季膨胀控制，第四部分讲付费点、定价折扣、LTV 与回本、留存漏斗、A/B 实验、活动赛季、联盟 GVG 运营与设计案装配。每一节都配可跑的 Python 仿真或 TypeScript 原型。</description></item><item><title>1.1 属性分类与派生属性</title><link>https://plumephp.com/slg-num-01-1-attribute-classification-derived/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-01-1-attribute-classification-derived/</guid><description>属性是 SLG 数值的地基。本篇把属性分成基础、派生、全局修正与状态四类，用一棵整数表达式树描述派生属性的依赖关系，跑出拓扑排序、层号与环检测，并以《王朝纪元》骑兵样板队伍算出从有效攻击、减伤率、有效生命到战力的完整派生链，同时给出应进 CI 的两项配置自检。</description></item><item><title>1.2 战力公式设计与校验</title><link>https://plumephp.com/slg-num-01-2-combat-power-formula-validation/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-01-2-combat-power-formula-validation/</guid><description>战力公式是玩家看得见的排序依据，必须与真打一场的结果一致。本篇用确定性回合战斗做真值，把「单位类型 × 兵力」的 12 支队伍两两对撞 66 场，跑出同型 1000‰、跨型 791‰ 的排序一致性，再用最小二乘反推权重、报告残差，暴露加法战力在克制环上的结构性盲区。</description></item><item><title>1.3 属性膨胀与公式的可扩展性</title><link>https://plumephp.com/slg-num-01-3-attribute-inflation-extensibility/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-01-3-attribute-inflation-extensibility/</guid><description>版本迭代不断往战力里加属性，加法公式会越来越不准。本篇把「队伍强度 = 各乘区之积」当设计假设，把乘积按泰勒展开成一阶、二阶与精确三层，用 240 支采样队伍跑出三种公式的反演对数随属性数 k 的变化，并给出跨语言用 BigInt 复算的 TypeScript 实现。</description></item><item><title>10.1 定价锚点与档位设计</title><link>https://plumephp.com/slg-num-10-1-price-anchor-tier-design/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-10-1-price-anchor-tier-design/</guid><description>定价不是拍脑袋。本节用 config/pricing.json 的 5 档定价算出每档「每元玉璧数」与相邻档位的梯度，跑出可复算的档位梯度表，再用 B 基准把梯度与目标区间对照，并用 TypeScript 原型与 Python 逐位对照，守住这条梯度红线。</description></item><item><title>10.2 折扣、限时与稀缺</title><link>https://plumephp.com/slg-num-10-2-discount-limited-scarcity/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-10-2-discount-limited-scarcity/</guid><description>折扣不只是「便宜」。本节用 config/pricing.json 的折扣档与 config/n10_pricing.json 的限时窗口、稀缺限购，仿真每个折扣档在无限购与限购两种情形下的收入，再用 B 基准量化「折扣击穿价格锚点」：低档折后的单位价值超过了满价顶档。</description></item><item><title>10.3 价格弹性与副作用</title><link>https://plumephp.com/slg-num-10-3-price-elasticity-side-effects/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-10-3-price-elasticity-side-effects/</guid><description>折扣的需求响应不能靠猜。本节用 config/n10_elasticity.json 的需求表算出各价格点的收入与弧弹性，定位收入最大价，用 B 基准对照解析最优价，并量化两个副作用：原价购买者的价值差、弹性误判造成的收入损失，回答「降价到底赚不赚」。</description></item><item><title>11.1 漏斗与留存曲线</title><link>https://plumephp.com/slg-num-11-1-funnel-retention-curve/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-11-1-funnel-retention-curve/</guid><description>漏斗决定有多少人走到付费点，留存决定他们待多久，两者是 LTV 的底座。本节把《王朝纪元》的获客漏斗拆成安装到首次付费六段，用 config/n11_ltv.json 的分段几何衰减展开 D1 到 D365 的每日留存千分比，跑出 D1 45%、D7 20%、D30 9% 的曲线，并用 TS 原型逐位对照。</description></item><item><title>11.2 LTV 建模与回本周期</title><link>https://plumephp.com/slg-num-11-2-ltv-model-payback-period/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-11-2-ltv-model-payback-period/</guid><description>LTV 不是一句「人均值多少」，而是一条逐日累计的曲线。本节用 config/n11_ltv.json 的留存曲线与 ARPDAU 口径，把 D1 到 D365 的每安装收入累加成 LTV 曲线，跑出 D180 4.67 元、回本周期第 116 天，再用 B 基准把逐日递推与闭式几何级数对照，并用 P 层测试守住跨语言逐位一致。</description></item><item><title>11.3 CAC 与买量口径</title><link>https://plumephp.com/slg-num-11-3-cac-ua-caliber/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-11-3-cac-ua-caliber/</guid><description>CAC 与 ROI 是唯一不能在本机复现的一组数——它们来自真实买量后台。本节把「口径与计算」拆出来：用 config/n11_ltv.json 的 LTV 曲线与三种 CAC 情景，算回本周期与 LTV/CAC 比值，跑出自然量 2.28、混合 1.43、买量为主 0.81，并逐处划清哪些是设计假设、哪些是命令行可复现的换算。</description></item><item><title>12.1 新手漏斗与 D1/D7/D30</title><link>https://plumephp.com/slg-num-12-1-onboarding-funnel-d1-d7-d30/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-12-1-onboarding-funnel-d1-d7-d30/</guid><description>留存曲线的形状在第 11 章讲过，这一节讲怎么把新手漏斗和 D1/D7/D30 队列算出来并做分群诊断。用 config/n12_retention.json 定义漏斗各步与三类分群的逐日生存参数，S 层脚本用确定性 PRNG 跑出漏斗人数与 D1/D7/D30，P 层用 TypeScript 同种子复算并断言逐位一致。</description></item><item><title>13.1 实验设计与分流</title><link>https://plumephp.com/slg-num-13-1-experiment-design-traffic-split/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-13-1-experiment-design-traffic-split/</guid><description>A/B 实验的第一步是把用户稳定地分到对照组与实验组。本节用确定性 PRNG mulberry32 与 user_id 的 FNV-1a 哈希实现可复现的稳定分流，本机跑出 10 万用户的分桶比例、偏差与稳定性，并量化「每次曝光都重抽」的不稳定分流会让多少用户同时看到多个变体，说明为什么分流必须先于显著性。</description></item><item><title>13.2 显著性、样本量与常见陷阱</title><link>https://plumephp.com/slg-num-13-2-significance-sample-size-pitfalls/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-13-2-significance-sample-size-pitfalls/</guid><description>显著性不是「p 小于 0.05」这么简单。本节不引入 scipy，用 numpy 手写正态 CDF、两比例 z 检验、Welch t 检验与样本量公式，再用蒙特卡洛实测第一类错误率，量化偷看、多重比较、SRM 与辛普森悖论四个陷阱，并用 B 基准把模拟值与理论值逐项对照。</description></item><item><title>13.3 从实验到决策</title><link>https://plumephp.com/slg-num-13-3-experiment-to-decision/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-13-3-experiment-to-decision/</guid><description>统计显著不等于值得上线。本节把一次实验结果压成可执行的决策：算提升点估计、两比例 z 检验的 p 值、差值的 95% 置信区间与当前样本量下的最小可检测效应，再用业务门槛与护栏指标给出「回滚 / 继续观察 / 全量」的判定，并算出要越过门槛还差多少样本。</description></item><item><title>14.1 赛季结构与节奏</title><link>https://plumephp.com/slg-num-14-1-season-structure-rhythm/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-14-1-season-structure-rhythm/</guid><description>把 60 天赛季切成开荒、成长、对抗、收官四段，把每日签到、周常任务、成长竞赛、联盟战、收官冲刺等活动铺到每一天上，算出每日活动负载、峰均比 3000‰ 与收官相对开荒的抬升 4500‰。用一份可跑的排期模型回答：赛季该分几段、活动该排多密，才能既填满节奏、又不把玩家在峰值日压垮。</description></item><item><title>14.2 活动模板与奖励预算</title><link>https://plumephp.com/slg-num-14-2-event-template-reward-budget/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-14-2-event-template-reward-budget/</guid><description>把登录签到、成长竞赛、联盟战、通行证、累充等活动拆成面额、参与率、次数三个数，逐项累加算出赛季奖励预算，再折算成赛季产出预算的比例：按参与率加权后 29%、落在 30%±8% 的目标带内；而把面额直接相加会得到 44%、越界 15 个百分点。用 B 层基准量出「忽略参与率」这个最常见的估算错误。</description></item><item><title>14.3 赛季结算与过渡</title><link>https://plumephp.com/slg-num-14-3-season-settlement-transition/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-14-3-season-settlement-transition/</guid><description>把 10000 名玩家按排名分成王者、精英、骨干、活跃、休闲五段，逐段算出结算发放：总发放 850 万玉璧，前 1% 拿走 9%、前 10% 拿走 41%，量出奖励集中度。再用 TS 原型对同一份配置重算一遍保证逐位一致，并算清「结算 1 天 + 准备 3 天」的过渡期占整个 64 天周期的 6%，玩家在这段时间里没有赛季进度产出。</description></item><item><title>15.1 联盟生态与社交压力</title><link>https://plumephp.com/slg-num-15-1-alliance-ecosystem-social-pressure/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-15-1-alliance-ecosystem-social-pressure/</guid><description>联盟是 SLG 的社交骨架：一群人的贡献高度不平均，少数核心扛着大多数人。这一节把贡献分布与贡献配额建成可跑模型，扫描 0 到 150 的配额，看联盟在留存率与保留产出率之间怎么权衡——配额 40 只丢 6% 的人，却保住 97.3% 的产出。</description></item><item><title>15.2 GVG 匹配与战场设计</title><link>https://plumephp.com/slg-num-15-2-gvg-matchmaking-battlefield-design/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-15-2-gvg-matchmaking-battlefield-design/</guid><description>GVG 是「一群人对一群人」。这一节把联盟总战力配对与三据点战场结算都建成可跑模型：按窗口 5000 配对时战力差 2482、碾压率 0%，窗口放宽到 20000 时碾压率飙到 34.8%；再用 30 个种子的 B 基准证明匹配均衡度与战场时长偏差都稳定。</description></item><item><title>15.3 联盟健康度指标</title><link>https://plumephp.com/slg-num-15-3-alliance-health-metrics/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-15-3-alliance-health-metrics/</guid><description>联盟从健康到瓦解不是一夜之间。这一节用「健康 vs 衰退」两个剧本逐日对照，量出谁先亮红灯：贡献率第 27 天、参与率第 29 天就先越线，而流失率要拖到第 52 天才超标——等流失率起来人早就心散了，预警真正该盯的是前两个领先指标，不是流失率。</description></item><item><title>16.1 把两卷装配成完整设计案</title><link>https://plumephp.com/slg-num-16-1-assemble-design-document/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-16-1-assemble-design-document/</guid><description>前 15 章各产出一批 config、sim、proto 与 out 产物，收尾这一章要做的不是再写一套结论，而是把它们装配成一份可交付的设计案。本篇给出一份装配清单，把两卷 30 章的代表性交付物登记成可追溯索引，跑一个脚本逐条核对「配置源 + 产物」是否真的在磁盘上，并报告覆盖度。</description></item><item><title>16.2 全链路仿真验收</title><link>https://plumephp.com/slg-num-16-2-end-to-end-simulation-acceptance/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-16-2-end-to-end-simulation-acceptance/</guid><description>装配只保证了产物齐全，验收才回答「数对不对」。本篇把前面各章留下的产物汇总进一次全链路验收，逐项断言关键不变量：经济守恒、战力排序、概率归一、匹配收敛、赛季压缩在带内、实验第一类错误率覆盖。检查分声明式与派生两类，覆盖 S 仿真、P 原型、B 基准三层，再补一层余量基准看结论过得稳不稳。</description></item><item><title>16.3 原型回放与设计案交付</title><link>https://plumephp.com/slg-num-16-3-prototype-replay-design-delivery/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-16-3-prototype-replay-design-delivery/</guid><description>验收在 Python 侧跑完了，交付前还差最后一步：亲手证明同一份配置在 S 与 P 两侧算出同一串数。本篇给出一段配置驱动的原型回放，把结算、战斗、赛季推进串成一条确定性转录，用 node --test 钉成断言，再在原型层复核跨章不变量，最后收束整部设计案的交付。</description></item><item><title>2.1 成长曲线的四种家族：线性、指数、对数、分段</title><link>https://plumephp.com/slg-num-02-1-growth-curve-family/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-02-1-growth-curve-family/</guid><description>成长曲线只有四种基本家族：线性、指数、对数（饱和型）与分段。本节把四族放进同一份整数配置，在 1–30 级上逐级求值，用「末首倍率、加速比、中点占比」三个标量给曲线做体检，并跑出一张四族对比 SVG。指数与分段末值几乎相同，形状却完全相反——这正是选型的关键。</description></item><item><title>2.2 等级与养成成本曲线</title><link>https://plumephp.com/slg-num-02-2-level-cost-curve/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-02-2-level-cost-curve/</guid><description>2.1 讲的是「升级变强多少」，本节讲「升级要花多少」。升级成本按整数比复利增长，与每小时有效产出一比，就得到真正的门槛：攒够一级要几小时、满级要几天。我们复用 bastion_core 与伐木场口径逐级对账，并做一组成本增长率的敏感性扫描，看门槛怎么从 8 天翻到 105 天。</description></item><item><title>2.3 曲线拟合与反推目标体验</title><link>https://plumephp.com/slg-num-02-3-curve-fitting-target-experience/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-02-3-curve-fitting-target-experience/</guid><description>2.2 是从参数推结果，本节反过来：先写下想要的目标体验（累计成本锚点、第几天到几级），再用最小二乘反推曲线参数。我们用 numpy 手写最小二乘比较指数与幂律两个模型，跑出拟合优度与锚点残差，最后反推出达标所需的成本增长率。整个过程只需一份整数配置，全程可复现。</description></item><item><title>3.1 伤害公式与减伤模型</title><link>https://plumephp.com/slg-num-03-1-damage-formula-mitigation/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-03-1-damage-formula-mitigation/</guid><description>把 SLG 的伤害从「按比例扣血」还原成一行可判定的整数公式：攻击乘倍率、减去防御、再取保底。用配置驱动的《王朝纪元》护甲扫描（5 档攻击 × 6 档防御 × 3 档地形）复现线性减法模型，演示低攻高防撞上 1 点伤害地板、以及减伤上限为什么必要。</description></item><item><title>3.2 命中、暴击与随机性</title><link>https://plumephp.com/slg-num-03-2-hit-crit-randomness/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-03-2-hit-crit-randomness/</guid><description>命中与暴击让伤害从确定值变成分布：85% 命中、25% 暴击、180% 暴击倍率，解析期望恰为 204。用自实现确定性 PRNG（mulberry32，Python 与 TypeScript 同算法同种子）跑 20 万次，实测均值 203.961、偏差仅 0.01%，并说明暴击真正的代价是方差而不是均值。</description></item><item><title>3.3 确定性战斗结算</title><link>https://plumephp.com/slg-num-03-3-deterministic-battle-resolution/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-03-3-deterministic-battle-resolution/</guid><description>把 3.1 的确定伤害与 3.2 的分布装进回合循环：每回合双方按「存活数 × 单位伤害」同时结算，谁的血量池先见底谁输。复用 core.ts 的 resolveBattle 跑枪兵 300 对骑兵 300，3 回合收敛；再给回放日志算 FNV-1a 指纹，Python 与 TypeScript 哈希同为 0x71e54817。</description></item><item><title>4.1 兵种三角与克制矩阵</title><link>https://plumephp.com/slg-num-04-1-unit-triangle-counter-matrix/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-04-1-unit-triangle-counter-matrix/</guid><description>150% 的单一克制环在骑兵/弓兵这一对直接饱和到 100%/0%，另两对也偏到 86/14、88/15。本节把《王朝纪元》的兵种三角写成 3x3 整数百分比矩阵，用 S 层脚本对每个有序对跑带抖动的确定性战斗，得出胜率矩阵，并校验克制对、被克对与镜像对是否都落在目标带内。</description></item><item><title>4.2 阵容加成与组合强度</title><link>https://plumephp.com/slg-num-04-2-lineup-bonus-combo-strength/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-04-2-lineup-bonus-combo-strength/</guid><description>单兵种克制解决不了「几个兵种怎么搭」。本节把阵容加成写成条件规则：三军齐备、单一兵种、骑兵主力、均衡编队，命中即叠加；再用 TypeScript 原型把「命中加成 → 攻击分/防御分 → 组合强度」算成整数，用 node --test 断言三军齐备拿到 5187 分、枪兵方阵拿到 2878 分。</description></item><item><title>4.3 强度评估与平衡迭代</title><link>https://plumephp.com/slg-num-04-3-strength-evaluation-balance-iteration/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-04-3-strength-evaluation-balance-iteration/</guid><description>账面组合强度能不能代表真实强弱？本节把六个阵容放进多栈循环赛，用 4.1 的克制矩阵跑模拟，再用 Spearman 排序一致性做 B 基准：解析分与模拟分的一致性只有 -9%，说明加权战力分排不出强弱。另一半基准是平衡迭代——对最强阵容削弱、对最弱增强，胜率极差从 49% 收敛到 15%。</description></item><item><title>5.1 掉落表与概率分布</title><link>https://plumephp.com/slg-num-05-1-drop-table-distribution/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-05-1-drop-table-distribution/</guid><description>掉落表是一张权重表：千分权重让每一项的数字直接就是千分概率。用确定性 PRNG 跑 60000 次抽条对照理论分布，传说项实测 0.4933% 对理论 0.5%，并用 TypeScript 原型验证 Python 与 TS 两侧逐位一致，权重表即唯一真源。</description></item><item><title>5.2 伪随机与保底机制</title><link>https://plumephp.com/slg-num-05-2-pseudo-random-pity/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-05-2-pseudo-random-pity/</guid><description>纯随机没有记忆，长尾会把少数玩家拖到 150 抽以上。用确定性 PRNG 跑 20000 名玩家对比纯基础与软/硬保底：均值从 33.25 抽降到 24.54，p90 从 76 抽压到 44 抽，硬保底命中人数从 3292 人降到 0 人。</description></item><item><title>5.3 期望、方差与体验区间</title><link>https://plumephp.com/slg-num-05-3-expectation-variance-experience-band/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-05-3-expectation-variance-experience-band/</guid><description>把出货抽数当成随机变量：几何分布的解析期望 33.33 抽、方差 1077.78 与仿真的 33.25 / 1071.86 对照。再按体验区间目标判定纯基础与保底两种设计，并用 30 个种子的蒙特卡洛均值偏差做 B 基准，证明仿真无系统性偏。</description></item><item><title>6.1 卡池结构与概率公示</title><link>https://plumephp.com/slg-num-06-1-gacha-pool-probability-disclosure/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-06-1-gacha-pool-probability-disclosure/</guid><description>把《王朝纪元》的抽卡拆成一张可公示的概率表：稀有度分档、单卡概率、限时池与常驻池的差异，以及保底参数如何在池之间继承。用一段 S 层脚本从 config/n06_gacha.json 重算公示概率并校验三档之和恰为 1000‰，再用一段 P 层原型在 TypeScript 侧复刻同一份 mulberry32，验证公示表与随机序列跨语言逐位一致。</description></item><item><title>6.2 期望成本与「多少抽出货」</title><link>https://plumephp.com/slg-num-06-2-expected-cost-pulls/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-06-2-expected-cost-pulls/</guid><description>用 mulberry32 确定性 PRNG 模拟 5 万名玩家「抽到首个 SSR 需要多少抽」，把软保底与硬保底一起跑进分布，得到均值、中位数与 p90/p99，再折算成玉璧与人民币期望成本。用 B 层脚本把模拟均值与闭式期望做对照，用 P 层测试证明 TS 侧与 Python 侧逐位一致。</description></item><item><title>6.3 礼包性价比与价值锚点</title><link>https://plumephp.com/slg-num-06-3-bundle-value-anchor/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-06-3-bundle-value-anchor/</guid><description>礼包值不值，不能靠「感觉超值」。本节用 config/pricing.json 里的价值锚点（1 玉璧换 100 资源、60 加速）把每个礼包的内容折算成玉璧等价价值，算出性价比千分比（1000‰ = 与直购玉璧 1:1），再用 S 层脚本跑出一张可排序的性价比表，并给出 d30 / d50 折扣后排序如何翻转。</description></item><item><title>7.1 匹配分与 ELO / Glicko</title><link>https://plumephp.com/slg-num-07-1-matchmaking-rating-elo-glicko/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-07-1-matchmaking-rating-elo-glicko/</guid><description>匹配分是「跟谁打」的度量。用 ELO 与 Glicko 两种模型对同一批 2000 名玩家跑 100 局，看评分离真实实力的 RMSE 从 167 收敛到 55.7（ELO）与 47.8（Glicko），并解释为什么 Glicko 多带一个「不确定度」反而收敛更低。</description></item><item><title>7.2 分段与段位设计</title><link>https://plumephp.com/slg-num-07-2-tier-segment-design/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-07-2-tier-segment-design/</guid><description>匹配分是给系统看的，段位是给玩家看的。用百分位把 2000 名玩家切成青铜到钻石五段，实测占比 20/24.85/25.15/20/10 贴合目标，段位边界落在 666/1045/1179/1293/1437 分，并量化「评分分段」与「真实实力分段」29.65% 的错位率。</description></item><item><title>7.3 匹配公平性仿真</title><link>https://plumephp.com/slg-num-07-3-matchmaking-fairness-sim/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-07-3-matchmaking-fairness-sim/</guid><description>把评分和段位都用上，最后量一件事：按匹配分把玩家配到一起，对局公不公平。扫描 50 到 800 分的配对窗口，band50 平均实力差 66.8、公平率 92.4%，random 对照公平率仅 44.1%；再用 30 个种子的 B 基准证明强者胜率标准差仅 0.77 个百分点。</description></item><item><title>8.1 跨赛季膨胀的成因与代价</title><link>https://plumephp.com/slg-num-08-1-cross-season-inflation-cost/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-08-1-cross-season-inflation-cost/</guid><description>把「赛季越打越膨胀」从口头抱怨变成可核算的量：无重置、无压缩时，老玩家进度指数跨赛季复利膨胀，跑 10 个赛季量化绝对差距、相对倍数与追赶天数，再用 B 层闭式解与「纯复利」简化模型对照，量出把膨胀当纯复利估会低估多少、代价信号何时亮红灯。</description></item><item><title>8.2 重置、继承与压缩</title><link>https://plumephp.com/slg-num-08-2-reset-inherit-compress/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-08-2-reset-inherit-compress/</guid><description>把玩家进度拆成资源、城建、英雄、科技、荣誉五个维度，每季各自成长、赛季边界按 season.json 的重置/继承/压缩处理，跑 10 个赛季看综合指数能否收敛。四种方案对照：无重置发散到 411 万、全额清零塌到 2 万、赛季默认档收敛进健康带、激进压缩偏低。</description></item><item><title>8.3 老玩家回归与新玩家追赶</title><link>https://plumephp.com/slg-num-08-3-veteran-return-newbie-catchup/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-08-3-veteran-return-newbie-catchup/</guid><description>8.2 让赛季起点收敛了，但赛季内新玩家怎么追？本节跑一个赛季 60 天：老玩家带 2 倍永久领先，新玩家拿 150% 追赶产出、前 72 小时有护盾。结果差距收窄 83% 却填不平，追赶窗口一关只剩固定日产出在慢慢磨，护盾值约 5% 的赛季末指数。</description></item><item><title>9.1 付费动机与付费点布局</title><link>https://plumephp.com/slg-num-09-1-payment-motivation-layout/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-09-1-payment-motivation-layout/</guid><description>付费点不是货架上摆得越多越好。本节先把玩家掏钱的动机拆成进度、竞争、收集、社交、便利五类，再用 config/n09_payment.json 把八个付费点铺到「动机 × 生命周期」两张轴上，用 S 层脚本把每个点归一化成每元玉璧等价，并算出 20 格布局矩阵的覆盖度与缺口。</description></item><item><title>9.2 首充、月卡、通行证</title><link>https://plumephp.com/slg-num-09-2-first-charge-monthly-card-battle-pass/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-09-2-first-charge-monthly-card-battle-pass/</guid><description>首充、月卡、通行证是 SLG 里最稳定的三类常规付费点，共同点是「高性价比换玩家行为」。本节用 config/pricing.json 的真实参数，逐个算清首充的双倍倍率、月卡的逐日累计与回本天数、通行证的双轨增量价值，并用 P 层 TypeScript 原型做跨语言对照。</description></item><item><title>9.3 付费节奏与体验保护</title><link>https://plumephp.com/slg-num-09-3-payment-rhythm-experience-protection/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-09-3-payment-rhythm-experience-protection/</guid><description>付费点铺好了，还要决定它们什么时候出现，以及怎样不把免费玩家逼走。本节用 config/n09_protection.json 定义免费 / 付费玩家的日产出与内容需求里程碑，用 S 层脚本逐日算免费玩家达成度曲线、定位付费墙出现的天数，并对体验保护门槛做 PASS/WARN 判定与敏感性扫描。</description></item><item><title>附录 C：全书公式、参数与数据集索引</title><link>https://plumephp.com/slg-num-appendix-c/</link><pubDate>Mon, 12 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/slg-num-appendix-c/</guid><description>《SLG 游戏产品设计》卷二附录 C：把第 1–15 章的核心公式、config 参数与 out 数据集做成可检索索引——公式名、所在节、形式与整数约束，参数名、所在配置文件、键路径、取值与单位，产物路径、产出脚本与对应节，并附一个直接解析本页、断言表里每条路径都真实存在的 S 层校验脚本。</description></item><item><title>12.3 参数敏感性与漂移诊断</title><link>https://plumephp.com/slg-arch-12-3-sensitivity-drift-diagnosis/</link><pubDate>Mon, 12 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-12-3-sensitivity-drift-diagnosis/</guid><description>上线前先问「哪个参数最危险」，上线后再问「经济有没有跑偏」。这一节对五个关键参数做 ±20% 单参数扫描，按稳态存量摆幅排出最危险的三个参数；再用最小二乘从存量时序反推漂移速率，判定通胀/通缩/稳态，并以一组已知漂移的对照序列做检测基准验证。</description></item><item><title>《SLG 游戏产品设计》卷一《产品架构与经济系统》目录与阅读路径</title><link>https://plumephp.com/slg-arch-toc/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-toc/</guid><description>《SLG 游戏产品设计》卷一《产品架构与经济系统》全书目录：15 章 45 节，第一部分讲产品定位、玩家分层、核心循环、系统地图、功能架构、交互信息架构、版本规划与指标体系，第二部分讲资源货币、产出、消耗、产出回收闭环、通胀治理、交易市场与经济风控。每一节都配可跑的 Python 仿真或 TypeScript 原型，围绕虚构 SLG《王朝纪元》与贯穿工具链 bastion 展开。</description></item><item><title>1.1 SLG 品类图谱与细分（4X / 城战 / 卡牌 SLG）</title><link>https://plumephp.com/slg-arch-01-1-category-map/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-01-1-category-map/</guid><description>「SLG」几乎从不指同一件事。本篇用一张 8 轴设计图谱把 4X 沙盘、城战城建、卡牌 SLG 量化区分开，跑出三个方向的两两距离与真正的分界线排序，再给一个配置驱动的分类器，把任意产品画像映射到最近的细分方向，为《王朝纪元》的立项定位提供可复算的底稿。</description></item><item><title>1.2 目标用户与竞品拆解方法</title><link>https://plumephp.com/slg-arch-01-2-target-user-competitor/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-01-2-target-user-competitor/</guid><description>定位不能只朝内看画像，还要朝外看竞品。本篇给一套只依赖公开可观察机制的竞品拆解方法：把「某机制是否存在」做成 0/1 矩阵，算出品类采用率与自研《王朝纪元》的差异向量，识别惯例轴与分水岭轴，再用 B 基准把背离强惯例的轴挑成软告警，全程不碰任何竞品后台数据。</description></item><item><title>1.3 差异化定位与设计约束</title><link>https://plumephp.com/slg-arch-01-3-positioning-constraints/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-01-3-positioning-constraints/</guid><description>定位不该是一句 PPT 口号，而是一串可判定的判据。本篇把《王朝纪元》的一句话定位拆成 must / must_not / should 三类约束，再用一个约束检查器把候选功能逐条过筛，输出接受 / 告警 / 否决三档，让每次功能评审都有可复算的门禁，而不是靠拍脑袋。</description></item><item><title>10.1 产出源清单与产出速率</title><link>https://plumephp.com/slg-arch-10-1-production-source-inventory/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-10-1-production-source-inventory/</guid><description>产出源决定了资源从哪来。本节把 SLG 的产出端拆成连续型与脉冲型两类，盘点地块、建筑、任务活动、掠夺、赠送、付费七种来源的速率特征与可控性，并用一段 S 层脚本从 config/buildings.json 算出四栋建筑十级的每小时产出表并输出 CSV，再用 TypeScript 原型断言同一张表。</description></item><item><title>10.2 产出与时间的关系（在线/离线/回归）</title><link>https://plumephp.com/slg-arch-10-2-online-offline-return/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-10-2-online-offline-return/</guid><description>同一份产出速率表，在线玩家与离线玩家拿到的资源并不一样。本节讨论离线产出该不该有、上限怎么设、回归玩家怎么补，并用一段 S 层脚本对比无离线、有离线、有上限离线三种方案 30 天的资源曲线，输出 CSV 与纯 Python SVG，再用 TypeScript 原型断言同一组数字。</description></item><item><title>10.3 产出曲线仿真</title><link>https://plumephp.com/slg-arch-10-3-production-curve-sim/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-10-3-production-curve-sim/</guid><description>把 10.1 的建筑产出、10.2 的离线效率与脉冲型产出源汇总成一条 N 天产出曲线，是本节的落点。我们用一段 S 层脚本仿真 60 天产出并对累计曲线做幂律拟合，输出 JSON、CSV 与纯 Python SVG；再用一段 B 层脚本把曲线在锚点日与设计目标做残差对照，超阈值只软告警不硬失败。</description></item><item><title>11.1 消耗槽与养成消耗</title><link>https://plumephp.com/slg-arch-11-1-sink-slot-growth-cost/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-11-1-sink-slot-growth-cost/</guid><description>资源到哪去：本节盘点 SLG 的六类消耗槽（建筑升级、科技研发、兵种训练、行军消耗、伤兵治疗、交易税），区分线性、指数、分段三种消耗曲线形态，并用 S 层脚本从 config/buildings.json 算出各等级升级成本表，折算成「回本时间」与产出速率对照。</description></item><item><title>11.2 税率、手续费与消耗弹性</title><link>https://plumephp.com/slg-arch-11-2-tax-fee-elasticity/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-11-2-tax-fee-elasticity/</guid><description>摩擦成本怎么设计：税率太高玩家绕过市场、回收不足，太低又回收不够。本节用 S 层仿真把税率从 0% 扫到 20%，画出回收量、交易量、玩家净收益三条曲线，找到拉弗拐点，并用 TypeScript 原型与断言验证同一份配置两侧逐位一致，最后给出保守取值的建议。</description></item><item><title>11.3 消耗曲线仿真</title><link>https://plumephp.com/slg-arch-11-3-consumption-curve-sim/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-11-3-consumption-curve-sim/</guid><description>把 11.1 的养成消耗与 11.2 的市场回收汇总成一条 N 天消耗曲线，用 S 层脚本跑出每天各消耗槽的明细与合计，再用 B 层基准对活动强度做蒙特卡洛抖动，量化总消耗的 P10–P90 带宽。闭环（产出与消耗一起建模）留给第 12 章。</description></item><item><title>12.1 存量/流量模型</title><link>https://plumephp.com/slg-arch-12-1-stock-flow-model/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-12-1-stock-flow-model/</guid><description>把「存量 = 历史产出 − 历史消耗」写成方程，推导稳态条件：产出速率 = 消耗速率。用伐木场产出曲线与消耗曲线求数值解，讲清楚稳态是设计出来的——产出增速只要不低于消耗增速，稳态就不存在。附可跑的 S 层脚本与 TypeScript 原型。</description></item><item><title>12.2 闭环仿真与稳态判定</title><link>https://plumephp.com/slg-arch-12-2-loop-sim-steady-state/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-12-2-loop-sim-steady-state/</guid><description>把产出与消耗合起来跑 180 天多玩家闭环仿真：300 名玩家、确定性 PRNG、逐日结算存量，判定经济是否收敛到稳态。输出 JSON、CSV 与纯 Python SVG 三曲线（存量/日产/日耗），并给出稳态偏差基准——第 170–180 天存量相对波动，软告警不硬失败。</description></item><item><title>13.1 通胀症状与成因</title><link>https://plumephp.com/slg-arch-13-1-inflation-symptoms-causes/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-13-1-inflation-symptoms-causes/</guid><description>经济生病了，第一步是能诊断。本节把「通胀 / 通缩 / 健康」从口头判断变成可判定的量：读一段存量时序，算出存量、价格、交易三组日均变化率，再归因到产出侧、消耗侧或外部注入；用《王朝纪元》五个场景验证判定与归因，并给出判定稳定性与余量的 B 层基准。</description></item><item><title>13.2 沉淀机制与回收活动</title><link>https://plumephp.com/slg-arch-13-2-sink-mechanisms-recovery-events/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-13-2-sink-mechanisms-recovery-events/</guid><description>同一段经济，叠加不同的沉淀与回收组合，存量曲线会走到哪？本节用《王朝纪元》跑 150 天：升级消耗、仓库税、交易税三档沉淀，限时兑换、赛季宝箱、拍卖行抽水三档回收，对比四种组合的终值与末段斜率，得出「沉淀决定稳态高度、回收决定到达速度」的结论。</description></item><item><title>13.3 赛季重置与货币回收</title><link>https://plumephp.com/slg-arch-13-3-season-reset-currency-recovery/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-13-3-season-reset-currency-recovery/</guid><description>赛季边界是 SLG 最彻底的货币回收手段。本节让四种方案（不清零 / 全额清零 / 按比例压缩 / 压缩+保底）各跑 10 个赛季、每赛季 90 天：不清零的赛季初存量膨胀到 2500 万，全额清零永远停在 0，按比例压缩收敛到 13 万却低于健康带，只有压缩+保底收敛到 20 万。附纯 Python SVG 与 TypeScript 对照。</description></item><item><title>14.1 市场形态：拍卖行 / 摆摊 / 交易所</title><link>https://plumephp.com/slg-arch-14-1-market-forms/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-14-1-market-forms/</guid><description>玩家之间的交换是 SLG 经济最容易被低估的一环。本节把拍卖行、摆摊、交易所三种市场形态拆开，讲清集中撮合、分散位置成本、挂单深度各自对经济的影响与实现代价；再对同一批买卖订单用先到先得、价格优先、价格时间优先三种规则跑出成交价与成交量，对比差异。</description></item><item><title>14.2 定价机制与流动性</title><link>https://plumephp.com/slg-arch-14-2-pricing-liquidity/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-14-2-pricing-liquidity/</guid><description>撮合规则只决定「谁和谁成交」，定价机制才决定「成交在什么价位、能不能一直成交下去」。本节讲价格如何形成——供需、锚定、系统指导价——以及流动性怎么用挂单深度、成交率、买卖价差来度量；再用多玩家限价订单簿仿真跑 40 轮，观察价格收敛与价差收窄，输出 CSV 与纯 Python SVG 图。</description></item><item><title>14.3 套利、工作室与风控边界</title><link>https://plumephp.com/slg-arch-14-3-arbitrage-studio-risk-boundary/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-14-3-arbitrage-studio-risk-boundary/</guid><description>哪里有价差，哪里就有套利。本节先讲清套利的经济学：跨市场价差扣掉手续费与运费后还剩多少，什么程度是健康的、什么程度会招来工作室；再给一个可跑的工作室收益模型，用账号数、日产金、封禁率与成本算出打金 ROI，并给出跨市场套利千分比与 ROI 的风控阈值建议。</description></item><item><title>15.1 异常检测与打金识别</title><link>https://plumephp.com/slg-arch-15-1-anomaly-detection-gold-farming/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-15-1-anomaly-detection-gold-farming/</guid><description>经济系统设计得再稳，也会被人从外部撬动。这一节把打金识别拆成四条可判定的统计规则——单位时间产出离群、资源转移的星型拓扑、账号行为高度同步、资源流向单一出口——用自己实现的确定性 PRNG 造一批模拟账号，跑出混淆矩阵与阈值扫描曲线，并用一份配置同时喂给 Python 与 TypeScript，证明两侧结果逐位一致。</description></item><item><title>15.2 经济事故案例库</title><link>https://plumephp.com/slg-arch-15-2-economy-incident-casebook/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-15-2-economy-incident-casebook/</guid><description>上一节教会我们认出可疑账号，这一节处理已经发生的事故。SLG 的经济事故翻来覆去就那么几类：产出漏洞、复制 bug、汇率套利、赛季重置算错、补偿发多。每一类都给「症状 / 根因 / 影响面 / 处置」四段，并把案例库结构化成一份可校验的配置——真实事故一律标 X（需真实业务环境，命令行不可复现），只归纳公开可观察的机制。</description></item><item><title>15.3 修复流程与回滚预案</title><link>https://plumephp.com/slg-arch-15-3-repair-process-rollback/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-15-3-repair-process-rollback/</guid><description>识别出事、归类出事之后，最后一节回答出事那一刻该做什么。先把处置拆成发现、止血、定位、修复、补偿、复盘六步，再把最难的决策——回滚——切成三条边界：哪些能回滚、哪些只能补偿、哪些只能接受。配一段可跑的仿真，把「发多了资源」的一次事故在三种处置下算成货币通胀与玩家损失，并给出等权代价最小的推荐。</description></item><item><title>2.1 玩家类型与动机模型</title><link>https://plumephp.com/slg-arch-02-1-player-motivation-model/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-02-1-player-motivation-model/</guid><description>把「玩家为什么玩」从一句访谈结论变成可仿真的权重向量：定义《王朝纪元》五种原型的动机权重，用带种子的确定性 PRNG 抽出万人样本，算出人群占比、动机均值与 P90，并把同一份配置在 Python 与 TypeScript 两侧跑到逐位一致。</description></item><item><title>2.2 付费意愿分层</title><link>https://plumephp.com/slg-arch-02-2-payer-willingness-tiers/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-02-2-payer-willingness-tiers/</guid><description>把「谁愿意花钱」从一句运营直觉变成一条可仿真的意愿轴：定义《王朝纪元》五层意愿分层，用动机原型的意愿基准加扰动抽出万人样本，算出各层占比、相对目标的偏差与每层的主导原型，并把同一份配置在 Python 与 TypeScript 两侧复算，全程只做画像、不碰任何定价。</description></item><item><title>2.3 生命周期阶段与体验目标</title><link>https://plumephp.com/slg-arch-02-3-lifecycle-experience-goals/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-02-3-lifecycle-experience-goals/</guid><description>把「第 1 天留人、第 7 天养成、第 30 天沉淀」从口号变成可仿真的阶段模型：定义《王朝纪元》四阶段与其体验目标，用阶段日留存千分比推出 90 天留存与活跃曲线，并用一个 B 基准把曲线与目标留存点做残差对照，让阶段边界成为可检验的拐点。</description></item><item><title>3.1 资源循环与行为闭环</title><link>https://plumephp.com/slg-arch-03-1-resource-loop/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-03-1-resource-loop/</guid><description>把 SLG 的核心循环从「一张画着箭头的示意图」变成可判定的有向图：用配置驱动的《王朝纪元》行为闭环（7 节点 9 边），校验弱连通、强连通分量、最短回环与悬空汇点，并讲清为什么闭环的定量仿真要留到第 12 章再做，Python 与 TypeScript 两侧判定逐位一致。</description></item><item><title>3.2 日/周/赛季三级节奏</title><link>https://plumephp.com/slg-arch-03-2-daily-weekly-season-rhythm/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-03-2-daily-weekly-season-rhythm/</guid><description>把 SLG 的节奏拆成日、周、赛季三层时钟：用 24 小时行为密度曲线与行为锚点算出峰均比 266%，用周权重找到峰值日，用赛季相位划开荒到结算共 70 天，并给一个 B 层基准把设计曲线与均匀基线对照，说明为什么日峰均比可以高、周峰均比却要克制。</description></item><item><title>3.3 长线目标与追求感</title><link>https://plumephp.com/slg-arch-03-3-long-term-goals/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-03-3-long-term-goals/</guid><description>把 SLG 的长线目标做成可校验的台阶刻度：给定每日发展度收入，算出《王朝纪元》8 级目标的达成日与相邻间隔，用「追求感带」判定每个台阶是太密还是太疏，并让 Python 与 TypeScript 两侧算出逐位一致的结果，把追求感从口头判断变成可回归的断言。</description></item><item><title>4.1 系统清单与依赖图</title><link>https://plumephp.com/slg-arch-04-1-system-inventory-dependency-graph/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-04-1-system-inventory-dependency-graph/</guid><description>把《王朝纪元》的 18 个系统写成结构化 JSON 清单，用 S 层脚本对依赖图做四问校验：悬空依赖、环、孤儿、根可达。脚本一次跑清并产出拓扑序 CSV 与分层 SVG，再用一段故意造环的坏数据确认校验器真的会报错，为后续的解锁节奏与耦合判断立好可复用的底座。</description></item><item><title>4.2 解锁节奏与前置链</title><link>https://plumephp.com/slg-arch-04-2-unlock-pacing-prerequisite-chain/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-04-2-unlock-pacing-prerequisite-chain/</guid><description>解锁节奏不是拍脑袋定天数：本节把每个系统的前置链与天数门槛写成一张门槛表，用 S 层脚本逐日推进，算出「第 N 天解锁第几个系统」的时间轴与累计曲线，再用 TypeScript 原型测试断言它与 Python 侧逐位一致，并解释为什么「前置满足」不等于「当天就能开」。</description></item><item><title>4.3 耦合与解耦：什么时候不该拆</title><link>https://plumephp.com/slg-arch-04-3-coupling-decoupling/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-04-3-coupling-decoupling/</guid><description>前置依赖只是耦合的一层：本节把系统之间「读写了谁的数据」写成非结构耦合边，用 S 层脚本合并结构边与数据、时序边，算出每个系统的扇入、扇出、耦合分与变更影响半径，再用 B 基准给出软告警，最后讨论解耦为什么不是越多越好、什么时候该留着耦合不拆。</description></item><item><title>5.1 功能树与模块职责</title><link>https://plumephp.com/slg-arch-05-1-feature-tree-module-duty/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-05-1-feature-tree-module-duty/</guid><description>把 SLG 的功能清单变成一棵可校验的树：模块是产品侧的职责单元，功能是玩家可感知的最小交付点。用《王朝纪元》8 模块 22 功能的配置，校验唯一归属、无悬空引用、无环、无孤儿与模块覆盖，把「模块职责」从口头分工变成每次改配置都会报警的有守卫的不变量。</description></item><item><title>5.2 数据流与状态归属</title><link>https://plumephp.com/slg-arch-05-2-dataflow-state-ownership/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-05-2-dataflow-state-ownership/</guid><description>功能树钉死了「功能归谁」，这一节钉死「状态归谁」：每份状态有且只有一个写者，可被多个模块读。用《王朝纪元》9 份状态的归属表校验单写者、归属一致与引用有效，再用耦合度基准把「活动模块读了四个模块的状态」这类越界软告警出来，让模块边界真正稳固。</description></item><item><title>5.3 跨模块契约与接口约定</title><link>https://plumephp.com/slg-arch-05-3-cross-module-contract/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-05-3-cross-module-contract/</guid><description>状态归属解决了「谁有权写」，这一节解决「一个模块怎么请求另一个模块去写」：用 TypeScript 接口把每个模块的写状态、读状态、命令与事件写死，再用 node --test 断言「同一份状态被两个模块写」「写了不属于自己的状态」一定被检出，让模块契约变成可执行的边界。</description></item><item><title>6.1 主界面框架与信息层级</title><link>https://plumephp.com/slg-arch-06-1-main-ui-information-hierarchy/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-06-1-main-ui-information-hierarchy/</guid><description>把 SLG 主界面写成一张有向图：节点是界面、边是一次跳转、层级决定信息深度。本节用脚本从主城做 BFS，算出每个功能的跳转深度、可达性与没有入口的孤儿界面，并给出主界面扇出与层级规范怎么定的可量化依据，附可跑脚本与 SVG 图。只谈信息架构，不谈视觉与美术。</description></item><item><title>6.2 操作路径与点击成本</title><link>https://plumephp.com/slg-arch-06-2-operation-path-click-cost/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-06-2-operation-path-click-cost/</guid><description>把高频操作的最短点击路径建模成图上最短路问题：边权是一次跳转的点击成本，用 Dijkstra 求主界面到目标功能的最少点击次数，再按操作频率算加权平均点击成本，最后与设计预算做基准对照。含可跑的 Python 仿真、TypeScript 原型、CSV 明细与软告警基准。</description></item><item><title>6.3 新手引导的信息架构</title><link>https://plumephp.com/slg-arch-06-3-onboarding-information-architecture/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-06-3-onboarding-information-architecture/</guid><description>把新手引导建模为「前置链 + 状态机」：每一步有前置步骤与基础通过率，前置为 AND 语义时瓶颈由最难过的一步决定。用脚本仿真分步流失漏斗，算出最终转化率并定位流失最大的步骤，输出 CSV 与漏斗图，含可跑的 Python 仿真与 TypeScript 状态机原型。只谈信息架构与步骤编排，不谈视觉表现。</description></item><item><title>7.1 版本列车与赛季结构</title><link>https://plumephp.com/slg-arch-07-1-version-train-season-structure/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-07-1-version-train-season-structure/</guid><description>版本列车决定 SLG 的内容供给节奏。本节把赛季结构、里程碑与依赖写成可校验的配置，用 bastion 脚本逐日扫描团队负载，一次抓出依赖倒置、里程碑间隔不足与资源冲突三类排期事故，并用《王朝纪元》的四车列车跑出可复现的真实报告与对应修复动作。</description></item><item><title>7.2 内容产能与排期</title><link>https://plumephp.com/slg-arch-07-2-content-capacity-schedule/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-07-2-content-capacity-schedule/</guid><description>上一节定下了版本列车的到站日期，本节回答「能不能做完」。用每个任务的人天估计与各职能每日产能，算出确定性完成日与瓶颈职能，再用蒙特卡洛把点估计变成区间，量化排期的系统性乐观偏差，并用《王朝纪元》版本的真实跑数，给出留缓冲与砍需求两类可执行决策。</description></item><item><title>7.3 灰度、放量与回滚</title><link>https://plumephp.com/slg-arch-07-3-canary-ramp-rollback/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-07-3-canary-ramp-rollback/</guid><description>版本做完不等于能安全上线。本节把灰度写成配置：用 FNV-1a 分桶决定「放多少」，用硬/警告两级阈值决定「继续、暂停还是回滚」，并用《王朝纪元》的真实跑数，演示一次 50% 直跳 100% 的翻车，以及拆成小步后顺利放量的完整过程与代价。</description></item><item><title>8.1 北极星指标与指标树</title><link>https://plumephp.com/slg-arch-08-1-north-star-metric-tree/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-08-1-north-star-metric-tree/</guid><description>把北极星指标从「拍脑袋定的一个数」变成一棵可校验的指标树：用配置驱动的《王朝纪元》指标树（10 个指标、根为周活跃领主数），机械校验父子关系、口径唯一与无重复定义，并让校验器自证会报错，S 层脚本产出 JSON + CSV + SVG，讲的是口径与采集框架。</description></item><item><title>8.2 埋点规范与口径统一</title><link>https://plumephp.com/slg-arch-08-2-tracking-spec-caliber/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-08-2-tracking-spec-caliber/</guid><description>埋点口径打架的根因是事件没有 schema：用一份配置驱动的《王朝纪元》埋点规范（4 个事件、公共必填字段、命名正则、参数类型与枚举），配 TypeScript 校验器把一批上报样本判出 7 类违规码，让「口径统一」从口头约定变成可断言的埋点契约。</description></item><item><title>8.3 数据看板与告警</title><link>https://plumephp.com/slg-arch-08-3-dashboard-alerting/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-08-3-dashboard-alerting/</guid><description>看板的价值不在画曲线，而在给曲线装闸门：用配置驱动的《王朝纪元》告警规则（阈值 / 环比 / 同比三类，带 streak 过滤），跑一段 mulberry32 确定性时序做告警判定，产出 CSV + SVG，再用 B 层基准量化误报率与检出延迟。</description></item><item><title>9.1 资源分类与货币分层</title><link>https://plumephp.com/slg-arch-09-1-resource-currency-layering/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-09-1-resource-currency-layering/</guid><description>经济系统的第一块地基是分层：把资源按稀缺度分成基础、进阶、稀有，把货币按流通范围分成软货币、硬货币、代币，讲清每层的作用与流通边界，并用一段可跑的 Python 脚本从 config 里读出分层、校验「每层至少一种资源」与「不存在孤立资源」。</description></item><item><title>9.2 绑定与非绑定、账号与角色</title><link>https://plumephp.com/slg-arch-09-2-bound-unbound-account-role/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-09-2-bound-unbound-account-role/</guid><description>上一节按稀缺度给资源分了层，但稀缺度不回答「它归谁、能流到哪」。本节给资源加第二个正交维度：绑定与非绑定、账号级与角色级，用一张四组合表讲清同一资源在不同归属下能不能跨玩家交易、能不能账号内共享，并配一段可跑的 Python 脚本校验归属矩阵的完备性、一致性与反例自检。</description></item><item><title>9.3 账本模型与守恒约束</title><link>https://plumephp.com/slg-arch-09-3-ledger-model-conservation/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-09-3-ledger-model-conservation/</guid><description>分层和归属定完资源的身份，这一节给经济配一个动态机制——复式账本：每一次资源变动都是一组借贷分录，产出记 @source、消耗记 @sink、玩家间转移只搬存量。配一段可跑的 Python 脚本，跑完一批交易后断言总量守恒，再用 B 层基准压测记账路径不会漏记。</description></item><item><title>前言：怎么读这套书</title><link>https://plumephp.com/slg-arch-intro/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-intro/</guid><description>卷一的阅读指南：三条阅读路径（产品经理的系统课、经济策划的建模课、只看闭环）、可运行性五档口径（S 仿真 / P 原型 / D 静态 / X 不可复现 / B 基准）、贯穿项目 bastion 的目录结构、需要准备的环境（Python 3 + numpy/pandas、Node 26，无需 tsc 与 npm），以及怎么验证书里的代码真的能跑。</description></item><item><title>序：为什么写一套能跑的 SLG 设计书</title><link>https://plumephp.com/slg-arch-preface/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-preface/</guid><description>产品设计书最容易写成散文：道理都对，落不了地。这篇序讲清楚这套书的写法——把 SLG 的设计写成可验证的模型，每一节配可跑的仿真或原型，一份配置两处消费，改一个数字两边结果都变。也讲清楚它与站内既有的 SLG 技术架构、经济平衡、赛季运营等内容的边界。</description></item><item><title>附录 A：环境与复现速查</title><link>https://plumephp.com/slg-arch-appendix-a/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-appendix-a/</guid><description>卷一的复现手册：本机实测环境（Python 3.14 + numpy/pandas、Node 26 原生 TypeScript、无 matplotlib、无 tsc/npm）、bastion 完整目录结构、全部实跑命令、跨语言逐位一致的三条硬规则、以及一份可一键复现的校验脚本。遇到「书里的数字对不上」时先看这一页。</description></item><item><title>附录 B：配置表字段字典与 schema</title><link>https://plumephp.com/slg-arch-appendix-b/</link><pubDate>Mon, 12 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/slg-arch-appendix-b/</guid><description>bastion 的配置表字段字典与 schema：resources / buildings / units / battle 四张核心表的每个字段含义、类型与取值范围，整数比与整数百分比的表达约定，以及一份可跑的 schema 校验脚本——它能在仿真和原型跑之前，先把配错字段的配置拦下来。</description></item></channel></rss>