<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>《游戏设计》卷三《原型、可玩性与品类》· 全书目录与章节索引（50 篇） on PlumePHP</title><link>https://plumephp.com/posts/books/%E5%8E%9F%E5%9E%8B%E5%8F%AF%E7%8E%A9%E6%80%A7%E4%B8%8E%E5%93%81%E7%B1%BB/</link><description>Recent content in 《游戏设计》卷三《原型、可玩性与品类》· 全书目录与章节索引（50 篇） 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/posts/books/%E5%8E%9F%E5%9E%8B%E5%8F%AF%E7%8E%A9%E6%80%A7%E4%B8%8E%E5%93%81%E7%B1%BB/index.xml" rel="self" type="application/rss+xml"/><item><title>《游戏设计》卷三《原型、可玩性与品类》目录</title><link>https://plumephp.com/gd-proto-toc/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-toc/</guid><description>《游戏设计》卷三《原型、可玩性与品类》目录：16 章 48 节，把同一份玩法规格 config/play_spec.json 实例化到六个品类变体（卡牌构筑 / 塔防 / 三消 / 平台跳跃 / 自走棋 / 放置），跑同一套仿真与确定性内核，要求 6/6 通过可玩性闸门，并给出 6×6 品类机制距离矩阵。本页给出与既有内容的分工、六档可运行性口径与全书 16 章 48 节完整清单。</description></item><item><title>1.1 不写代码先验规则</title><link>https://plumephp.com/gd-proto-01-1-validate-rules-before-code/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-01-1-validate-rules-before-code/</guid><description>把规则先写在纸面上，不写一行代码就能判断它是否完整：纸面规则表把每条规则写成触发、条件、效果、状态增量，脚本再校验它是「可执行的全函数」——没有悬空状态变量、条件可判定、引用不越界，并用负对照证明检查非空。这是《灰烬牌库》从纸面走向可执行规格的第一步。</description></item><item><title>1.2 纸面原型的记录与回放</title><link>https://plumephp.com/gd-proto-01-2-paper-prototype-record-replay/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-01-2-paper-prototype-record-replay/</guid><description>纸面推演只有结论就是无法复现的轶事。本节把一次两回合推演记成「动作序列 + 每步全量整数状态」的 JSON，再用引擎回放它、逐字段比对，误差必须是 0；每步还校验牌数、伤害、能量、格挡四条守恒。负对照把第 7 步抄错 1 点，回放必须精确定位到那一步。</description></item><item><title>1.3 纸面到规格的转换</title><link>https://plumephp.com/gd-proto-01-3-paper-to-spec-conversion/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-01-3-paper-to-spec-conversion/</guid><description>把纸面规则表与纸面记录机械地转成与 play_spec.json 同构的结构：字段一一对应，标出哪些能机械转（M）、哪些必须人工裁决（X）。X 补齐后回放纸面记录覆盖的动作序列，摘要必须与原始规格逐字一致——「机械部分无信息丢失」这才算被证明。</description></item><item><title>10.1 放置的机制解剖</title><link>https://plumephp.com/gd-proto-10-1-idle-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-10-1-idle-mechanic-anatomy/</guid><description>把放置的五个机制字段——自动产出、离线收益、升级成本、里程碑、转生——各绑到 core/genre/idle.ts 里一段确定性代码：增长曲线用整数递推与 BigInt 闭式两种口径，规格骨架与 play_spec.json 同构、只覆盖 rules / params 两段；W 层把五格画进单文件 HTML 并真玩，P 层逐格断言 15 条全绿。</description></item><item><title>10.2 放置的曲线与相变</title><link>https://plumephp.com/gd-proto-10-2-idle-curve-phase-transition/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-10-2-idle-curve-phase-transition/</guid><description>把放置的增长曲线钉成整数：升级成本给递推与 BigInt 闭式两种口径并实测整数溢出边界（Number 幂在 n=7 越过 2^53、n=103 起失真、n=104 起 NaN）；再扫升级成本增长率，粗扫加二分找到里程碑达成率跌破 500‰ 的临界点 1042，端相分别对应进度失控与进度卡死。</description></item><item><title>10.3 放置的动因</title><link>https://plumephp.com/gd-proto-10-3-idle-motivation/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-10-3-idle-motivation/</guid><description>把自我决定理论的三要素映射成三个可算的代理指标——自主看可选升级路径数、胜任看升级成功间隔、关联看里程碑间隔——并在同一份规格上扫五档升级成本增长率（1020 至 1100），验证三个指标同向移动；全文显式声明它们只是 proxy，只做相对比较、禁绝对化、不证明好玩。</description></item><item><title>11.1 战斗的机制解剖：伤害、时序、资源</title><link>https://plumephp.com/gd-proto-11-1-combat-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-11-1-combat-mechanic-anatomy/</guid><description>把《灰烬牌库》的战斗拆成三组可断言字段——伤害结算（min 截断与守恒）、时序（出牌次序与谁先手）、资源（能量门控与三分区守恒），每组各绑内核里一段确定性代码：S 层枚举手牌全排列，同一手牌同能量总伤害从 6 变到 20（极差 14）；P 层六条断言全绿。</description></item><item><title>11.2 战斗的策略空间与平衡</title><link>https://plumephp.com/gd-proto-11-2-combat-strategy-space-balance/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-11-2-combat-strategy-space-balance/</guid><description>用固定下标族 slot0…slot4 在 16 个种子上跑出得分矩阵，算严格/弱支配对、支配策略缺失度（千分比）与结果分布的 Shannon 熵（×1000）：没有支配策略（缺失度 1000‰），但 slot4 被其余四条策略严格支配——策略空间既没被解死、也不是全有效，是一个有真实弱选项的可玩空间。</description></item><item><title>11.3 战斗的相变与支配</title><link>https://plumephp.com/gd-proto-11-3-combat-phase-transition-dominance/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-11-3-combat-phase-transition-dominance/</guid><description>把 enemyAttack 从 8 扫到 48，序参量取「slot1 严格支配 slot4 的种子比例」（千分比）：参数小时为 1000‰，调大后一路下滑。粗扫步长 4 框住跨越 500‰ 的区间，二分两轮到临界 enemyAttack=30，步长 1 全网格复验一致，相变带宽 13，全程 41 格 656 次 run。</description></item><item><title>12.1 手感不是渲染：输入-反馈的机制</title><link>https://plumephp.com/gd-proto-12-1-game-feel-is-not-rendering/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-12-1-game-feel-is-not-rendering/</guid><description>把手感从渲染层剥出来，写成整数帧的确定性状态机：输入采样 → 缓冲 → 状态推进 → 反馈触发。同一段输入脚本、同一段美术表现，只改土狼时间与输入缓冲两组窗口参数，就得到四条互不相同的帧序列——手感差异全部落在可断言的整数帧上，并由 7 条 P 层断言固定住。</description></item><item><title>12.2 手感参数的可计算化</title><link>https://plumephp.com/gd-proto-12-2-game-feel-params-computable/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-12-2-game-feel-params-computable/</guid><description>把手感参数可计算化：八个参数全是整数，帧数类与单位类都能断言逐位相等；只有帧到毫秒的感知派生量要按声明容差（60 fps 下一帧约 17 ms）断言。给出土狼时间与输入缓冲的整数边界、击退衰减的精确整数递推，并用一张敏感度表划清改时序与只改表现的参数。</description></item><item><title>12.3 手感的度量与断言</title><link>https://plumephp.com/gd-proto-12-3-game-feel-metric-assertion/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-12-3-game-feel-metric-assertion/</guid><description>把「手感」操作化为三条可断言的帧级不变量——反馈延迟上界、缓冲窗口内输入不丢失、土狼窗口单调——再用真断言跑一遍。另给一个代理指标 responsePermille（响应率千分比），并显式声明它只是 proxy：只做相对比较、禁绝对化，粒度粗到 baseline 与 noCoyote 同为 1000，必须靠帧级不变量才分得开。</description></item><item><title>13.1 规格的品类参数化</title><link>https://plumephp.com/gd-proto-13-1-spec-genre-parameterization/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-13-1-spec-genre-parameterization/</guid><description>把六份品类规格投影到同一份六段 schema（id / naming / state / rules / params / invariant）：本体要一层 view 投影，五个品类变体本来就在这六段上。划出「不变量」——骨架一致、naming 的 8 个槽位、无浮点、invariant 非空——与「自由度」——规则条目 11~52、参数字段 2~8、内容指纹两两不同。</description></item><item><title>13.2 六个品类变体的实例化</title><link>https://plumephp.com/gd-proto-13-2-six-genre-variant-instantiation/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-13-2-six-genre-variant-instantiation/</guid><description>把六份规格各自真跑一遍——卡牌构筑（本体）/ 塔防 / 三消 / 平台跳跃 / 自走棋 / 放置——并列成一张表：规格 id、规则段条目数、状态段字段数、参数字段数、不变量条数、确定性 digest。表同时证明结构同构（快照都投影进同一套 12 个契约槽位）与内容不同（四组计数与 digest 两两不同）。</description></item><item><title>13.3 变体的可玩性闸门</title><link>https://plumephp.com/gd-proto-13-3-variant-playability-gate/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-13-3-variant-playability-gate/</guid><description>给六个品类变体定一套统一的五条判据——确定性、不变量、终态可达、契约同构、扰动非退化——逐个判通过或不通过，落成机器可读的 out/gd_proto_13_gate.json 并在正文逐字贴出。平台跳跃的种子轴惰性（16 个种子只出 1 个结果桶）如实记录、不掩盖；胜率与主桶占比都显式声明为代理指标。</description></item><item><title>14.1 品类的特征向量</title><link>https://plumephp.com/gd-proto-14-1-genre-feature-vector/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-14-1-genre-feature-vector/</guid><description>给六个品类各造一个十维整数特征向量：机制计数、状态字段数、策略空间对数与熵、非支配率、状态空间对数、决策深度、随机结构计数、相变宽度、平均步数。说明每维的选择理由与「机制无关 vs 品类特有」的边界，从规格文本数出六维、从内核真跑出四维，落成可复现的 6×10 矩阵。</description></item><item><title>14.2 距离矩阵与可区分性</title><link>https://plumephp.com/gd-proto-14-2-distance-matrix-distinguishability/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-14-2-distance-matrix-distinguishability/</guid><description>先逐维 min-max 归一化到 0..1000，再用整数 L1 定义距离、用 floor(1000×d/maxd) 归一化成千分比，落成 6×6 对称矩阵，并验证对称性、三角不等式与「最小非零距离 &gt; 0」的可区分性。实测塔防↔自走棋最近（268‰）、自走棋↔放置最远（1000‰），全部整数、无浮点。</description></item><item><title>14.3 距离的读法与边界</title><link>https://plumephp.com/gd-proto-14-3-distance-reading-boundary/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-14-3-distance-reading-boundary/</guid><description>把 6×6 距离矩阵读出来，并老实交代三条边界：距离依赖维度选择（留一维度敏感性实测 Δ 在 33~63‰，最近一对在 4/10 次留一下改判）、整数地板除的量化误差上界（归一化传播到 L1 每对 ≤20、千分比每格 &lt;1），以及「距离只是代理指标、只做相对比较、禁绝对化」，并给出与风格距离矩阵的分工。</description></item><item><title>15.1 六品类变体的回归</title><link>https://plumephp.com/gd-proto-15-1-six-variant-regression/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-15-1-six-variant-regression/</guid><description>把 13.3 的闸门报告当基线、把 14 章的距离口径并进来，合成一套回归套件，对六个品类变体重跑一遍并断言结果不变——回归 = 稳定性，不是正确性。三层：结构回归（六变体规格骨架同构）、数值回归（六条 digest 逐字相同）、判据回归（五条闸门判据的通过状态不变），并附一个负例证明回归不是恒真。</description></item><item><title>15.2 六分之六通过闸门</title><link>https://plumephp.com/gd-proto-15-2-six-of-six-gate-pass/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-15-2-six-of-six-gate-pass/</guid><description>正式判定六个品类变体 6/6 通过闸门，并给出 6 变体 × 5 判据 = 30 格的通过矩阵。权威输入是 13.3 的 out/gd_proto_13_gate.json，但本节不照抄——重跑六个内核重新判五条，再断言与权威输入逐格一致；另加一层扰动幅度稳健性扫描，报告通过状态保持的幅度区间，只软告警不硬失败。</description></item><item><title>15.3 失败的诚实报告</title><link>https://plumephp.com/gd-proto-15-3-honest-failure-report/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-15-3-honest-failure-report/</guid><description>把 13.3 如实记下的三处保留逐条分类并给出处置：平台跳跃种子轴惰性是设计使然、不是缺陷；塔防种子轴只有 10 桶是真实区分度不足、可改进但不是 bug；「胜率不得为 0‰ 或 1000‰」这条直觉判据被实测证伪、是判据本身错。同时划清闸门的诚实边界：它只覆盖机制侧，玩家体验、美术、性能、网络、商业化需真实业务环境。</description></item><item><title>16.1 三卷装配检查表</title><link>https://plumephp.com/gd-proto-16-1-three-volume-assembly-checklist/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-16-1-three-volume-assembly-checklist/</guid><description>把三卷 150 节的产物汇成一张可勾选的检查表：三卷各回答一个问题，每项给出证据路径、真命令、通过判据与档位（S/P/W/D/X/B）。检查表本体是数据文件，执行器逐项核对产物是否存在、档位是否合法；X 档一律显式标注「需真实业务环境，命令行不可复现」。19 项全部 ok、fail=0，本节也说明检查表为什么不能写成许愿池。</description></item><item><title>16.2 一份规格的全链路回放</title><link>https://plumephp.com/gd-proto-16-2-one-spec-full-chain-replay/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-16-2-one-spec-full-chain-replay/</guid><description>把 16.1 检查表里最硬的一条展开成全链路回放：从 config/play_spec.json 出发，在 S 层 Python、P 层 TypeScript、W 层浏览器与第 13 章六个品类变体上各取一次 digest，证明逐字相同；再给出 B 层稳健性证明——只改一个规则参数 energyMax，链上三处宿主同步改变且仍逐字一致。附四个节点的 digest 对照表与六个变体的结果摘要。</description></item><item><title>16.3 交付与后续</title><link>https://plumephp.com/gd-proto-16-3-deliverable-and-next/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-16-3-deliverable-and-next/</guid><description>三卷本收官清点：150 节正文加一条跨语言工具链（config / sim / core / web / out 七个目录），三卷各留一份交接产物；说明三条使用入口——照着读、照着复现、换成自己的规格当模板；划清边界——机制侧可算，主观体验只能用代理指标做相对比较，美术 / 性能 / 网络 / 商业化需真实业务环境（X 档）；最后交代三个后续方向，并让三卷的三个问题在此闭合。</description></item><item><title>2.1 数字原型的最小内核</title><link>https://plumephp.com/gd-proto-02-1-digital-prototype-minimal-kernel/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-02-1-digital-prototype-minimal-kernel/</guid><description>数字原型的最小内核不是「写得少」，而是「可数的少」：一份 config 进、一条 digest 出，5 个模块、4 条不变量、本版 134 行运行时逻辑；单局 4 微秒是原机历史记录。本节把「最小」换成三条可数判据——多少行、几个不变量、跑多久，并用 P 层断言与 S 层实测把它钉死。</description></item><item><title>2.2 数字原型的迭代循环</title><link>https://plumephp.com/gd-proto-02-2-digital-prototype-iteration-loop/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-02-2-digital-prototype-iteration-loop/</guid><description>迭代循环只有三步：改一个参数、跑一次内核、重跑一次原型。一轮的代价是可数的——规格里改 1 行、内核跑几微秒、代理指标重采样几百微秒。本节用 5 轮真实迭代给出这个代价，并用一个负例（energyMax 改成 -1）演示不变量断言如何拦住坏参数。</description></item><item><title>2.3 原型的范围与止损</title><link>https://plumephp.com/gd-proto-02-3-prototype-scope-stop-loss/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-02-3-prototype-scope-stop-loss/</guid><description>原型最大的风险不是做不出来，而是做不完：范围一旦失控，迭代就变成无限拉锯。本节给「该停了」两条可算的判据——连续 3 轮代理指标无变化即停、总轮数上限兜底——并真跑到触发为止：主循环停在第 5 轮，抽掉唯一让指标动过的那轮后 control 停在第 3 轮。</description></item><item><title>3.1 可玩原型的规格内联</title><link>https://plumephp.com/gd-proto-03-1-playable-prototype-spec-inline/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-03-1-playable-prototype-spec-inline/</guid><description>把 config/play_spec.json 与 core/src/ashdeck/ 的五个确定性内核模块塞进一个自包含 HTML：无构建工具、无网络、无外部 script，拷走一个文件就能玩。本节给出构建脚本与产物级断言——页面里内联的规格必须与磁盘上的规格逐字段相等，任何外部引用都会让「可离线、可分享」失效。</description></item><item><title>3.2 浏览器里的真玩与断言</title><link>https://plumephp.com/gd-proto-03-2-browser-play-and-assert/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-03-2-browser-play-and-assert/</guid><description>在无头浏览器里真的玩一局：注入的是整段 25 条策略序列，不是逐帧点按；断言的是胜负与状态（won / over / enemyHp / dealt 与不变量），而不只是一条摘要。页面 digest 必须与 Node 侧 digestSnap(runSpec(...)) 逐字相同——同一段源码的两个宿主本就该给出同一个答案。</description></item><item><title>3.3 原型的可分享与可回放</title><link>https://plumephp.com/gd-proto-03-3-prototype-shareable-replayable/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-03-3-prototype-shareable-replayable/</guid><description>把「种子 + 整段策略序列」编码成可回放的链接片段 #s=301&amp;seq=...，页面读取 location.hash 后逐字重现同一局。本节给出编解码契约、页面侧 replay() 的三步、以及回放一致性的断言：Python 侧重跑与 Node 构建期 digest 逐字相同，再编码必须无损。</description></item><item><title>4.1 测试的目标与假设</title><link>https://plumephp.com/gd-proto-04-1-test-goal-hypothesis/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-04-1-test-goal-hypothesis/</guid><description>「我想验证难度会不会太高」不是假设，是愿望——它没法被判伪。本节把测试目标写成可机检的五元组：指标、方向、阈值、样本量与一对互斥命题；先做可证伪性自检，再用 32 个种子的试点反推所需样本量，实跑得 nRequired=256，与设计门槛 Δ=150‰ 对齐。</description></item><item><title>4.2 采样与置信区间</title><link>https://plumephp.com/gd-proto-04-2-sampling-confidence-interval/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-04-2-sampling-confidence-interval/</guid><description>样本量决定「看得见的最小差别」。本节把样本量落到整数 Wilson 区间上：对占比类可解率用 z=2 的整数近似（isqrt，非 1.96），对非占比类用块极差；六档种子数实跑显示半宽之和从 n=8 的 545‰ 收到 n=256 的 117‰，刚好跨过 Δ=150‰。</description></item><item><title>4.3 从测试到决策</title><link>https://plumephp.com/gd-proto-04-3-test-to-decision/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-04-3-test-to-decision/</guid><description>区间要变成决策，判据必须是三态而不是两态。本节用整数判据输出通过 / 不通过 / 样本不足：先看半宽之和能否分辨 Δ，再看点差够不够。实跑三个案例恰好各出一态，其中小样本案例点差高达 375‰ 却被诚实地判为「样本不足」，而参数微调案例点差为 0 判不通过。</description></item><item><title>5.1 卡牌构筑的机制解剖</title><link>https://plumephp.com/gd-proto-05-1-deckbuilder-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-05-1-deckbuilder-mechanic-anatomy/</guid><description>把《灰烬牌库》的五个机制字段——洗牌袋、抽牌、出牌、能量、弃牌——各绑到确定性内核里的一段代码，用一张字段表把机制名词与可断言的实现对齐：W 层把五个字段画进单文件 HTML 并真玩，P 层逐字段断言，两处 digest 与基线逐字一致，W 层 3 断言、P 层 7 断言全绿。</description></item><item><title>5.2 构筑的方差与平衡</title><link>https://plumephp.com/gd-proto-05-2-deckbuilding-variance-balance/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-05-2-deckbuilding-variance-balance/</guid><description>把构筑的方差量成整数：精确枚举 C(12,5)=792 种起手，三副牌组的起手强度方差相差 5.8 倍；「均匀」与「起伏」两副牌起手期望完全相同（均值 30），方差却是 12727 对 57272，胜率一样而结束回合的方差相差 2.3 倍——方差不是坏东西，它是节奏的来源。</description></item><item><title>5.3 构筑的相变</title><link>https://plumephp.com/gd-proto-05-3-deckbuilding-phase-transition/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-05-3-deckbuilding-phase-transition/</guid><description>把牌组规模当成被扫的构筑参数：往《灰烬牌库》里加废牌，牌组从 12 张膨胀到 32 张，128 个种子上的胜率从 1000‰ 掉到 46‰。粗扫步长 4 框住跨越 500‰ 的区间 [20, 24]，二分 2 轮钉出临界牌组规模 22，与步长 1 的全网格逐个一致；相变带宽 13，2688 次 run 实跑约 28 毫秒。</description></item><item><title>6.1 塔防的机制解剖</title><link>https://plumephp.com/gd-proto-06-1-tower-defense-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-06-1-tower-defense-mechanic-anatomy/</guid><description>把塔防的五个机制字段——路径、波次、索敌、塔位、升级——各绑到 core/genre/towerdefense.ts 里一段确定性代码，用一张字段表把机制名词与可断言实现对齐：规格骨架与 play_spec.json 同构、只覆盖 rules / params 两段，W 层把字段画进单文件 HTML 并真玩，P 层逐字段断言，两处 digest 与基线逐字一致。</description></item><item><title>6.2 塔防的策略空间</title><link>https://plumephp.com/gd-proto-06-2-tower-defense-strategy-space/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-06-2-tower-defense-strategy-space/</guid><description>把塔防的「塔位 × 塔种 × 升级次序」枚举成策略空间：忽略花费剪枝的上界 271453 经剪枝压到 529 条可达布防，空间熵 9046、结果分布熵 2293、支配缺失度 331‰；全配置上界 469070941 远超枚举上限，只能按索引采样 512 次，并给出「何时改用采样」的判据。熵与支配度是代理指标，只做相对比较。</description></item><item><title>6.3 塔防的难度曲线</title><link>https://plumephp.com/gd-proto-06-3-tower-defense-difficulty-curve/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-06-3-tower-defense-difficulty-curve/</guid><description>把波次强度 waveHpStep 从 0 往上推，用粗扫 + 二分找「防守被解开」的临界点：临界点是 14，两侧胜率 13→937‰、14→343‰、15→0‰，临界宽度只有 1；粗扫 + 二分只用 7 格 224 run 就钉到，占步长 1 全网格的 114‰，并给出二维网格超预算时退回采样的判据。胜率是代理指标，只做相对比较。</description></item><item><title>7.1 三消的机制解剖</title><link>https://plumephp.com/gd-proto-07-1-match3-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-07-1-match3-mechanic-anatomy/</guid><description>把三消的五个机制字段——棋盘、交换、消除、掉落、连锁——各绑到 core/genre/match3.ts 里一段确定性代码，用一张字段表把机制名词与可断言实现对齐：规格骨架与 play_spec.json 同构、只覆盖 rules / params 两段，W 层把字段画进单文件 HTML 并真玩，P 层逐字段断言，两处 digest 与基线逐字一致。</description></item><item><title>7.2 三消的随机与保底</title><link>https://plumephp.com/gd-proto-07-2-match3-randomness-pity/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-07-2-match3-randomness-pity/</guid><description>三消的随机不是抽一张牌，是整块棋盘：每次补牌都可能补出一个没有任何合法交换的死局。本节用同一批 256 个种子量死局率，再把「连续 N 次无可消就重排整板」的保底写成可播种的整数代码——保底把死局率从 121‰ 压到 0‰，同时把分数标准差从 265 削到 132；死局率与方差是代理指标，只做相对比较。</description></item><item><title>7.3 三消的节奏</title><link>https://plumephp.com/gd-proto-07-3-match3-rhythm/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-07-3-match3-rhythm/</guid><description>三消没有回合，节奏量不出时长，只能量每步结算的形状：256 局 6144 步的连锁长度分布（1 层 639‰、2 层 232‰、尾巴拖到 10 层）与每步消除数分布（3-5 格 533‰、平均 6.182 格），加代表种子 70701 的24 步节奏线与 CSV + 纯 xml.etree SVG，并用 Python 镜像做跨语言逐字对账；节奏指标是代理指标。</description></item><item><title>8.1 平台跳跃的机制解剖</title><link>https://plumephp.com/gd-proto-08-1-platformer-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-08-1-platformer-mechanic-anatomy/</guid><description>把平台跳跃的六个机制字段——水平速度、跳跃高度、重力、土狼时间、输入缓冲、平台判定——各绑到 core/genre/platformer.ts 里一段确定性代码，位置与速度一律用千分格整数表达，禁浮点；规格骨架与 play_spec.json 同构、只覆盖 rules / params 两段，W 层把字段画进单文件 HTML 并真玩，P 层逐字段断言，两处 digest 与基线逐字一致。</description></item><item><title>8.2 平台跳跃的技巧曲线</title><link>https://plumephp.com/gd-proto-08-2-platformer-skill-curve/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-08-2-platformer-skill-curve/</guid><description>把「技巧」操作化成一个可算的量：玩家每一跳的按压时刻相对帧级完美点偏移 ±n 帧，枚举 (2n+1)^跳数 条序列报通关率，得到一条单调不增的技巧曲线；n≤2 恒为 1000‰，tol1000 = 2 帧、tol500 = 8 帧。通关率是代理指标，只做相对比较。</description></item><item><title>8.3 平台跳跃的心流带宽</title><link>https://plumephp.com/gd-proto-08-3-platformer-flow-band/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-08-3-platformer-flow-band/</guid><description>把「挑战（关卡要求的容差帧数）− 技巧（玩家可达到的容差帧数）」做成带宽区间而不是单点：扫第一块落点平台宽度得到单调不降的容差曲线，再给高手 / 熟练 / 休闲三档玩家各算一条带宽上下界与越界判据，全部读数都是代理指标，只做相对比较、禁绝对化。</description></item><item><title>9.1 自走棋的机制解剖</title><link>https://plumephp.com/gd-proto-09-1-autobattler-mechanic-anatomy/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-09-1-autobattler-mechanic-anatomy/</guid><description>把自走棋拆成六个机制字段——商店刷新、购买、合成升星、上阵、利息、连胜连败——每格都绑到新建品类内核里的一段确定性代码：W 层把六格商店与待命、上阵画进单文件 HTML 并真玩，P 层逐字段做变异断言，改一格摘要必变，两处 digest 与基线逐字一致。</description></item><item><title>9.2 自走棋的经济与平衡</title><link>https://plumephp.com/gd-proto-09-2-autobattler-economy-balance/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-09-2-autobattler-economy-balance/</guid><description>把自走棋的三个花钱方向——存钱吃利息、刷新换棋子、升级扩容量——都写成整数模型，在 32 个种子上实测：利息是 min(金币整除台阶, 上限)，刷新不亏利息的阈值是 12 金；实跑给出一条可算判据（升级换的是新位、刷新只换最弱）和两个平衡破坏点。</description></item><item><title>9.3 自走棋的涌现</title><link>https://plumephp.com/gd-proto-09-3-autobattler-emergence/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-09-3-autobattler-emergence/</guid><description>把涌现度写成「可达阵容数 / 规则条数 × 1000」的代理指标：本规格枚举出 9390 个可达阵容、16 条规则，涌现度 586875‰；但如实报告一个退化解——敌方强度扫到 20 时只剩 1 个阵容每回合都能赢，21 起无解，涌现度必须与退化检测同读。</description></item><item><title>附录 A 品类参数表、机制距离矩阵与数据集索引</title><link>https://plumephp.com/gd-proto-appendix-a/</link><pubDate>Wed, 14 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/gd-proto-appendix-a/</guid><description>《游戏设计》卷三《原型、可玩性与品类》附录：把六个品类变体的规则段与参数段关键字段汇成品类参数表、把 6×10 整数特征向量与 6×6 机制距离矩阵（L1 与归一化千分比两级）汇成距离表、把全卷 16 章的 S/P/W/D/B 产物按章汇成数据集索引。距离与全部指标都是代理指标，只做相对比较，禁绝对化。</description></item></channel></rss>