# C3 难度曲线与精英/Boss(Difficulty Curve & Elite/Boss) > **状态**:In Design · lean 格式 > **版本**:v2 · 2026-09-14 · 作者:DK + design-system > **承载支柱**:P4 地牢下探的探险氛围(主)· P1 推理的掌控感 / P3 风险与收益同源(难度即压力源) > **一句话**:C3 定义"难度 = f(关卡序号, 节点深度, 精英/Boss 修饰)"中每一项随进度如何变化——敌人强度曲线、雷图压力曲线、奖励供给曲线与精英/Boss 修饰语义的唯一数值所有者。 > **复核注记**:v1 solo 出稿 → 经 /design-review(lean 单会话)NEEDS REVISION 8 blocking,同日修订核销(本 v2);专员/总监代理未咨询——生产前人工复核保留。 ## 速览 | 关键问题 | 答案 | |---|---| | 定位 | 数值 owner 而非机制 owner:表结构归 D2、生成算法归 A1、结算规则归 B1、敌种机制归 B2——C3 以行值与参数驱动已定稿机制,形成"越下越险"的进度体感(P4);玩家不直接感知本系统(Indirect),它是体感背后的统一坐标系 | | 拥有 | EnemyTable / BoardGenTable / RewardTable / RewardConfigTable / HeroTable 行值与参数 · DifficultyTable 修饰结构位(MVP 空表)· 难度期望表(按 (L,D) 的期望胜轮带 / 期望承伤占 max_hp 比 / 通关率目标带 / 通关余量带——调参的"正确行为"基准)· **生存链区间模型**(替代关级供给带:每战 S/K 区间三档判定 + 关级通关恒等式 + 输出占比带)· 七步调参流程 · P_perfect 乘数调参权 · m_w 调参通道(终值共裁 B4/B1)· B1 对账约束清单的承接与消解 | | 不拥有 | 表结构(D2)· 生成算法(A1)· 结算规则与护甲克制矩阵机制(B1——C3 投值)· 敌种机制(B2)· 变异机制框架(A4——C3 只投内容行)· 精英节点完整语义(C1 联动)· 元进度天赋数值(C4——C3 是其世界侧对照物)· 呈现(B2/B5/D1)· encounter 掷骰执行(B1 编排)· 供给控制器机制本体(B4——C3 投参数) | | 上游输入 | D2 表 schema 与 R1 解析 · B1 条款③⑤对账输出(B1 F4/F5 = 约束生成器)· B2 字段语义与校验域 · B4 联动重算义务与供给控制器机制 · A1 F4 批量红线 · 切片 v3 行集实测数据(含减伤墙批) | | 下游输出 | 各基表行值(经 ConfigDB 单点读取)· 每战 S/K 区间与三档判定数据面(level_monte_carlo actuals 生产,B4/B1 对账消费)· 难度期望表(C2 难度排布 / C4 天赋标定基准——区间平移换算率:+10hp ≈ +1 轮、atk 翻倍 ≈ K 减半)· unlock_level 投放计划(A4)· "何时变难"数据面(B2/B5/D1 呈现消费) | | 硬约束 | 运行时零新增公式(C3 侧数值直填基表行;机制本体——encounter 掷骰 / 护甲克制 / 供给控制器——归各 owner GDD,C3 只投行值与参数)· 可推理率 target ∈ [0.85, 1] 绝对锚不可下探 · 条款③⑤与预警⑥约束内调参或显式扩界 · 联动网络六组禁独立调参 · 每次修订强制走七步流程 · 全部值 provisional 起步随 playtest 修正 | ## 体验锚点 > Indirect 体验一句话:**玩家不操作本系统,但每一分钟都在感受它**——第二层的熊地精比第一层的地精更凶、关底 Boss 的压迫性血量、"这一层开始有雾了"的解锁节奏,本系统是这些体感背后的统一坐标系。 | 支柱 | 关键词 | 机制承诺 | |---|---|---| | P4 越下越险的压迫节奏 | "这一层开始有雾了" | 每层一个可感知难度台阶:新敌种登场 / 新行为环段 / 新变异解锁 + 基准数值跳升(L 轴)与温和加压(D 轴);台阶可感知但可解释——跃升可归因于可见变化而非纯数字膨胀(后者产生"被坑"感而非"变险"感);可量化形态 = S/K 区间随 (L,D) 的漂移轨迹(绿→黄→红空间分布) | | P1 攻克的对照物 | "我变强了" | 首关基线明显吃紧但多数玩家能过(通关率目标带);后续关卡陡升使 C4 天赋提升产生可测量的通关期望改善——区间平移换算率(+10hp ≈ +1 轮、atk 翻倍 ≈ K 减半)使"我变强了"从体感变为可推导结论 | | P3 压迫的顶点 | "Boss 房开门前" | 恢复点/囤刀决策压力顶点——供给稀缺性在此处兑现价值;Boss 血量压迫由 Boss 血量锚承载 | | 锚点时刻 | "三拍 vs 单拍" | 第二层首遇熊地精——三拍行为环 vs 地精单拍攻击,难度跃升有具体面孔;击杀 Boss——"这层我算下来了"的完成感 | - 参考感受合成:Peglin 的地图难度爬升 × 杀戮尖塔的 Act 结构(普通→精英→Boss 三段节奏)→ 本作 = 关间大台阶 × 关内小坡度 × Boss=Dmax 关底压轴。 ## 全局流程 ### 难度曲线生成(设计期直填 → 运行时直读) ``` 设计期(本 GDD 唯一产出物 = 表行值) │ ① L 轴台阶:每关 ≥1 项新内容投放(新敌种/新环段/新变异)+ base 跳升 k_L ∈ [1.3, 1.6] │ ② D 轴坡度:同敌种 hp 平缓上移(坡度域)+ 板参数温和加压(target ≥ 0.85 绝对锚) │ ③ Boss 行:Dmax 直填行(数值大台阶 + 专属行为环 + 本关最大板形) │ ④ 七步调参流程走查 → 行值写入 enemy / board_gen / reward / reward_config / hero .tres ▼ 运行时(C3 零公式;机制归各 owner) │ ⑤ B1.begin_battle 实例化期:unit_count 区间均匀骰(encounter 封闭流)→ 本战实际数量 │ ⑥ B2.spawn(L, D):R1 floor 解析 → 行值快照 → DifficultyTable 修饰套乘(快照之前;MVP 空表无修饰) │ ⑦ A1 读 BoardGenTable 行生成 → 挖掘期 → B1 结算(既有乘区:护甲克制 / 状态池 / 充能伤害) ▼ 战斗/挖掘按既有系统运作(C3 运行时零公式) ``` ### F7 调参流程(每次行值修订强制走完——七步) ``` ① 改表值(C3 直辖 knob) │ ② smoke_all 全绿(含 A1 生成质量闸——d0.28 回退先例的拦截点) │ ③ level_monte_carlo 扫描(通关率带 + 三档判定 + 通关余量 + 输出占比) │ ④ B4 登记常数与对账重制(AC-19 对账对漂移检测 / AC-6 分支 4 / AC-18 重跑——B4 义务 #10) │ ⑤ 对账复算(条款③⑤ / 预警⑥) │ ⑥ README 调参日志登记(含期望偏离) ▼ 行值生效(任一步 FAIL → 回滚或登记 OQ——禁止带病前进) ``` ### 出口分发 | 出口 | 触发 | 动作/去向 | 约束 | |---|---|---|---| | 调参通过 | 七步全 PASS | 行值生效 → 期望表复算 → 调参日志登记 | 期望偏离必须登记,禁止静默出带 | | 调参失败 | 任一步 FAIL | 回滚行值或登记 OQ | 禁止带病前进 | | 红档组合 | 任一战 S_max ≤ K_min | 扫描步拦截,行值禁止入表 | 配置事故——区间模型判定 | | 期望表偏离 | 调参后越出通关率/余量带 | 回滚或 OQ 登记 | 禁止静默出带(状态表同名行) | | 投放断档 | 某关无新敌种且无新环段 | 流程投放检查项拦截 | 内容生产缺口——C3 调参无法修补(数值不是内容) | ## 核心规则 | # | 规则 | 要点 | 依据 | |---|---|---|---| | 1 | 难度承载结构 = 直填行值主体 + DifficultyTable 修饰结构位 | 全部 (level_index, node_depth) 维度最终数值**直填**各基表行(EnemyTable / BoardGenTable / RewardTable——切片已验证的工作方式:R1 floor 解析直读、零新机制);**DifficultyTable 仅承载"按坐标施加的全局修饰"结构位**(键 (L,D)、乘数域;施加点 = B2.spawn 实例化时套乘于行值快照之前)——MVP 不产生任何修饰行(空表结构位;首个使用场景 = 精英节点;Boss 走 Dmax 直填行、不走修饰表) | D2 接口漂移规则;registry `difficulty_table`;B2 实例化条款"接口未定"预留由本条兑现 | | 2 | 难度 = f(L, D) 双轴语义 | **L 维(关间)= 大台阶**——每关至少一项新内容投放(新敌种 或 新行为环段 或 新变异解锁)+ 基准数值跳升;**D 维(关内)= 小坡度**——同敌种数值平缓上移(坡度域见关内深度坡度公式)、板参数温和加压(尺寸/密度小步上调,推理率 target 不低于 0.85 绝对锚);**Boss = 各关 Dmax 行**(A1 登记约定兑现)——数值大台阶 + 专属行为环 + 专属板形,见 Boss 遭遇语义条 | B2 投放节奏规则(OQ8);Boss 血量锚公式(F3);A1 第三轴登记约定 | | 3 | 敌种投放节奏 | 每关至少一个新敌种或既有敌种新环段投放;MVP 投放 = L1 三段(goblin→bugbear→ogre_chief,行值总表);**DND 更名批生效**:grub→goblin、ambusher→bugbear、boss_guardian→ogre_chief——registry/B2/D1/art-bible 键集随本修订批对齐;多敌种同深度选择规则:MVP 每行集恰一敌种(B2 锁定),C1 分支地图定稿时若需同深度多敌种选择,走预登记改键通道——本 GDD 预留不定义 | B2 投放节奏规则(OQ8);B2 多敌种共裁项(OQ7);D1 键集冲突② | | 4 | 切片行集转正为 MVP 默认曲线 | 垂直切片调参登记的行集有实测依据,转正为 MVP 默认值——**权威枚举 = 「MVP 行值总表」(v3,出处 = 切片 .tres)**,旧登记表(grub 时代值)由本表替代;后续 L2+ 曲线数值随关卡内容扩展填充(结构本条已定,数值行随内容扩展) | MVP 行值总表;L2+ 数值开放问题(OQ1) | | 5 | Boss 遭遇语义 | ① Boss = 关卡末节点 = Dmax 行(LevelTable 末节点必须 Boss——schema 校验);② Boss 数值台阶 = hp 取本关普通战斗 hp 期望总和的 0.5–1.1 倍 + **atk ≥ 本关普通战最高行 atk**(本次重定义——原"高于均值一档"无档位定义;现值 Boss 9 ≥ bugbear 9 ✓)+ 专属行为环(含 charge 拍——玩家可规划的安全挖掘拍);③ Boss 板 = 本关最大板形 + 密度上探(受可推理率 target 绝对锚约束);④ Boss 战胜利 = 关卡通关(C1/C2 域编排) | Boss 血量锚公式(F3,加难走廊 [1.1, 1.35] 预登记);LevelTable schema 校验;A1 第三轴登记约定 | | 6 | 精英节点(MVP 不实现,语义预留) | `elite_` / `boss_` 前缀字段命名空间预留保留;精英修饰完整语义(独立节点类型/词缀系统/出现规则)**归 C1 关卡节点地图定稿后的联动设计**——分支地图中"同深度并存精英与普通节点"触发棋盘生成端强制重审(改键走 D2 接口漂移规则);本 GDD 承诺:DifficultyTable 结构位 + 命名空间预留足以承载,不预写语义 | A1 第三轴登记约定(命名空间预留 + 定稿强制重审) | | 7 | A4 全局变异语义(scope=global 兑现) | `scope=global` 行 = 该变异**施加于整板全部合格格**(区别于 region 的区域布置);**全局变异仅 Boss/精英图可产生**(普通图禁用——加载期校验:global 变异的布置行须伴随 elite/boss 标记;MVP 无标记字段前 = MVP 不产生 global 行,A4 既有 warning 承载);MVP 不定义任何具体全局变异行(岩浆/冰冻无 MVP 容器——A4 锁定),本条只锁定语义框架与禁用面 | A4 scope=global 预留位条款;A4 例外表 warning 行 | | 8 | 遭遇随机化(区间 unit_count) | EnemyTable 行 `unit_count` 升级为**区间语义** [unit_count, unit_count_max](域 [unit_count, 3],B2 上界锁定不变);掷骰经 RngService `encounter` 封闭流——**接口漂移登记完成**:registry 流集合含 encounter、B1 begin_battle 掷骰增补、B2 spawn override 参数与 unit_count_max 字段增补、D2 schema 两字段增补;细则见下表 | registry `rng_service`(encounter 增流登记);B1/B2/D2 增补条款(X-6~X-8);遭遇随机化细则表 | | 9 | 调参约束内工作纪律(B1 对账输出承接) | C3 每次行值修订必须走满七步调参流程,且不得触碰已锁约束边界——四条边界见下表(B1 条款③⑤对账输出与预警⑥ = "禁止独立调参"纪律的量化边界,C3 调参必须在其内工作或显式扩界;registry 回执见依赖节对账登记表) | F7 七步流程;B1 条款③⑤对账输出;对账登记表 | ### MVP 行值总表(权威枚举,出处 = 切片 .tres v3) | 关卡 | 深度 | enemy_id | display_name | hp | atk(区间) | unit_count(_max) | pattern | armor_type | |---|---|---|---|---|---|---|---|---| | L1 | D0 | goblin | 地精 | 24 | 7 [4,10] | 1 (2) | [attack] | none | | L1 | D1 | goblin | 地精一伙 | 13 | 5 [2,8] | 2 (3) | [attack] | none | | L1 | D2 | bugbear | 熊地精 | 40 | 9 [6,12] | 1 | [attack, charge, heavy] | a | | L1 | D3 | bugbear | 熊地精双雄 | 18 | 6 [3,9] | 2 (3) | [attack, charge, heavy] | a | | L1 | D4 | ogre_chief | 食人魔酋长 | 150 | 9 [6,12] | 1 | [attack, attack, charge, heavy] | b | | L2 | D0 | bugbear | 熊地精 | 30 | 7 [4,10] | 1 | [attack, charge, heavy] | a | | 表 | 转正行集(登记值) | |---|---| | BoardGenTable L1 深度轴 | D0/D1 10×10 · D2–D4 12×12 · d0.25/t0.88 · attempts 24 | | HeroTable | atk = 6 · max_hp = 50 | | RewardTable 要点 | 格子池四行即时类(attack_up 20 / defense_up 16 / spark_aoe 16 / heal_minor 15)· 注入池三行可选类(knife_t1 60 / knife_adv 30 / heal_pack 10——供给控制器注入)· clear_blast 40(clear_default 槽,instant_aoe 当场兑付,完美 ×2) | | RewardConfigTable | t_fog_min=2 · k_dmg=0(保底语义由战斗首件保证取代)· n_draft=32 · p_min=8 · active_p0=0.4 · active_decay=0.5 | | SettlementTable 增补字段 | damage_a_per_cell=1 · damage_a_cap=8 · damage_b_per_flag=2 · armor_effectiveness 克制矩阵(base/dmg_a/dmg_b × none/a/b——特化 ×150 / 无甲 ×100 / 对位 ×50)· p_perfect=200 · D_ref=12 | - 实测依据:期望扫描 N=15–30 × 多种子 + 8 种子密度实验 + 试玩批次 1 + 减伤墙批。 - v3 数值批(试玩批次 1 裁决):atk 4/4/6/4/7 → 7/5/9/6/9(约 +50%,承伤侧主杠杆);D0 24 保持防秒杀(20hp 会被首轮盲挖粉尘秒杀——12+9);Boss 130→150(用户拍板可上调)。 - **区间批(现行)**:奖励五行 power 区间化(heal_minor [2,6] / knife_t1 [5,11] / heal_pack [6,18] / knife_adv [10,22] / clear_blast [25,55]——身份批内 roll,中点恒等原值)+ 敌方 atk 区间化(上表 [min,max],遭遇骰同流 spawn 期整战持久,±3 provisional)——宽度均 provisional 归本 GDD 测量迭代;A3 条款①当量锚以中点口径维持;验收口径 = 完美策略档 0 加成通关 ≤40%(OQ7)。 - **加难走廊(带锚定稿预登记)**:L1 基线通关率目标 [30%, 50%],现扫描 60% 越上界——杠杆候选 = r_boss 上探走廊(Boss 180–207,见 Boss 血量锚公式)+ 群战上探 + 供给 decay 0.5→0.6;**扫描验证待执行(OQ7——本会话无 godot 运行时),落带前 v3 值维持 provisional-pending-scan**。 ### 遭遇随机化细则(Core Rule 8) | 项 | 语义 | |---|---| | 区间语义 | unit_count 升级为 [unit_count, unit_count_max];unit_count_max 可省略——缺省 = 定值,旧行零迁移 | | 域 | [unit_count, 3](B2 unit_count 上界锁定不变) | | 掷骰时点 | B1.begin_battle 实例化期(扫雷开始前)按区间均匀骰定本战实际数量(B1 GDD 增补条款) | | 敌种不变 | 同敌种掷骰——不触碰 B2"每行集恰一敌种"锁定 | | 随机通道 | RngService `encounter` 封闭流(registry 流集合已登记);scope_event_binding = 每次战斗实例化恰一 scope;发生在挖掘决策域之外(P1 合规) | | 消费方式 | B1 掷骰 → B2.spawn 以 override 参数接收实际数量(B2 零随机纪律保持——收到的即确定值;B2 GDD 增补条款) | | 教学位豁免 | 新敌种首遇节点固定数量不加骰(D0 goblin ×1、D2 bugbear ×1 固定——行值总表) | | 可回放性 | 同种子全程可回放(流取号确定性不变) | | 设计原则 | 数量是比单体质变更优先的深度表达(关内深度坡度公式 Example 延伸);期望总量对齐关级恒等式检算 | ### 调参约束边界(Core Rule 9) | # | 约束边界 | 内容 | |---|---|---| | ① | 条款③满配破线 | unit_count>1 的行须满足"降密度或降 m_amb"补偿——registry clause3_supply 已登记;切片群战行 hp/atk 下调为合规先例 | | ② | 条款⑤清图支配性 | 约束包①需求对 clear_blast(instant_aoe,C = power = 40)重推:缺口 = 46.1−40 = 6.1(L1)/ 91.8−40 = 51.8(L2)——登记为非支配设计态 + OQ4 playtest 观测弃图率(原 clear_knife C=8/16 模型由现行登记替代) | | ③ | 可推理率绝对锚 | target ∈ [0.85, 1] 不可下探(P1 生成端保证) | | ④ | 期望表对照 | 调参后期望表必须复算并在 README 调参日志登记偏离 | ## 枚举 ### DifficultyTable(新表,MVP 空表——结构位) | 项 | 值 | 语义 | |---|---|---| | 键 | (level_index, node_depth) | 按坐标施加的全局修饰 | | 乘数域 | [0.1, 10](registry 预登记) | 套乘施加点 = B2.spawn 实例化时、行值快照之前;越域 → clamp 至域界 + warning(registry 登记的显式例外——组合事故非配置事故,非 fail-fast 场景) | | MVP 行集 | 空(零修饰行) | 首个使用场景 = 精英节点;Boss 走 Dmax 直填行、不走修饰表;建表走 D2 接口漂移规则 | ### EnemyTable.unit_count 区间语义(Core Rule 8) | 字段 | 域 | 语义 | |---|---|---| | unit_count | int [1, 3] | 区间下界;旧行语义 = 固定数量 | | unit_count_max | int [unit_count, 3],可省略 | 区间上界——缺省 = 定值,旧行零迁移;掷骰 = B1 实例化期区间均匀骰 | ### RngService 流集合(encounter——已登记) | 流 | scope 绑定 | 消费点 | 语义 | |---|---|---|---| | encounter | 每次战斗实例化恰一 scope | B1.begin_battle 实例化期(扫雷开始前) | unit_count 区间均匀骰——同敌种数量随机;发生在挖掘决策域之外(P1 合规);同种子全程可回放 | ### A4 变异 unlock_level 门控序列(投放计划归 C3) | 序 | 内容 | 门控 | 说明 | |---|---|---|---| | 1 | 普通图(无变异) | 基线 | — | | 2 | 雾 | unlock_level = 2(A4 锁定) | 雾参数 f≤8d / ≤0.25(P1 度量绝对上限) | | 3 | 岩浆/冰冻 | 随关卡扩展 | 无 MVP 容器(A4 锁定)——投放计划归 C3 | ## 数值结论与推导 > 定位声明:C3 是数据系统——运行时零新增公式(数值直填基表行,运行时仅经既有 B1 乘区 / B2 接口 / R1 直读运作)。本节全部公式为**设计期工具式**(曲线拟合基准、区间估算、对账复算),执行载体 = 调参期批量工具(level_monte_carlo.gd / reward_expectation.gd,见 F7),不进入游戏运行时。全部数值 provisional 起步,随 playtest 修正。 ### F1 关内深度坡度(D 轴小坡度) **结论**:hp_D = round(hp_0 × (1 + s_hp × D))——每档 +5%–20%,Dmax=4 处 1.2–1.8 × D0、Dmax=5 处 1.25–2.0 × D0(同敌种内);MVP 直填行近似此式、不运行时计算;敌种切换(新敌种登场)不受本式约束——台阶值直接定。 #### 推导 ``` hp_D = round(hp_0 × (1 + s_hp × D)) ``` **Variables:** | Variable | Symbol | Type | Range | Description | |---|---|---|---|---| | 深度基准值 | hp_0 | int | [1,999] | 该敌种 D0 行 hp | | 坡度系数 | s_hp | float | [0.05, 0.20] | 每深度档增幅 | | 节点深度 | D | int | [0, Dmax] | 节点深度(Boss = Dmax) | **验算与边界:** | 项 | 内容 | |---|---| | Example | goblin 24hp:D1 理论 24×1.1 ≈ 26——切片实际以"群×2"(13hp ×2–3 只)表达深度压力:数量是比单体质变更优先的深度表达(保持单拍环低威胁读数、总量受控) | ### F2 关间台阶(L 轴大台阶) **结论**:base(L+1) ≈ base(L).Dmax × k_L、k_L ∈ [1.3, 1.6]——k_L 作用于**同敌种基准**(敌种延续场景,如 L2 bugbear 延续至 L3);新敌种登场时基准按其环复杂度重定(三拍环单位 hp 低于单拍环同关值——切片先例:bugbear 40/18 < goblin 群总量但威胁更高)。 #### 推导 ``` base(L+1) ≈ base(L).Dmax × k_L k_L ∈ [1.3, 1.6] ``` **Variables:** | Variable | Symbol | Type | Range | Description | |---|---|---|---|---| | 关间系数 | k_L | float | [1.3, 1.6] | 下一关 D0 基准 = 本关 Dmax × k_L(数值跳升 + 新敌种/新变异共同构成台阶感) | **验算与边界:** | 项 | 内容 | |---|---| | Output Range | 相邻关数值倍率 1.3–1.6;叠加新敌种环复杂度,实际体感台阶更大 | | 反例 | L1 Dmax 酋长 150hp → L2 D0 bugbear 基准 ≈ 210 的直推不成立——新敌种登场基准按环复杂度重定,k_L 仅适用于敌种延续场景(L2 锚行 30/7 为内容行非 k_L 直推) | ### F3 Boss 血量锚 **结论**:boss_hp ≈ round(Σ普通战斗hp期望 × r_boss)、r_boss ∈ [0.5, 1.1]——"Boss 是本关最大的单场消耗",量级上探至全关消耗;**加难走廊 [1.1, 1.35] 预登记**(带锚定稿——L1 通关率压带首选杠杆,扫描终裁后落带)。 #### 推导 ``` boss_hp ≈ round(Σ普通战斗hp期望 × r_boss) r_boss ∈ [0.5, 1.1](走廊 [1.1, 1.35]) ``` **Variables:** | Variable | Symbol | Type | Range | Description | |---|---|---|---|---| | 本关普通战斗 hp 期望总和 | Σ普通战斗hp期望 | float | [1,999]×N | 本关全部非 Boss 节点的敌方 hp 期望合计(**含 unit_count 区间骰期望**——口径与击杀侧恒等式统一) | | Boss 占比 | r_boss | float | [0.5, 1.1](走廊 [1.1, 1.35]) | Boss 相对全关消耗的血量锚 | **验算与边界:** | 验算 | 读数 | 判定 | |---|---|---| | L1 v3:Σ = 36(D0 [1,2]×24)+ 32.5(D1 [2,3]×13)+ 40(D2)+ 45(D3 [2,3]×18)= 153.5 → Boss 150/153.5 ≈ **0.98** | 带内 | ✓(口径更正:旧验算 Σ=142 为固定数量口径与旧 Boss 值混算,由本行替代;口径与击杀侧恒等式统一) | | 走廊验算 | Boss 180/153.5 ≈ 1.17、200/153.5 ≈ 1.30 ∈ [1.1, 1.35] | 走廊内 ✓ | | 败北分布 | 向 Boss 集中(4/6) | 符合压迫预期 ✓ | ### F4 生存侧:期望承伤与 S 区间 **结论**:E[承伤/场] ≈ Σ_rounds Σ_enemies E[beat_dmg] × (1 − E[减伤] − weaken覆盖);对照带 ≤20%/普通场、≤50%/Boss 场。派生**生存区间** S = [(HP进战 + 治疗下界) ÷ 入伤峰值, (HP进战 + 治疗上界) ÷ 入伤谷值]——区间模型三档判定的生存侧输入。 #### 推导 ``` E[承伤/场] ≈ Σ_rounds Σ_enemies E[beat_dmg] × (1 − E[减伤] − E[weaken覆盖]) S = [ (HP进战 + 治疗min) ÷ 入伤峰值 , (HP进战 + 治疗max) ÷ 入伤谷值 ] ``` **Variables:** | Variable | Symbol | Type | Range | Description | |---|---|---|---|---| | 每拍期望伤害 | E[beat_dmg] | float | [0,999] | 敌 atk × 拍别乘数(heavy=2)+ 伏击 flat(+3×层数,帽 4)——行为环确定性轮转 | | 减伤期望 | E[减伤] | float | [0,0.6] | defense_up 授予率 × 当次减伤(−30×2 层帽 −60%——减伤墙批现行值) | | weaken 覆盖 | E[weaken覆盖] | float | [0,0.65] | 标中旗 −65% 输出对战斗轮的覆盖期望——**生存侧最大单一杠杆**(P3 兑现点) | | 入伤峰值/谷值 | d_max / d_min | float | [0,999] | 峰值 = heavy 齐射尖峰 + 伏击满层、零减伤;谷值 = charge 拍 + 全减伤 | **验算与边界:** | 验算 | 读数 | 判定 | |---|---|---| | D0 goblin ×1(7atk 单拍环)每结算恒 7 × (1−0.22 平均减伤) ≈ 5.5/轮 → 裸 R_survive ≈ 50/5.5 ≈ 9 轮 | — | L1 五战 S 区间手算见区间模型验算表 | | 减伤墙批注 | defense_scan 实测墙轮 39%、真人 12/12 轮零承伤满血通关 → defense_up −50→−30、石肤权重 24→16 | 承伤带复验责任随批(B3 侧注记已挂) | ### F5 通关率目标带(期望表核心) **结论**:通关率按 (L, 天赋档) 目标带验收——**L1 基线 30–50%**(带锚定稿,替换原 40–60%);区间机制解释:+100% atk → K 区间近似减半 → K_max ≈ S_min 转绿档 → ≥95%。**真人方向更正**:批次 1 实测真人显著强于模拟者(v2 真人 100% vs 模拟 80%)——原"真人预期低于模拟"方向声明由本结论更正;带按模拟口径定义,真人系数批次 2 标定(OQ3)。 #### 推导 **Variables(目标带):** | 目标带 | 基线(无天赋) | 中天赋(+100% atk) | 高天赋(+200%) | |---|---|---|---| | L1(首关) | **30–50%** | ≥95% | 100% | | L2 | 20–40%(provisional,随 OQ1 校准) | 60–80% | ≥90% | | L3+ | 10–25%(provisional) | 40–60% | 60–80% | **验算与边界:** | 项 | 内容 | |---|---| | v3 扫描 | 基线 60%——**越 [30,50] 上界** → 加难杠杆批内即调(带锚定稿杠杆:r_boss 走廊 + 群战上探 + decay 0.6 候选);扫描落带前登记 provisional-pending-scan(OQ7) | | 完美策略档扫描(OQ7;工具 = smoke/auto_player.gd 完美档求解器 + level_monte_carlo 策略轴) | **区间批后复测(2026-09-14,N=30)**:0 加成通关仍 **100%**、剩余 HP 均 47.4/50、承伤均 3.9(区间前 3.5)、踩雷 0.00/局——+50%~+200% 恒 100%;**承伤带与 F5 带对技能轴上界零分辨力**(calibration_gap 定量读数)。实测结论:**奖励侧 + 敌方侧数值区间已全部落地仍压不动完美档**——其结构性优势(零踩雷直伤 + 全标旗 weaken 顶格 + 快杀)使 47/50 血缓冲吞掉全部值域方差;≤40% 验收线需结构性杠杆(承伤硬地板 / weaken 饱和语义 / 完美度定价)或极端宽度(毁基线与可读性,建议否决)——**待用户裁决(OQ7 待拍板主项)** | | 败北分布 | 向 Boss 集中(4/6)✓;+200% 天赋 100% ✓ | | 机制钩子 | 天赋列由区间位移承载(K 减半 → 绿档),非独立拍脑袋带 | ### F6 生存链区间模型(替代关级供给带) **结论**:原关级供给带(比值 ∈ [1.1, 2.0])由本模型替代——其验算 0.54"短缺态"与实测 60% 通关矛盾,方向指引反指(对偏易的游戏报"加供给")。现行 = **生存链区间模型**:每战 S/K 区间三档判定(绿=稳定通过 / 黄=期望通过 / 红=配置事故禁止入表)+ 关级通关恒等式 + 输出占比带。设计期工具式,运行时零公式。 #### 推导 ``` S = [ (HP进战 + 治疗min) ÷ 入伤峰值 , (HP进战 + 治疗max) ÷ 入伤谷值 ] (生存区间——F4) K = [ (Σ敌hp − 一次性伤害max) ÷ 输出峰值 , (Σ敌hp − 一次性伤害min) ÷ 输出谷值 ] (击杀区间) 绿档: S_min > K_max —— 最坏也能过,与运气无关(教学位必须绿档) 黄档: E[S] ≥ E[K] + 1 且非绿 —— 有失败分支,期望占优(margin ≥ 1 轮最低阈值) 红档: S_max ≤ K_min —— 最好也打不过,配置事故(F7 第③步拦截) 关级恒等式: atk × Σ R_survive(i) + Σ奖励输出 ≈ Σ敌hp期望 × (1 + 缓冲) (actuals 逐项审计闭合——五项输出 × 三项输入全部入账) ``` **Variables:** | Variable | 来源 | Description | |---|---|---| | 入伤 | 表值 + actuals | 敌 atk × 拍别乘数 + 伏击 flat − 减伤 − weaken(F4) | | 输出 | 表值 + actuals | 基础攻击 6×(1+attack_up) + 伤害A(开格充能 1/格 帽 8,甲A ×1.5/甲B ×0.5)+ 伤害B(标雷充能 2/雷,甲B ×1.5/甲A ×0.5)+ 刀(8/16,不吃 percent) | | 一次性伤害 | 表值 + actuals | clear_blast 40×清图数(完美 ×2)、囤刀倾泻 | | 治疗 | 表值 + actuals | heal_pack 12 + heal_minor 4(注入/格子池期望) | | 数量骰 | 表值 | unit_count 区间 [unit_count, unit_count_max] | **验算与边界:** | 项 | 内容 | |---|---| | L1 五战区间手算(≈ 估算,p10–p90 口径) | D0 goblin×1(教学位固定):S≈[7,12] vs K≈[2,4] → **绿** ✓ · D1 ×[2,3]:S≈[4,10] vs K≈[2,6] → 黄 · D2 bugbear(首遇固定):S≈[4,12] vs K≈[2,6] → 黄 · D3 ×[2,3]:S≈[2,6] vs K≈[2,7] → 黄偏红 · Boss 酋长:S≈[4,15](旗覆盖率主导)vs K≈[7,18](囤刀+甲B 对策)→ 黄红边缘 | | L1 形态带 | ≥1 绿(教学位)+ 中段黄 + Boss 黄不红——手算形态符合 ✓ | | 关级恒等式漏项审计 | 原供给 180 的漏项:clear_blast 只算一次(实际 ×清图数 3–4 = 120–160)、伤害A/B 充能、attack_up 增量、RAP 刷新新板追加供给——逐项入账后闭合,"0.54 短缺"消失 | | 输出占比带 | 奖励侧输出(刀+clear_blast+A/B 充能)÷ 总输出 ∈ **[15%, 40%]**——<15% 奖励摆设、>40% 供给依赖(AC-14) | | 口径注记 | 区间两口径:公式包络(必过/必死结论)与 actuals p10–p90(日常判定——B1 actuals p10 纪律同构);HP 持久化耦合各战区间,联合分布由 monte_carlo 裁决 | | C4 平移换算率 | +10hp ≈ +1 轮(÷d̄≈8–10);atk 翻倍 ≈ K 减半——区间位移机制承载通关率天赋列,非独立拍带 | ### F7 调参流程(每次修订强制走完——七步) **结论**:改表值 → smoke_all 全绿 → level_monte_carlo 扫描(通关率带 + 三档判定 + 通关余量 + 占比)→ B4 登记常数与对账重制 → 对账复算(条款③⑤/预警⑥)→ README 调参日志登记——任一步 FAIL → 回滚或登记 OQ,禁止带病前进。 #### 推导 **Variables:** | Variable | Symbol | Type | Range | Description | |---|---|---|---|---| | 批量样本量 | N | int | ≥256(正式)/ 15–30(切片临时) | 正式批量工具 = level_monte_carlo 扩展(逐行聚合 + N 参数化 + 区间分位/降级统计)——**扫描执行本体归 A1 F4 工具交付(A1 OQ1),C3 的 level_monte_carlo 扩展为消费方**(所有权澄清:A1 工具产出 actuals → C3 扫描消费,非替代) | **验算与边界:** | 项 | 内容 | |---|---| | Output Range | 任一步 FAIL → 回滚或登记 OQ,禁止带病前进 | | Example | 切片 d0.28 回退先例:d0.28/t0.87 → best≈0.81 降级告警 → 回退 0.25/0.88——第 2 步(A1 生成质量闸)拦截的成功案例 | | 第④步依据 | B4 义务 #10:"C3 调参流程若无'登记常数与对账重制'步骤则相关 AC 假失败"(T_fog_min/K_dmg/N_draft/P_min/默认根行值调参 → B4 AC-19 对账对 (knife_adv, attack_up_basic) 漂移检测、AC-6 分支 4、AC-18 重跑) | ## 状态 | 状态 | 进入条件 | 行为/出口 | |---|---|---| | 未调参行 | 新增 (L,D) 行仅有结构占位 | 经七步流程 → 已调参 | | 已调参行 | 行值经批量仿真 + 期望表对照 + 对账复算 | 任何修订 → 重走七步流程 | | SLICE-TUNED 转正 | 切片临时值经本 GDD 背书(行值总表 v3) | → 已调参(切片行集转正条款) | | provisional-pending-scan | 加难杠杆候选值已登记、扫描步未执行 | 扫描落带 → 已调参;越带 → 回滚候选 | | 期望表偏离 | 调参后期望值越出目标带 | → 回滚或 OQ 登记(禁止静默出带) | 不变式:C3 无运行时状态机(数值系统);设计期任一行值恒处于上表五态之一;期望表偏离禁止静默出带。 ## 边界情况 | 条件 | 行为 | 依据 | |---|---|---| | unit_count>1 行与高密度板组合 | 条款③满配语境破线(B1 F4 双轴约束)——该组合**禁止入表**;切片先例 = 群战行 hp/atk 下调补偿;对账复算在流程第 5 步强制执行 | Core Rule 9① / B1 F4 | | 关卡深度轴缺行(如 D3 缺失、D4 存在) | **调参期冒烟断言拦截**(跨表存在性检查——C3 调参工具域载体;D2 R1 fail-fast 语义不动);R1 floor 解析静默兜底至低档(难度降而非崩)+ ConfigDB warning 四元组仅作运行时兜底——缺行根因是调参事故而非运行时事件 | AC-1 / D2 R1 | | 请求越界关卡(level 999) | R1 floor 解析至表尾行(难度封顶 = 尾行值)+ warning——冒险结构(C2)应在其内容覆盖范围内生成关卡序列;越界 = 内容生产缺口,非玩家可达态 | D2 R1 | | 玩家天赋拉满(atk+200%)打最低难度行 | 速杀退化(预警⑥——战斗 1–2 轮终局、奖励系统饿死自己的高光);处置 = 预警⑥仪表监控(战斗结束未开资格格占比 >70% 警)+ 接受——低难度行被高天赋速杀是 Roguelike 成长兑现的合法形态,无需修复(区间形态:K_min < 2 = 预警⑥观测位) | 区间模型 / 预警⑥ | | 密度上探压垮推理率(d0.28 案例) | best inferability ≈0.81 < target 0.87 → 降级告警"接受最优出图";处置 = **回退**(切片先例:0.28/0.87 → 0.25/0.88)——密度与 target 是联动对(A1 求解器能力的天花板内联动调参),禁止为难度牺牲 P1 度量达标;流程第 2 步闸拦截 | F7 / A1 F4 | | 条款⑤清图支配性反转(弃图率 >30%) | 玩家普遍发现"挖一半就弃图刷 RAP"优于"推到底清图"→ 清图奖励与清图体验被支配;处置 = OQ4 playtest 观测(自动模拟者不弃图,测不到真人策略);届时杠杆 = C 量级上调(B1 约束包①,现值 clear_blast 40)或弃图成本重定价(A3 域)——MVP 接受当前非支配设计态(缺口 6.1/51.8,实测后再裁) | B1 F5 / OQ4 | | 投放节奏断档(某关无新敌种且无新环段) | OQ8 违例——敌信息总量见底,学习曲线枯竭;处置 = 流程投放检查项(每关至少一项新内容——敌种投放节奏条款);违规 = 内容生产缺口,C3 调参无法修补(数值不是内容) | B2 OQ8 / AC-6 | | 全部行值调至域上限(hp 999 等) | 数值可行但可玩性崩塌;处置 = 通关率带对照拦截(期望表全面越带 = 配置事故)+ 域校验既有护栏;本场景属调参事故而非玩家可达态 | F5 / D2 域校验 | | DifficultyTable 修饰行与直填行值叠加后越域(首个精英节点上线时) | B2.spawn 套乘后 hp >999 → **clamp 至域界 + warning**(fail-fast 不适用——修饰乘数是合法配置,越界是组合事故;域界 = 玩法硬顶);MVP 空表无此场景,规则预登记 | DifficultyTable 乘数域 | | 通关余量越带 | p90 >13(赢得从容)→ 生存侧杠杆优先(治疗稀有度下调 / 敌 atk 上探),击杀侧杠杆次之;p10 <3(1–2 血惨胜成常态)→ 治疗供给上浮或 Boss 前恢复点增益——余量是形态指标,与通关率带联合判读 | AC-13 / 区间模型 | ## 依赖 **上游**: | 系统 | 性质 | 接口要点 | |---|---|---| | D2 | 上游(硬) | 全部基表 schema、R1 解析、ConfigDB 单点读取归 D2;C3 产出 = 行值;DifficultyTable 新表走 D2 接口漂移规则(registry `difficulty_table` 已登记);禁绕过 ConfigDB 自建 load(D2 Rule 2);RngService `encounter` 封闭流(registry 已登记);**EnemyTable schema +2 字段(unit_count_max、armor_type)——接口漂移已回写 D2** | | B2 | 上游(硬) | EnemyTable/HeroTable 行值由 C3 填(B2 拥有字段语义与校验域);修饰施加点 = B2.spawn(实例化时套乘、行值快照之前);**spawn override 参数 + unit_count_max 字段语义 + 物种集 {goblin, bugbear, ogre_chief}——接口漂移已回写 B2**;投放节奏 OQ8 共担;多敌种同深度选择规则共裁(OQ7——C1 联动) | | B1 | 上游(soft,事实依赖) | 条款③⑤对账输出 = 调参约束输入(B1 F4/F5 = 约束生成器);P_perfect 乘数调参权归 C3(B1 登记);**begin_battle encounter 掷骰增补 + 护甲克制结算(armor_effectiveness/damage_a/damage_b 字段)——接口漂移已回写 B1**;期望口径双读数纪律(锚行读数不得用于 unit_count=2 放行);对账复算义务随每次修订 | | B4 | 上游(soft) | RewardTable/RewardConfigTable 参数值归 C3;**供给控制器机制本体归 B4(转正登记——首件保证 + 指数递减注入,active_p0/active_decay 参数归 C3)**;clear_blast 换位 + K_dmg=0 转正(B4 保底语义迁移);敌 hp 曲线与奖励供给禁止独立调参(registry 联动重算义务——区间模型恒等式为联合检算工具);调参期批量仿真义务载体 | | A1 | 上游(类型依赖) | BoardGenTable 行值归 C3(含 max_gen_attempts 策略);禁反向调用生成(仅经 D2/编排器传值);F4 批量红线(严格零降级)= 调参闸;**F4 全量批量工具 = A1 交付物(A1 OQ1),C3 level_monte_carlo 扩展为消费方**;d0.28 回退先例 = 密度×target 联动调参的实证;黄金向量/solver_rules 冻结不经 C3 | | A4 | 上游(soft) | scope=global 语义由本 GDD 定稿(Core Rule 7);unlock_level 门控序列投放计划归 C3(随关卡扩展);**AC-11 未来腿 = elite/boss 标记字段落地时 A4 warning 升闸——已登记为 A4 接口漂移义务** | | A3 | 上游(soft) | ActionEconomyTable 联动观测(ap_per_round 双重身份——节奏兼 RAP 转存规模)——**联动评估归 C3,调参所有权归 A3**(措辞更正:A3 GDD 无调参权授予回执);跨字段校验(动作成本 ≤ ap_per_round)约束内观测 | | B3 | 上游(soft) | StatusEffectTable 四行强度(attack_up +50 / defense_up −30 / weaken −65 / ambush +3)provisional 归 C3 联动评估(B1 免伤轮合法性注记——强度评估归 C3 对账联动);减伤墙批(−50→−30)为 B3 侧行值批,C3 承伤带复验随批 | **下游**: | 系统 | 接口要点 | |---|---| | C1 | 节点深度语义消费;精英节点形态联动(精英节点预留条款 / A1 定稿强制重审);未设计——Boss=Dmax 约定即为其预留的接口 | | C2 | 关卡序列的难度排布消费本 GDD 期望表;越界关卡 = 内容生产缺口(边界情况表);未设计 | | C4 | 下游(远)——元进度天赋数值的"世界侧对照物":通关率目标带(F5)是 C4 天赋强度的标定基准;**区间平移换算率(+10hp ≈ +1 轮、atk 翻倍 ≈ K 减半)为 C4 设计输入**;未设计 | | 呈现层(B5/D1) | Boss 登场仪式感 / 难度台阶可感知性——视觉义务归 B2/B5,C3 仅提供"何时变难"的数据(见呈现与 UI 契约) | **双向一致性核对(registry / systems-index 回执):** | 编号 | 内容 | 对侧 | 状态 | |---|---|---|---| | X-1 | systems-index 依赖表 C3 ← D2,B2;B1 块增补"C3 消费 B1 对账输出的事实依赖成立" | systems-index | ✅ | | X-2 | "敌种 hp/atk/pattern 曲线数值、难度修饰 → C3" | B2 | ✅ | | X-3 | "C3 = 条款③⑤约束输入方" | B1 | ✅ | | X-4 | "权重/档位/威力曲线 + RewardConfigTable 参数归 C3" | B4 | ✅ | | X-5 | "每行难度数值与曲线 → C3" | A1 | ✅ | | X-6 | B1:begin_battle encounter 掷骰增补 + 扫描 scope 腿 + B1"零随机"边界扩界注记(encounter 流在结算步流之外) | B1 | ✅(本次修订批回写) | | X-7 | B2:spawn override 参数、unit_count_max 字段语义与实例化记号调和、物种集 {goblin, bugbear, ogre_chief} | B2 | ✅(本次修订批回写) | | X-8 | D2:EnemyTable schema +2 字段(unit_count_max、armor_type);SettlementTable +4 字段(damage_a_per_cell/damage_a_cap/damage_b_per_flag/armor_effectiveness) | D2 | ✅(本次修订批回写) | | X-9 | B4:供给控制器机制承接 + clear_blast 换位 + K_dmg=0 禁区条款解除(保底语义迁移) | B4 | ✅(本次修订批回写) | | X-10 | A4:elite/boss 标记字段落地时 warning 升闸(AC-11 未来腿) | A4 | ✅(义务登记) | **对账与义务登记(B1 对账输出承接——审计资产):** | 编号 | 内容 | 对侧 | 状态 | |---|---|---|---| | 条款③ | 满配破线两轴:unit_count>1 行须满足"降密度或降 m_amb"补偿(B1 F4 双轴约束)——registry clause3_supply 登记在案 | B1 / registry | 已登记——切片群战行 hp/atk 下调为合规先例 | | 条款⑤ | 清图支配性:46.1/91.8 需求 vs **clear_blast C=40 现值(缺口 6.1/51.8,对 clear_blast 重推)**——登记为非支配设计态;预留杠杆 = C 量级上调(B1 约束包①)或弃图成本重定价(A3 域) | B1(B1 F5) | 已登记——OQ4 playtest 持续观测弃图率 | | 预警⑥ | 快杀退化:战斗结束未开资格格占比 >70% 警——高天赋速杀低难度行 = 合法形态,仪表监控不修复;区间形态钩子 = K_min < 2 观测位 | B4 / B1 | 已登记 | | unit_count 约束 | 区间 [unit_count, unit_count_max] ⊆ [1,3];>1 行联动条款③复算(流程第 5 步强制) | B1 / B2 | 已登记 | | 期望口径双读数 | 锚行读数(2.0×/2.6× 类)不得作为 unit_count=2 的放行依据 | B1 | 已登记 | ## 呈现与 UI 契约 > C3 无自有视觉/音频/UI 资产(数值系统)——义务转注如下;无新增资产需求、无 D1 新增义务登记。 | # | 义务 | 归属 | |---|---|---| | 1 | Boss 登场呈现(仪式感锚点——体验锚点"压迫的顶点");设计输入 = Boss=Dmax 行的数据面(本 GDD 提供) | B5 战斗表现 / D1 | | 2 | 难度台阶可感知性:新敌种 = 新图像线索 = 台阶的可视面孔(意图推测型——图像线索档位编码,"这只比上层的硬"可读) | B2(D1×4 义务) | | 3 | 变异解锁的"这一层有雾了":图例与首遇提示(已登记义务) | A4 / D1 | | 4 | 期望表 / 批量仿真输出 = 调参期开发工具(headless——非游戏内 UI) | 开发工具 | | 5 | 恢复点/奖励点呈现:C1-lite 切片已实现的节点覆盖层;正式形态归 D1/C1 | D1 / C1 | ## Tuning Knobs > C3 是全项目 knob 保有量最大的系统(数值 owner)。全部值 provisional 起步;域与校验归各表 schema(D2);本表只登记所有权、联动与危险方向。 | Knob | 表 | 域 | 联动 | 过高 | 过低 | |---|---|---|---|---|---| | EnemyTable.hp/atk(逐行) | enemy.tres | [1,999] / [0,999] | **与 B4 供给禁独立调参**(区间模型恒等式联合检算);cap×atk 禁独立(B2) | 打不死、战斗冗长 | 快杀退化预警⑥ | | EnemyTable.unit_count / unit_count_max(逐行) | enemy.tres | [1,3] / [unit_count,3] | **>1 行须降密度或降 m_amb**(条款③);区间骰经 encounter 流 | 条款③破线 | 压力不足/遭遇零随机 | | EnemyTable.pattern(逐行) | enemy.tres | MVP 三值组合 | OQ8 投放节奏(每关新环段) | 信息过载 | 学习曲线枯竭 | | EnemyTable.armor_type(逐行) | enemy.tres | {none, a, b} | **克制矩阵联动**(settlement armor_effectiveness);伤害A/B 充能消费面(B1 域,C3 投值) | 克制失配 | 特化对策失效 | | HeroTable.atk/max_hp | hero.tres | [1,999] | 全部输出式的分母锚(F4/F6) | 奖励价值稀释 | 挫败感 | | BoardGenTable 尺寸/密度/attempts(逐行) | board_gen.tres | 域见 schema | **密度×target 联动**(d0.28 回退先例);unit_count>1 行联动 | 推理率不达标降级 | 板退化(低密度先布后删) | | BoardGenTable.inferability_target(逐行) | board_gen.tres | **[0.85,1] 绝对锚** | 与密度成反耦 | 生成耗时/降级 | P1 空心化 | | BoardGenTable 雾参数 | board_gen.tres | f≤8d / ≤0.25 | unlock_level=2 锁定 | P1 度量空心(绝对上限) | 雾内容缺位 | | RewardTable.weight/power/tier(逐行) | reward.tres | 域见 schema | 区间模型恒等式;攻击面稀释;clear_blast 单行槽 | 即时类淹没明细/可选类贬值 | 窗口空转/重 roll 频发 | | RewardConfigTable.{t_fog_min,k_dmg,n_draft,p_min} | reward_config.tres | 域见 schema | k_dmg=0 = 保底断言关闭(禁区条款已解除——保底语义由首件保证取代) | 保底永不触发 | 种子轮盘致命 | | 供给控制器 active_p0/active_decay | reward_config.tres | [0,1] / (0,1] | E[战斗获取]≈1 目标(B4 机制本体承接);**与敌 hp 联动** | 速杀+囤积回归 | 可选类绝育 | | SettlementTable.{damage_a_per_cell,damage_a_cap,damage_b_per_flag,armor_effectiveness} | settlement.tres | 域见 schema | Boss 甲B 对策 = B 充能;A 克制甲A;联动网络 #6 | Boss 裸打过慢 | 充能失效 | | ActionEconomyTable.{ap_per_round,rap_refresh_cost,refresh_max_per_round} | action_economy.tres | 域见 schema | ap 兼 RAP 转存规模;**调参所有权归 A3,C3 联动评估** | 轮次冗长 | 决策密度坍缩 | | SettlementTable.P_perfect(乘数) | settlement.tres | {100,200} | 完美排雷×清图支配性互 feed | 钓鱼线(护栏 B) | 高光缺位 | | DifficultyTable 修饰乘数(MVP 空表) | difficulty.tres(待建) | [0.1,10](registry 预登记) | 精英节点上线时启用 | 越域 clamp+warning | 无修饰 | ### DifficultyTable schema(difficulty.tres 待建——D2 接口漂移建表) | 字段 | 类型/域 | 默认 | knob | |---|---|---|---| | level_index + node_depth(复合键) | int × int | — | ✗(结构键) | | 修饰乘数 | float [0.1, 10](registry 预登记域) | —(MVP 空表无行) | ✓(精英节点上线时启用;越域 clamp + warning——域界 = 玩法硬顶) | | elite_ / boss_ 前缀预留字段位 | 命名空间预留(D2 schema 断言期望暴露) | 无 | ✗(预留,随精英节点语义定稿) | ### 联动网络(禁止独立调参清单) | # | 联动 | 纪律 | |---|---|---| | 1 | 敌 hp ↔ 奖励供给(registry 已锁) | 单边移动必走区间模型恒等式联合检算 | | 2 | unit_count ↔ 密度/m_amb(条款③) | 群战行上线前的强制复算 | | 3 | 密度 ↔ target ↔ attempts(A1) | d0.28 回退先例的三元组 | | 4 | ap_per_round ↔ RAP 体系 ↔ refresh 上限(A3 + 轮内刷新批) | 跨字段校验闸承载 | | 5 | m_w(weaken −65)↔ 锚对照表(B1 F0) | 终值共裁 B4/B1,调参走 C3 提案通道 | | 6 | armor_type ↔ 伤害A/B 充能 ↔ 克制矩阵(B1 域) | 敌种甲型变更须复算 Boss/普通战 K 区间 | ## 验收标准 | AC | Given | When | Then | |---|---|---|---| | AC-1 | LevelTable 任一 battle/boss 节点 (L,D);ConfigDB 加载全部表 | 调参期冒烟断言逐节点查两表 | board_gen 与 enemy 两表存在该 (L,D) 精确行(跨表护栏⑧转正——载体 = C3 调参期冒烟断言;运行时 floor 兜底属 D2 R1 既有语义) | | AC-2 | MVP 全部 (L,D) 行 | 逐行扫描 inferability(批量 N=256/行——A1 F4 工具交付后的正式红线) | 全部行 inferability ≥ target ≥ 0.85(P1 绝对锚)且 A1 断言族(退化板/R₀≠S)零违例 | | AC-3 | EnemyTable 全部 unit_count>1 行 | 条款③复算(密度 × m_amb 组合) | 无破线组合存在(Core Rule 9①) | | AC-4 | MVP 全部行集(区间模型) | level_monte_carlo 逐战 S/K 区间扫描 | **零红档组合**(S_max ≤ K_min 禁止入表);教学位绿档;L1 形态带 = D0 绿 + 中段黄 + Boss 黄不红(F6 三档判定) | | AC-5 | 期望表目标带(F5) | level_monte_carlo 全带扫描(基线/+100%/+200%) | L1 基线通关率 ∈ [30, 50](现值 60% 越上界——加难杠杆批内执行,扫描落带前 provisional-pending-scan);越带须 OQ 登记——禁止静默出带 | | AC-6 | L1 全部行集 | 枚举敌种与环段 | 每关至少一项新投放(新敌种或新环段——OQ8;L1 = goblin→bugbear→ogre_chief 三段 ✓) | | AC-7 | Boss 行(Dmax) | F3 检算(期望口径 Σ=153.5) | r_boss 记录在案(现值 0.98 带内 ✓;越带须 OQ 登记——加难走廊 [1.1,1.35] 走 OQ2/扫描) | | AC-8 | 每轮刷新 | 计数达 refresh_max_per_round | 第 N+1 次拒绝(表值驱动——A3 域行为,C3 侧验收 = 联动评估记录存在) | | AC-9 | 任何 C3 直辖 knob 修订 | 检查其联动网络(Tuning Knobs 六组) | 对应联合检算记录存在于调参日志(禁止独立调参纪律的流程面) | | AC-10 | DifficultyTable MVP 空表 | B2.spawn 任一 (L,D) | 无修饰行被消费(结构位不产生行为)且未来首行上线时套乘点 = 行值快照前 | | AC-11 | scope=global 变异行 | MVP 腿:扫描 VariationTable 全行 | MVP 无 global 行存在(表级约束)且 A4 warning 通道在位;未来腿:elite/boss 标记字段落地时加载/生成期拒绝(A4 接口漂移义务——X-10) | | AC-12 | 每次调参批 | 检查 README 调参日志 | 七步流程的执行记录齐备(流程纪律的可审计面) | | AC-13 | 通关余量(新指标) | level_monte_carlo 通关轨迹采集 | E[HP_end \| 通关] 的 p90 ≤ 13 且 p10 ≥ 3("只剩一点血"量化带——越带按边界情况表杠杆处置) | | AC-14 | 关级恒等式闭合 | actuals 逐项审计(流程第③步输出) | 输出侧五项(基础攻击/刀/clear_blast/A+B 充能/attack_up)与输入侧(承伤/治疗/减伤)合计闭合 Σ敌hp期望×(1+缓冲),残差 <5%(provisional 阈值)且奖励输出占比 ∈ [15%, 40%] | ## 开放问题 | # | 悬案 | 进展 | owner | 时机 | |---|---|---|---|---| | OQ1 | L2+ 曲线数值——本 GDD 定结构/流程/目标带;具体数值行随关卡内容扩展填充(内容与数值同批——C2 关卡序列定稿后) | 结构已定 | C3 随批 | L2 内容扩展时 | | OQ2 | Boss 血量占比——v3 记录值更正 0.98(153.5 期望口径,带内 ✓);加难走廊 [1.1, 1.35] 预登记(Boss 180–207 候选);真人实测 Boss 战时长后终裁 | 走廊预登记 | C3 | F7 扫描 + playtest 批次 2 | | OQ3 | 真人修正系数——批次 1 方向确认:真人显著强于模拟者(v2 真人 100% vs 模拟 80%);F5 方向声明已更正落地;真人系数待 v3 试玩采集定量 | 方向已定 | C3 + playtest | playtest 批次 2 | | OQ4 | 条款⑤支配性真人观测——批次 1 初步裁决:真人零弃图倾向 → 非支配设计态成立、C 量级不上调 ✓(B1 约束包②采信);**P1 对冲弱化同步声明(B1 ② 条件):本裁决弱化 A3 条款⑤对 P1 失败模式的经济对冲,弃图率观测加权监控随之**;维持登记:单一样本 | 初步裁决 | C3 + B4 | 持续 | | OQ5 | 精英节点形态——完整语义(独立节点/词缀/出现规则)= C1 分支地图定稿后的联动设计(A1 定稿强制重审随之触发) | 未设计 | C3 + C1 | C1 GDD 定稿 | | OQ6 | 轮内刷新对难度模型的冲击——批次 1 初步读数:刷新零使用,根因是盲猜墙不足(inferability 0.88);杠杆预登记:密度联动上探(d0.28/t0.85——A1 回退先例风险);保持开放 | 初步读数 | C3 | playtest 批次 2 | | OQ7 | **加难杠杆扫描执行 + 完美策略档测量**——杠杆候选(r_boss 走廊 180–207 / 群战上探 / decay 0.6)已预登记;执行 = 七步流程第③步 level_monte_carlo 扫描(三档判定 + 通关率带 + 通关余量 + 占比四表对照)。**2026-09-14 完美策略档落地(用户拍板)**:零盲挖/全标旗/卡死刷新技能轴上界测量仪(godot 本机可用已验证)。**区间批已落地并复测(同日拍板②——奖励五行 power 区间 + 敌方 atk 区间 ±3)**:完美档 0 加成仍 100%(承伤 3.5→3.9)——**数值区间杠杆族对 ≤40% 验收线无效已实测坐实;主项待裁决 = 结构性杠杆三选**(承伤硬地板〔不可减免平伤,B1/B2 域〕/ weaken 饱和语义〔全标旗收益递减,B3/B1 域〕/ 极端区间宽度〔建议否决——毁基线与数字可读性锚〕);落带前 v3 值 provisional-pending-scan | 完美档已测;区间批无效性已证;结构杠杆待裁决 | C3 | 用户裁决后 | ### 试玩批次记录 | 批次 | 日期 | 数值基线 | 读数 | 裁决产出 | |---|---|---|---|---| | 批次 1(用户本人) | 2026-09-12 | v2 | 全部满血通关(清图为主/优先标雷/不用道具三策略均通)——基线难度不足定量坐实;Boss 血量 OK 或可上调;刷新零使用;零弃图倾向;治疗包零使用(不掉血伴生);伤害道具无特色(暂保留) | v3 数值批(atk 4/4/6/4/7 → 7/5/9/6/9;D0 24 保持防秒杀、Boss 130→150)+ DND 命名批(goblin/bugbear/ogre_chief——用户指令)+ 护甲克制批(armor_type none/a/b + 克制矩阵,数值 provisional)+ F3 带修订 + OQ2/3/4/6 读数;v3 扫描:基线 60%、败北向 Boss 集中 4/6、+200% 100%;下一批 = v3 真人试玩(OQ3 定量 + OQ2 终裁) | | 减伤墙批(defense_scan 触发) | 2026-09-13 | v3 + 减伤墙批 | defense_scan 实测墙轮 39%、真人局 12/12 轮零承伤满血通关——减伤墙过强定量坐实 | defense_up magnitude −50→−30(叠满两层 = −60 帽)+ 石肤权重 24→16(attack_up 升池内最高行)——B3 侧行值批,C3 承伤带(F4)复验责任随批 | ## 版本历史 | 版本 | 日期 | 改动 | |---|---|---| | v2 | 2026-09-14 | /design-review 修订批(8 blocking 核销 + 4 项用户拍板):**F6 供给带退役 → 生存链区间模型**(S/K 区间三档判定 + 关级恒等式 + 输出占比带 + C4 平移换算率——用户设计)· **带锚定稿**(通关率 [30,50] / 通关余量 p90≤13 & p10≥3 / L1 形态带)· F3 口径统一 Σ=153.5 / r_boss 0.98(旧验算 142 替代)+ 加难走廊预登记 · F4 升级生存侧(S 区间)· F5 带 [30,50] + 真人方向更正 · **MVP 行值总表 v3 转正**(切片 .tres 权威源,旧 SLICE-TUNED 表替代)· DND 更名生效(goblin/bugbear/ogre_chief)· **四批转正登记**(armor_type / K_dmg=0 / clear_blast 换位 / 供给控制器归 B4——用户拍板)· B1/B2/D2/registry 接口漂移回写(X-6~X-10)· F7 六步→七步(B4 对账重制步)· AC-4/5 重写 + AC-13/14 新增 · 条款⑤重推(C=40,缺口 6.1/51.8)· Boss atk 台阶重定义 · 减伤墙批补录 · OQ7 新增(扫描执行) | | v1-lean | 2026-09-13 | 格式迁移:legacy 原稿按 lean 样例重排——修订注记出正文收敛至本表;规则/枚举/边界情况/对账登记/AC 转表格;曲线生成与调参流程转字符画;公式、Variables 与验算数据全保留;F3 带按现行 [0.5, 1.1] 成文;语义零变更 | | 试玩批次 1 / v3 数值批 | 2026-09-12 | 遭遇随机化引入(unit_count 区间语义 + RngService encounter 封闭流——Roguelike 局感引入批,Peglin 对比报告结论 2 的本切片落地项);F3 带修订 [0.35, 0.55] → [0.5, 1.1];v3 数值批(atk 7/5/9/6/9、Boss 130→150、D0 24 保持防秒杀)+ DND 命名批 + 护甲克制批;OQ2/3/4/6 读数登记(条款⑤非支配设计态采信) | | 初稿 | 2026-09-12 | solo 模式出稿:九核心规则 + F1–F7 + 12 AC + 六 OQ;SLICE-TUNED 转正声明;Boss=Dmax 约定、DifficultyTable 结构位与 scope=global 语义定稿 |