Files
gplan-2/docs/acceptance-ap6-ac.md
T

170 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AP6+AC 合并批验收判读口径
> 一句话:行动点压速批(每轮 8→6)与护甲等级批(d20 掷点折扣)合并落地后的验收判读标准——三个数据源(MC 双档 / 真人基线 / 日志分析器)、两段制判读、一条四级调参阶梯。
> 状态:**定稿 v1.0(2026-09-16)**——决策点 a–i 经两轮拍板全部落定,记录见 §4;后续修订走版本历史。
> 口径裁定前提(2026-09-16 测量口径裁定,已拍板):蒙特卡洛 normal 档 = 盲挖策略 = "不会扫雷的玩家"下界,不承载难度语义;perfect 档(零盲挖/全标旗)≈ 真人水平,是强度上界。
> 本文档独立成文,不改任何既有文件;落批后的登记义务见 §5。
## 0. 设计前提:基线是生死带,天赋是出路(2026-09-16 用户拍板)
第一关在**基础数值、零永久天赋加成**时,整关承伤分布必须**跨过主角生命上限(50)**:最坏情况承伤 > 50(会死),最好情况 < 50(能活)——即第一关对零加成的合格玩家有实质失败概率(完美档通关率 gate [35%, 65%])。玩家经多次循环解锁永久天赋获得属性加成后,承伤范围整体下移、生命上限也可能提高,关卡变得可通。**这个"基线生死带 → 天赋解锁 → 压力回落"的落差,就是驱动循环游玩的困难设限点。**
工具映射:MC 的 atk%/hp% 网格即模拟天赋加成轴——基线格 atk+0%/hp+0% = 零加成生死带(阶段二主判据格),满配格 atk+100%/hp+100% = 天赋养成后的成人态(F4 舒适带复验格)。
## 1. 验收前置条件
全部满足才可开跑。任何一条不满足 = 本批未落批,禁止启动验收;也禁止在 AC 批在飞期间预跑——半成品读数会污染同种子历史可比性。
| # | 条件 | 判据 |
|---|---|---|
| 1 | AC 批 smoke 全绿 | `smoke_all.gd` 零失败(AC 批会话交付后执行) |
| 2 | 日志分析器可用 | `game/tools/log_analysis.py` 可运行;对 AC 落批日志能激活掷点面(FIELD_CANDIDATES 命中,或按其数据质量观测面补一行字段适配) |
| 3 | MC 双档可跑 | `smoke/level_monte_carlo.gd` 以策略 both 跑通零报错;完美档零踩雷构造断言通过 |
| 4 | 工作区无半成品 | git status 干净(`core/rng_service.gd` 等在飞改动已收编提交) |
## 2. 验收运行配置
三个数据源全部跑完再判读,禁止用单一数据源下结论。
### 2.1 模拟批(主数据源)
- 工具:`game/smoke/level_monte_carlo.gd`
- 配置:N=30、种子 4200+30(4200–4229,逐局 seed0+i)、策略 both(normal + perfect 双档一次跑齐)——与 2026-09-16 历史坐标同种子同口径。
- 阶段一读数格:基线格 atk+0%/hp+0%(零天赋,生死带判据格)。
- 阶段二加跑满配格 atk+100%/hp+100%(天赋成人态;F4 复验格,已拍板 i①)。
- 消费读数行:整关承伤均/p90、通关率、通关剩余 HP 均(胜)、进 Boss HP 均、平均轮数、普通承伤/场%、Boss 承伤%、踩雷/局、刷新/局。
### 2.2 真人批(修正锚)
- 基线档试玩 3–5 局(已拍板 d=① 方向哨),记录每局种子;每局记整关掉血、零承伤轮、通关与否、体感异常。
- 用途:真人修正系数 k 观测;只登记不回调,不用真人局判 gate。
### 2.3 日志批(机制正确性数据源)
- 工具:`tools/log_analysis.py <logs 目录>` 跑验收期产生的全部 JSONL(建议加 `--per-run`)。
- 消费面:零承伤轮(窄/宽口径)、掷点直方图 / 档位占比 / nat20 率 / EV 减免(按方向)、战斗级承伤带对照、增益战斗期复原、数据质量面。
## 3. 指标判读表
gate = 不满足即该阶段验收失败(按 §4e 阶梯回滚或登记 06-待办清单,禁静默出带);observe = 记录与对照,不判生死。
**两段制(已拍板 h①)**:**阶段一 = 机制验收**——AC 批落批判据(掷点面 / 零承伤轮 / 数据质量等,与压力目标解耦,机制对即闭批);**阶段二 = 压力验收**——调参收敛判据(承伤跨线带 / 通关率 / 通关余量 / F4@满配格),允许经 §4e 阶梯多轮"测–调–重测"直至落带。
| 指标 | 口径(档位/数据源) | 期望带 | 判读 | 段 |
|---|---|---|---|---|
| 完美档整关承伤分布 | MC perfect 基线格,p10 / p90 | **p10 ∈ [35, 45] 且 p90 ∈ [55, 65]**(已拍板 b=B1;蕴含 p10 < 50 < p90 跨线断言,[40,60]/50 形式化) | gate | 二 |
| 完美档通关率 | MC perfect 基线格 | **[35%, 65%]**(已拍板 g=独立 gate);偏差归因规则见下方注 | gate | 二 |
| 完美档 Boss 场承伤占比 | MC perfect 基线格,Boss 战承伤 ÷ 生效 max_hp | observe(生死带的组成部分,可超 50%);单场绝对天花板 ≤100% 生命上限 | observe | 二 |
| 完美档普通场承伤占比 | MC perfect 基线格,逐普通战承伤 ÷ 生效 max_hp | observe;单场绝对天花板 ≤100% 生命上限 | observe | 二 |
| 盲挖档通关率 | MC normal | 无 gate、无触发动作,纯记录(已拍板 c=①;基线生死带下 0% 为预期态,见 §0) | observe | 二 |
| 通关余量(完美档通关者剩余 HP 的 p90/p10) | MC perfect 基线格 | p90 ≤ 13 且 p10 ≥ 3(旧带保留:新设计下幸存者恰为"承伤 <50"的局,余量天然回落该语义域);阶段二收敛复验,收敛前 observe | gate(收敛后) | 二 |
| 平均轮数(完美档) | MC perfect 基线格 | observe,带值待压力收敛后按新基线回填(旧带 [14,17] 绑定旧压力水平,不适用) | observe | 二 |
| 满配格承伤占比(F4 复验) | MC perfect 满配格 atk+100%/hp+100% | 普通场 ≤20% / Boss 场 ≤50% 生效 max_hp(原值,已拍板 i① 改挂满配格——基线=生死带、加成=舒适带,两带各司其职) | gate | 二 |
| 零承伤轮(窄口径) | 日志分析器:有攻击落地且承伤 0 的轮 | 0(AC 伤害全局下限 1 后构造趋零) | gate | 一 |
| 零掉血轮(宽口径) | 日志分析器:有敌人轮 HP 不降 | observe;真人对照旧读数 8/11、8/10,应显著下行 | observe | 一 |
| nat20 暴击率 | 日志分析器掷点面(双向合并) | 5% ± 2pp(工具 CRIT_TOLERANCE 既有口径) | gate | 一 |
| 档位分布 vs 理论(敌→主角) | 日志分析器 by_dir,vs 主角 AC10 | 全额 55% / ×0.75 15% / ×0.5 20% / ×0.25 10%,各 ±2σ 二项(按实际 n 重算;n≈700 预估时约 ±3–4pp) | gate | 一 |
| 玩家侧全额率(主角→敌) | 日志分析器 by_dir,敌 AC 首关 0 | 全额 100%(出现任何非全额档 = 掷点实现缺陷) | gate | 一 |
| EV 减免(敌→主角) | 日志分析器 by_dir,口径 = 仅档位乘数、不含 nat20 暴击倍率(与工具一致) | 21.25% ± 2pp(n≈700 预估口径,按实际 n 重算) | gate | 一 |
| Boss 血量锚 | 敌人表 / registry 表值断言(非运行读数) | r_boss = 150 ÷ 153.5 ≈ 0.98,带 [0.5, 1.1] 内,本批不动;走廊 [1.1, 1.35] 为行值加难级(已拍板 f①)的候选杠杆,启用即越现行带、须走越带登记 | gate(表值断言) | 一 |
| 增益战斗期复原 | 日志分析器 effect 行复原面 | 增伤/削弱/减伤三类可复原;快照 buffs 恒空盲区口径不破(非空计数 = 0) | observe | 一 |
| 真人修正系数 k | 真人批 ÷ MC perfect(整关承伤中位比) | observe;预警线 k < 0.3 连续两批(已拍板 d=①) | observe | 二 |
| 数据质量面 | 日志分析器 | 解析失败行 0;未配对 battle_end 0;step 未知键仅限 AC 掷点新增字段 | gate | 一 |
**通关率与承伤分布双 gate 的偏差归因规则(g 拍板附则)**:承伤带过 + 通关率 > 65% → 治疗供给超标,动恢复点收益/治疗量侧,不动敌方输出行值;承伤带过 + 通关率 < 35% → 先查形态带与红档(是否存在不可控死法);承伤带不过 → 敌方输出侧走 §4e 阶梯。两 gate 同时成立才算阶段二落带。
理论参照(判读表数字来源,AC10):读数 ≥10 全额(55%,含 nat20);缺口 1–3 → ×0.75(15%);缺口 4–7 → ×0.5(20%);缺口 8+ → ×0.25(10%);EV = 0.7875(减免 21.25%)。nat20 = 5% 双方同规暴击 ×2;主角→敌方向敌 AC 首关 0 → 恒全额。
## 4. 决策记录(2026-09-16,两轮拍板)
### a. 旧通关率带 [30%, 50%](基线档)——拍板:① 退役重标
旧带退役,不另立通关率口径带;新带族 = b 的承伤跨线分布 + g 的通关率 gate,收编批改写期望值带章节时注明退役原因(2026-09-16 测量口径裁定)。未采:完美档单带重定(完美档通关率恒 100% 无分辨力)、双判据(被"退役重标 + 独立通关率 gate"组合取代)。
联动:06-待办清单「基线通关率越带,加难杠杆扫描未执行」改写——"越带"失义,加难扫描义务升级为 f① 行值加难批的执行义务;冒险结构「大奖励数值随难度曲线联动」复验基准同步换锚。
### b. "压力足"主判据——拍板:承伤分布跨生命上限 + B1 分位带
方向:基础数值、零永久天赋时,第一关整关承伤最大值 > 主角生命上限 50、最小值 < 50,第一关很有可能无法通关;天赋加成后承伤范围整体下移、生命上限提高,关卡变可通——落差即循环驱动的困难设限点(成文于 §0)。
判据:**完美档基线格整关承伤 p10 ∈ [35, 45] 且 p90 ∈ [55, 65]**([40,60]/50 的形式化,分位带对 30 局极值噪声稳健)。未采:极值带(min/max 字面口径,死亡率 ≥3% 即几乎必过,区分度弱)、纯通关率带(治疗供给混入判据,与天赋叙事脱节)。
可达性事实:新带中位 ~50 是 AC 落地预估落点(~17.6)的近 3 倍,AC+行动点旋钮量程上限 ~43——由此产生 f 的行值加难级。
### c. 盲挖档地板观察线——拍板:① 不设线
盲挖档为纯观察口径,读多少(含 0%)都只记录、无触发动作;基线生死带下 0% 为预期态(§0),文档自身即留痕。未采:登记线、硬 gate(与 b 矛盾)。
### d. 真人修正系数标定——拍板:① 方向哨
每批真人 3–5 局;日志分析器产出 k = 真人整关承伤中位 ÷ MC 完美档整关承伤中位;只登记 + 预警线(k < 0.3 连续两批 → 触发 b 带复议),不折算 gate 数字。硬折算升级条件(备查):累计 ≥8 局且相邻两批 k 波动 < 20%,届时再拍板是否冻结。
### e. 越带回滚阶梯——拍板:四级阶梯(含 f①)+ 四条边界
**AC 档位边界 → AC 档位值 → 难度曲线行值加难 → 行动点 6→4**(粒度细→粗、爆炸半径小→大;双向可用:承伤偏低加深压力、承伤偏高放宽折扣)。四条边界:
1. "承伤偏高(减免过度)"败向先查实现缺陷(双重乘算、档位映射反向),对照掷点面 EV 减免读数定位,再谈调参。
2. 动用行值级或行动点级均使同种子历史坐标整体作废,须重立基线、另起验收批。
3. 敌方 AC 正式值(首关 0)不进本链——归怪物设定批。
4. 每次调参后全量重跑本验收,并在调参日志留联动检算记录(禁独立调参网络纪律)。
### f. 阶梯第四级"难度曲线行值加难"——拍板:f① 加入
行值是量程最大、归因最直接的杠杆(AC+行动点两级量程上限 ~43,够不着中位 50)。候选杠杆(06-待办已登记):敌方攻击基线与群战数量上探、Boss 血量锚走廊 [1.1, 1.35](启用即越现行带,须走越带登记)、注入衰减 0.5 → 0.6。行值批自带联动对账义务(关级恒等式 / 挖掘风险不等式 / 清图支配性重跑),与已排期的难度曲线调参批合流——先义务后回退,不动摇刚落地的压速批。未采:不加级(目标形同虚设)、行动点提前(先推翻压速批,无好处)。
### g. 完美档通关率独立 gate——拍板:要,[35%, 65%]
独立于承伤分布的第二道阶段二 gate(两道须同时成立)。偏差归因规则见 §3 附则:双 gate 打架时按偏差方向归因到治疗供给侧或形态带,不互相覆盖。未采:只 observe(用户要双保险)。
### h. 两段制——拍板:h①
阶段一 = 机制验收(AC 批落批判据);阶段二 = 压力验收(调参收敛判据,允许多轮迭代)。避免 AC 批在压力收敛前无法闭批、批次边界糊掉。未采:单段制。
### i. F4 期望承伤占比带归属格——拍板:i① 改挂满配格
F4 原值(普通 ≤20% / Boss ≤50% 生效 max_hp)复验改在满配格 atk+100%/hp+100% 执行,与 GDD 翻倍档 ≥95% 通关率带同格互证;基线格逐场上界降为 observe(单场绝对天花板 ≤100% 生命上限)。基线 = 生死带(b/g 管),加成 = 舒适带(F4 管)。未采:基线格放宽数值(惨烈场贴线误伤)、F4 退役(丢掉唯一单场天花板)。
## 5. 与既有验收体系的衔接
### 5.1 旧带处置映射
| 旧带 / 注记(难度曲线与Boss 期望值带章节) | 处置 | 说明与去向 |
|---|---|---|
| 第一关通关率带 基线档 [30%, 50%] | **退役(a)** | 收编批改写期望值带章节,注明退役原因;新带族 = b 承伤跨线分布 + g 通关率 gate |
| "现行扫描读数 60% 越上界"注记 + 06-待办清单「基线通关率越带」 | 退役 / 改写 | 旧带退役则"越带"失义;加难扫描义务升级为 f① 行值加难批执行义务 |
| 通关余量带 p90 ≤ 13 / p10 ≥ 3 | **保留** | 新设计(承伤跨 50)下幸存者余量天然落回该语义域,旧值重新成立;阶段二收敛复验,收敛前 observe |
| 形态带(教学绿 / 中段黄 / Boss 黄不红)与零红档 | 不动 | 口径不变,与"整关生死带"不冲突(教学位绿档 = 第一战必胜,整关仍可死);AC 落批激活"区间带宽补扫"义务(v0.4 既有成文),落收编后的调参批执行 |
| 期望承伤占比带 普通 ≤20% / Boss ≤50%(provisional,F4) | **归属格改挂满配格(i①)** | 基线格惨烈是设计态,F4 原值在基线格必破带;满配格复验与翻倍档通关率带同格互证 |
| Boss 血量锚 r_boss = 0.98 | 本批不动 | gate = 表值断言;走廊 [1.1,1.35] 为 f① 候选杠杆,启用即越现行带、须越带登记 |
| 恒等式奖励输出占比 [15%, 40%] | 不动 | 复测安排见 5.2 |
| 状态强度 / 克制矩阵 / 充能投桶等表值 | 不动 | 本批唯一新数值层 = AC 掷点 |
### 5.2 恒等式奖励占比复测安排
- 时点:AC 批落批 + 阶段一机制验收通过之后、压力收敛过程中随行值/行动点调参批一并执行(本清单不跑恒等式对账——level_monte_carlo 不产输出侧占比读数)。
- 方向预判:敌 AC 首关 0 → 玩家侧基础攻击输出仅因 nat20 暴击 +~5%;奖励侧输出不变 → 占比分母微涨、占比微降,原读数处 15% 下沿则须盯穿带风险。行值加难(f①)同步抬高敌方总生命,恒等式必须联合检算——这正是其禁独立调参联动条款。
- 义务落点:难度曲线与Boss「验收标准—恒等式闭合」条目不变;复测结论记入调参日志(联动可审计纪律)。
### 5.3 登记义务落点(本文档零改动既有文件;以下为落批后的收编义务)
- **难度曲线与Boss「期望值带」章节**:收编新带族(§0 生死带前提、b 分位带、g 通关率 gate、c 盲挖不设线、通关余量带保留注记、F4 满配格归属、f① 四级阶梯),注明"等 AC 批落批后收编"。同批改写 v0.4 掷点带宽段的"EV 中性引入"口径——实际落地规格(AC10 → 敌方输出 EV −21.25%)非 EV 中性,两口径冲突须以落批实现为准。
- **06-待办清单.md**:①「护甲等级掷点形式与数值域」「护甲等级掷点的随机流归属」「护甲等级(armor_class)行值未定」→ 已收口:2026-09-16 AC 批裁决成文于战斗结算 v0.10 与 registry settlement_table 条目,原 06 清单三条件目已按「解决即移除」口径删除(2026-09-19 清理批);②「基线通关率越带」按 a 改写,同时升级为 f① 行值加难批的执行义务;③「真人通关率标定」接 d=① 管道;④「完美策略档的结构性加难杠杆」重估——b 的新带下"承伤带对完美档无分辨力"的前提已反转,该条目大概率转已解决/失义。
- **registry entities.yaml**:AC 行值与档位参数由 AC 批会话收编,非本清单义务,仅衔接注记。
- 附带发现(不修,随收编批一并处理):难度曲线与Boss 的「待拍板」存根链接指向 `06-待拍板清单.md`,实际文件已更名 `06-待办清单.md`,断链。
## 6. 附录:历史实测坐标(对照基线)
| 坐标 | 完美档整关承伤 | 普通场占比 | Boss 场占比 | 平均轮数 | 通关率(完美) | 盲挖通关率 |
|---|---|---|---|---|---|---|
| 行动点 8 时代 | 13.1/关 | 2.1% | 18.9% | 13.4 | 100% | 20% |
| 行动点 6 现行(AC 未落地) | 22.4/关 | 4.2% | 29.8% | 15.3 | 100% | 7%(仅下界观察) |
| AC 落地预估(非 gate 数字) | 17–20 | ~3.3% | 23–25% | ≈15 | 100% | 上行方向 |
| **新目标带(定稿)** | p10 ∈ [35,45] / p90 ∈ [55,65] | observe(单场 ≤100% 天花板) | observe(可超 50%) | 待新基线回填 | **[35%, 65%](gate)** | 预期 0%(设计态,不设线) |
真人锚:基线通关局两份(种子 5678/1234)整关掉血 6/12 点,零承伤轮 8/11 与 8/10——"回合无伤"是待修的退化解;更早试玩批次实测真人显著强于当时模拟者(真人 100% vs 模拟 80%)。N=30 同种子(4200+30)各代读数逐局可比。**注:新目标带确立后,上表历史坐标属"低压区读数",只作机制面对照;压力对照以收敛后的新基线批为准。**
## 版本历史
| 版本 | 日期 | 改动 |
|---|---|---|
| v0.1 | 2026-09-16 | 草案建账:前置条件 / 运行配置 / 判读表 / 决策点 a–e / 衔接映射 / 历史坐标附录 |
| v0.2 | 2026-09-16 | 第二轮拍板回填:a=①、d=①、e 确认+四条边界;b 方向改判"承伤分布跨生命上限"(§0 新增设计前提);c 概念解释重写;新增决策点 f/g/h/i;判读表改两段制、通关余量带改判保留、F4 归属格待拍 |
| v1.0 | 2026-09-16 | **定稿**:b=B1 分位带(p10∈[35,45] / p90∈[55,65])、c=① 不设线、f=f① 行值加难入阶梯(四级阶梯成文)、g=通关率独立 gate [35%,65%](附双 gate 偏差归因规则)、h=h① 两段制、i=i① F4 改挂满配格;§4 改为决策记录,全表与衔接章节按拍板结果收口 |