design(node-map-gen): v0.2 首轮裁决落文——①首关参与抽签仅首次冒险固定脚本(存档布尔标志+收束点置位,新节) ④池规模每关5张(调参表投值) ⑤关卡开始逐关抽确认;骨架多份随机调取=台阶一路线确认;②增流白话释义两选项+③台阶一详解与实施时点三选项补证据面待复裁;测量对账实施门改随机量扩池口径;06/02 随批
This commit is contained in:
1 parent
fd62503e63
commit
69e9ebcc26
3 files changed
+65
-17
No files matched your search
@@ -42,7 +42,7 @@
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
| `关卡节点地图.md` | 单关内的节点图选路与推进 | 已定稿 |
|
||||
| `关卡节点图生成.md` | 单关节点图的逐局随机来源:图模板池、抽签与实例化(实施未开工) | 设计草案·已立项待拍板 |
|
||||
| `关卡节点图生成.md` | 单关节点图的逐局随机来源:图模板池、抽签与实例化(实施未开工) | 设计草案·拍板点①④⑤已裁决 |
|
||||
| `冒险结构.md` | 整局冒险的关卡序列、失败与大奖励 | 已定稿·自旧体系迁移 |
|
||||
| `难度曲线与Boss.md` | 难度曲线、期望值带与 Boss 设计 | 已定稿·自旧体系迁移 |
|
||||
| `元进度.md` | 跨局成长(旧体系未单独成文) | 已定稿·已实现(2026-09-21 实现批,数值 provisional 归设计批标定) |
|
||||
|
||||
@@ -215,11 +215,11 @@
|
||||
|
||||
#### 关卡内结构随机生成(哈迪斯 / 哥布林弹珠式布局变化)
|
||||
|
||||
**现状**:用户 2026-09-20 方向性提及布局随机变化(哈迪斯 / 哥布林弹珠式);现行节点图读关卡表固定行集。**2026-09-27 用户拍板立项**,设计文档已交付:[关卡节点图生成](systems/冒险循环/关卡节点图生成.md)——图模板池逐局抽签(N=1 回滚档)+ 三级台阶 + MC 测量对账;实施未开工。五拍板点待定:① L1 是否抽签 ② `node_map` 增流 ③ 实施时点 ④ 首版池规模 ⑤ 抽签时点,荐值见文档拍板点表。
|
||||
**现状**:用户 2026-09-20 方向性提及布局随机变化(哈迪斯 / 哥布林弹珠式);现行节点图读关卡表固定行集。**2026-09-27 拍板立项**,设计文档已交付:[关卡节点图生成](systems/冒险循环/关卡节点图生成.md)(图模板池逐局抽签+三级台阶+测量对账)。**首轮裁决**:①第一关参与抽签、仅首次冒险走固定脚本④池规模每关 5 张⑤关卡开始逐关抽确认;骨架多份随机调取=路线确认。②③已补证据面待复裁(文档证据面 A/B,荐②A③C)。
|
||||
|
||||
**归属**:[关卡节点图生成](systems/冒险循环/关卡节点图生成.md)(设计 owner;行集内容责任方仍为[冒险结构](systems/冒险循环/冒险结构.md),行进与图合法性校验归[关卡节点地图](systems/冒险循环/关卡节点地图.md))
|
||||
|
||||
**状态**:已立项·设计草案待拍板(2026-09-27)
|
||||
**状态**:已立项·设计草案 v0.2(①④⑤已裁决落文;②③待复裁)
|
||||
|
||||
### 难度曲线与Boss
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 关卡节点图生成
|
||||
|
||||
> 一句话:单关节点图怎么从固定配置变成逐局随机——图模板池、抽签与实例化
|
||||
> 状态:设计草案(2026-09-27 用户拍板立项;五项拍板点待裁决,实施未开工)
|
||||
> 状态:设计草案 v0.2(2026-09-27 立项;拍板点①④⑤已裁决落文,②③证据面已补待复裁;实施未开工)
|
||||
> 旧版参考:无(旧体系未单独成文;本事项自 2026-09-20 起登记 [06-待办清单](../../06-待办清单.md)「关卡内结构随机生成」条目)
|
||||
|
||||
## 设计目的
|
||||
@@ -75,7 +75,22 @@
|
||||
|
||||
可复现域沿用既有口径:主种子 + 各随机流计数器(语义权威归[冒险结构](冒险结构.md)「失败重开与主种子」节,本文不复述)。抽签每次消费恰一个带编号的 scope,计数器随既有快照契约入档——[存档序列化](../表现与支撑/存档序列化.md)零新增域。同主种子同操作序列的两局,逐位同一张图。
|
||||
|
||||
第一关注记:第一关现行单链模板保持池中唯一(N=1)即天然固定,教学位纪律不需要新机制——是否维持由拍板点①裁决。
|
||||
教学位随骨架走:各骨架的"第一场战斗节点"沿用教学位纪律(首遇位固定数量不加骰)——教学位属性是骨架的内容标注,不跟节点编号走(拍板点①裁决后第一关也参与抽签,例外见下节)。
|
||||
|
||||
### 首次冒险的固定脚本(拍板点①裁决落文)
|
||||
|
||||
**人话阶段**:教学关不该第一局就随机——玩家第一次玩,地图必须是设计好的那一张。拍板点①裁决(2026-09-27):**全部关卡都参与抽签,唯独玩家的第一次冒险全程走固定脚本**。这也是参照游戏的通用做法(首次冒险特殊脚本)。
|
||||
|
||||
| 事项 | 规则 |
|
||||
|---|---|
|
||||
| 判定标志 | 存档域新增布尔位「首次冒险已进行」(owner=存档序列化,实施批落 schema) |
|
||||
| 判定时机 | 开始新冒险时读标志:false = 首次脚本模式;true = 正常抽签 |
|
||||
| 脚本模式内容 | 全关零抽签——每关直接取池内的现行固定模板(即回滚档成员),逐位等价今日行为,无需新做脚本内容 |
|
||||
| 置位时机 | 冒险收束点置位(完成/失败/放弃三结局同写)——存档级属性冒险期只读、写入只在收束挂点(既有纪律) |
|
||||
|
||||
两条边界:首次冒险中途退出游戏(未到任何收束点)则标志未写,下次新冒险仍走脚本——教学重放,可接受;首次冒险内死亡或放弃即结算置位,第二次冒险起抽签。
|
||||
|
||||
测量口径:模拟试玩与数值验证夹具恒置标志为 true(永远走抽签路径)——首次脚本分支不进任何读数。
|
||||
|
||||
### 三级台阶路线
|
||||
|
||||
@@ -89,25 +104,55 @@
|
||||
|
||||
台阶二的随机量入账:候选槽位掷定消费同一条图模板抽签流的后续 scope,计数器域照旧覆盖,可复现性零损失。台阶三的参数取值域届时随本文修订登记,本草案不预设。
|
||||
|
||||
台阶一用一句话说:**给每关手工做几张不同的地图骨架,每局开始时随机抽一张用**(用户裁决路线确认:骨架不完全固定、多份随机调取)。玩家看到的是同一关每局长得不一样——这局岔路多、下局一条窄道——但每张都是人工画好、审过合法性的图,不是程序乱长。台阶一不做两件事:房间类型不掷骰(某房间是奖励房还是恢复房仍由骨架定死——那是台阶二),程序不算图(那是台阶三)。首版池规模 = 每关 5 张(拍板点④),其中 1 张 = 现行固定图。
|
||||
|
||||
### 测量对账:别让随机污染读数
|
||||
|
||||
**人话阶段**:2026-09-21 呈报暂缓的三理由之一是"污染 MC 读数"——模拟试玩与数值验证的通关率是按固定图测的,图一随机,读数波动就混进了布局差异。本节是消解条款,三条:
|
||||
|
||||
1. **分层出数**:模拟试玩与数值验证工具的读数按「关卡 × 图模板」分层记录;混合池的整体通关率 = 各模板条件通关率的加权平均(权重 = 抽中概率,均匀池即算术平均)。
|
||||
2. **基线可比**:基线批(对拍、重投)跑固定模板口径——把池临时缩到 N=1(回滚档)或固定抽签 scope,保证新旧基线在同一张图上对话。
|
||||
3. **实施门**:台阶一实施排在[难度曲线与Boss](难度曲线与Boss.md)曲线调参批收口之后——现行行值 provisional 收带前叠加布局随机,归因会失真(拍板点③)。
|
||||
3. **实施门**:随机量(扩池)上线排在[难度曲线与Boss](难度曲线与Boss.md)曲线调参批收口之后——现行行值 provisional 收带前叠加布局随机,归因会失真;抽签机制本身可先行落地(池保持 N=1 行为零变化,见拍板点③选项 C)。
|
||||
|
||||
另两条暂缓理由随批消解:**类型集未稳**——五类节点封闭枚举已随商店房批定稿,扩类走文档修订的既有通道对模板同样适用(模板 schema 跟随枚举走);**内容量不足**——台阶一的模板就是内容批,按内容批节奏逐张走,不设批量生产目标。
|
||||
|
||||
## 拍板点(登记 [06-待办清单](../../06-待办清单.md),随批更新条目)
|
||||
|
||||
| # | 拍板点 | 推荐 |
|
||||
| # | 拍板点 | 状态 |
|
||||
|---|---|---|
|
||||
| ① | L1 教学关是否参与抽签 | L1 池 N=1 固定单链(教学位纪律),L2 起抽 |
|
||||
| ② | `node_map` 随机流增流 | 准——按 rng_service 封闭流增流纪律(改代码 + 金向量补登 + 冒烟断言) |
|
||||
| ③ | 台阶一实施时点 | 曲线调参批收口后(测量对账条款的实施门) |
|
||||
| ④ | 首版池规模 | L2/L3 各 2–3 张起步,provisional 随内容批扩 |
|
||||
| ⑤ | 抽签时点 = 关卡开始逐关抽(本草案口径) | 确认——若改冒险开始一次预抽,随批修订本文 |
|
||||
| ① | 第一关(教学关)是否参与抽签 | **已裁决(2026-09-27)**:参与——仅首次冒险走固定脚本,见「首次冒险的固定脚本」节 |
|
||||
| ② | `node_map` 随机流增流 | 待复裁——证据面 A 给出释义与两选项(原荐 A) |
|
||||
| ③ | 台阶一实施时点 | 待复裁——证据面 B 给出台阶一详解与三选项(原荐 C) |
|
||||
| ④ | 首版池规模 | **已裁决(2026-09-27)**:每关 5 张起步(调参表已投值) |
|
||||
| ⑤ | 抽签时点 = 关卡开始逐关抽 | **已裁决(2026-09-27)**:确认 |
|
||||
|
||||
#### 证据面 A:随机流与「增流」是什么(拍板点②的背景)
|
||||
|
||||
**人话**:本项目的随机数只有一个总入口(随机服务,代码名 rng_service),硬性红线禁止任何代码绕开它自己掷骰——"同一个种子+同样操作序列 = 逐位相同的一局"靠这条保证,调试复盘和模拟对账都依赖它。总入口内部按用途分账:每种用途占一栏,叫一条**流**(本文含义:随机服务内部按用途分开记账的一栏独立随机序列,各有各的编号,互不串账)。现行清单七条:雷图生成、奖励抽取、敌人数量掷骰、命中掷点、出招摇号、变异布置、金币掉落——清单是封闭的,新用途必须在清单里开新栏。
|
||||
|
||||
图模板抽签是一笔新用途的随机账,要在清单里新开一栏(拟名 `node_map`)——「增流」就是这个动作:**给封闭流清单加一条新流**。它之所以要拍板:加流有固定成本(改代码 + 补一组校验用黄金向量 + 加冒烟断言,纪律规定的三件套),不是随手配置。
|
||||
|
||||
| 选项 | 内容 | 代价 |
|
||||
|---|---|---|
|
||||
| A 增流(原荐) | 清单加 `node_map` 栏,抽签独立记账 | 三件套成本;图的抽签可独立复现,与其它系统零耦合 |
|
||||
| B 借现有流 | 从某条现有流取号 | 省三件套;但这笔账和那个系统的账搅在一起——重放对方系统的随机序列会被抽签挤位,复现口径变含糊,不推荐 |
|
||||
|
||||
#### 证据面 B:台阶一详解与实施时点(拍板点③的背景)
|
||||
|
||||
台阶一(图模板抽签)落地后的样子:
|
||||
|
||||
- **玩家看到什么**:同一关,每局地图的房间连接方式不一样(这局岔路多、下局一条窄道),但每张都是人工画好、审过合法性的图——不是程序乱长。
|
||||
- **做三件事**:①每关 5 张骨架(拍板点④,其中 1 张 = 现行固定图);②开始关卡时抽一张实例化;③首次冒险走固定脚本(拍板点①)。
|
||||
- **不做两件事**:房间类型不掷骰(那是台阶二);程序不生成图(那是台阶三)。
|
||||
- **内容形态**:一个内容批 = 15 张骨架(3 关 × 5)+ 池内全模板加载校验 + 冒烟断言。骨架里只有房间和连线,**不新增敌人数值**——遭遇表按节点编号共用:两张骨架若都在 3 号位开战,3 号位打的敌人是同一套(表键不含骨架维);骨架差异体现在拓扑与房型排布,不体现在"同编号打不同敌人"。要打破这条需给遭遇表键加骨架维,归实施批 schema 拍板。
|
||||
|
||||
实施时点三个选项:
|
||||
|
||||
| 选项 | 内容 | 后果 |
|
||||
|---|---|---|
|
||||
| A 机制+骨架立即全上 | 现在做完整内容批(含扩池到 5 张) | 曲线调参批未收口,数值基线在动;地图一随机,模拟读数的波动归因变难(数值动了还是图动了分不清) |
|
||||
| B 全部等调参批收口(v0.1 原荐) | 机制与内容都排在曲线调参批后 | 读数对账最干净;机制落地要等 |
|
||||
| C 机制先行、骨架随后(原荐) | 先落抽签机制但每关池暂放 1 张现行图(行为零变化),骨架内容批画好后一次扩到 5 张——扩池时点守测量对账实施门 | 机制与内容解耦:扩池前读数零污染,扩池后分层出数条款接管;不用等调参批 |
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
@@ -119,16 +164,17 @@
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 关卡表模板池列的承载与统一读取;`node_map` 流(提案待拍板)与流种子派生公式的基础设施 |
|
||||
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 模板内遭遇数值的所有权;曲线调参批收口是台阶一的实施门 |
|
||||
| 下游 | [关卡节点地图](关卡节点地图.md) | 实例化行集的供给方;其图合法性校验与全部行进规则零改动 |
|
||||
| 下游 | [存档序列化](../表现与支撑/存档序列化.md) | 抽签 scope 计数器入既有快照契约(主种子 + 流计数器),零新增域 |
|
||||
| 下游 | [存档序列化](../表现与支撑/存档序列化.md) | 抽签 scope 计数器入既有快照契约(主种子 + 流计数器),零新增域;「首次冒险已进行」布尔位为唯一新增存档字段(实施批落 schema) |
|
||||
| 下游 | [HUD框架](../表现与支撑/HUD框架.md) | 零新语义——节点态照旧读图,模板差异对呈现层透明 |
|
||||
|
||||
## P0 最小闭环(台阶一实施批)
|
||||
|
||||
1. 关卡表逐关行扩模板池结构(承载归数据配置,schema 细节随实施批定)。
|
||||
2. 池内全部模板加载期预校验(违规致命,fail-fast 不变)。
|
||||
3. 开始关卡处理内抽签实例化(`node_map` 流恰一 scope)。
|
||||
4. 既有图合法性校验照跑零改动;关卡节点地图与战斗侧全链零改动。
|
||||
5. 冒烟断言:抽签确定性(同种子逐位同图)、池内全模板校验、N=1 池与现行固定图逐位等价。
|
||||
3. 存档域加「首次冒险已进行」布尔位:开始新冒险读标志(false = 首次脚本模式,全关零抽签取现行固定模板),冒险收束点置位(三结局同写,写入只在收束挂点)。
|
||||
4. 开始关卡处理内抽签实例化(`node_map` 流恰一 scope——拍板点②)。
|
||||
5. 既有图合法性校验照跑零改动;关卡节点地图与战斗侧全链零改动。
|
||||
6. 冒烟断言:抽签确定性(同种子逐位同图)、池内全模板校验、N=1 池与现行固定图逐位等价、首次脚本分支(标志 false = 固定图 / true = 抽签)。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
@@ -143,7 +189,7 @@
|
||||
|
||||
| 参数 | 域 | 现行值 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 模板池大小 N | int [1,+∞),关卡表逐关行 | provisional(拍板点④) | N=1 = 回滚档;扩池 = 内容批 |
|
||||
| 模板池大小 N | int [1,+∞),关卡表逐关行 | 每关 5(2026-09-27 拍板点④;内容批落地前现行 1 张,provisional) | N=1 = 回滚档;扩池 = 内容批 |
|
||||
| 重掷预算(台阶三) | 未立项不设值 | — | 台阶三立项时随本文修订登记 |
|
||||
|
||||
## 验收标准(草案——随拍板点裁决收口,实施批落地时按本节验收)
|
||||
@@ -151,6 +197,7 @@
|
||||
- 池内全模板加载期通过图合法性校验,违规致命(校验面不只抽中的那张)。
|
||||
- 抽签确定性:同主种子同操作序列逐位同一张图;抽签 scope 可独立回放。
|
||||
- 回滚档成立:N=1 池的关卡与现行固定图逐位等价。
|
||||
- 首次冒险脚本:存档标志 false 时全程固定图(逐位等价现行行集),冒险收束点置位标志恰一次;标志 true 后每局抽签。
|
||||
- 商店房编排约束在每张模板上成立:每关恰 1 个商店房、关底 Boss 前一位必经位。
|
||||
- 零新面:关卡节点地图行进/兑付/收束断言与战斗侧寻址断言全绿,零改动。
|
||||
- 测量分层:模拟读数含「关卡 × 图模板」维度;基线批可固定模板复现。
|
||||
@@ -165,3 +212,4 @@
|
||||
| 版本 | 日期 | 说明 |
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-09-27 | **设计草案成文(立项批,用户拍板立项——06 条目「关卡内结构随机生成」随批改状态)**:概念三件套(图模板/模板池/图模板抽签,N=1 回滚档)、抽签时机(开始关卡内逐关抽、主种子派生 `node_map` 流提案)、三级台阶路线(抽签→属性随机→全程序)、MC 测量对账三条款(分层出数/基线可比/实施门=曲线调参批后)、五拍板点、依赖表与验收草案。实施未开工;术语入 registry 词汇表随定稿批执行 |
|
||||
| v0.2 | 2026-09-27 | **首轮裁决落文批(用户拍板①④⑤+路线确认)**:①第一关参与抽签、仅首次冒险走固定脚本——新增「首次冒险的固定脚本」节(存档域布尔标志「首次冒险已进行」、收束点置位、边界与测量口径,P0/验收/依赖表同步);④首版池规模=每关 5 张(调参表投值);⑤抽签时点确认;用户并裁「骨架不完全固定、多份随机调取」= 台阶一路线确认(台阶节补白话块+教学位随骨架走注记)。②③补证据面待复裁——新增「拍板点证据面」节:A=随机流/增流白话释义+两选项;B=台阶一详解(玩家看到什么/做三件/不做两件/内容形态 15 骨架/遭遇表按编号共用约束)+实施时点三选项(A 立即全上/B 等调参批/C 机制先行骨架随后,荐 C);测量对账实施门条款同步改"随机量扩池守门、机制可先行"口径 |
|
||||
Reference in new issue
Block a user