Files
HexTrails/docs/1000-level-production-plan.md
T

267 lines
21 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.
# HEX TRAILS · 1000 关制作体系与难度曲线
讨论稿 · 2026-09-12
本方案以现有规则和[新版设计准则](level-design-principles-v2.md)为基础:箭头决定起步、轨道决定后续路线;底盘旋转时棋子与箭头不动;成功消除减少占用,试路和旋转免费,保留撤销与快速连点。正文保留制作前的方案与假设,不替代实际验收记录。
实施更新(2026-09-12):已据此制作独立 v0.5 千关首版,20 章 × 50 关。完整规则求解、每关 20 种策略、核心放行与主长路门槛已通过;原操作运行时和历史版本保留。实际配额、逐关证据、静态审阅及浏览器样本见[千关制作报告](v0.5-production-report.md)。真人连续章节试玩、熟练度曲线与长期疲劳仍未校准;客户端当前按章展示,但一次读取完整关卡模块,尚未实现按章下载。
**目标是让玩家持续体验“看得懂的发现、轻巧的释放、值得观看的长路和有变化的图案”。平均推理负担在中期趋稳,后半程通过组合、空间形态和释放过程持续提供新内容。**
下文的关数配额、难度档位、频率和检查数量均为首轮生产假设,需由基准样关、连续章节试玩和实际玩家数据校准;不是已经验证的满意度、留存或真人难度结论。
研究补充(2026-09-12):已完成[论文与竞品调研报告](level-design-research-report.md),并建立[关卡设计知识库](level-design-knowledge/README.md)。研究支持意图/空间共同生成、分类候选库与独立编排的方向;本文精确配额继续作为试验假设。“后期平台”应理解为目标玩家体感的校准目标,不能固定结构难度而忽略熟练度提高;花瓣关也允许空间草图与体验关系共同输入。具体论据、限制和修正见报告第 7 节。
## 1. 从已有实验保留什么,先改什么
已有成果:
- v0.4 的 20 关已有固定制作来源、最少旋转参考解、作者体验解、真实路径统计,以及清挡、反差和往返旋转的具体断言。参考解含 199 次消除、89 条至少 6 弯的路径;“6 弯”只是该批样关的统计口径。
- 花形实验已证明可以先设计实际路线,再连接环带、布置棋子。其 91 格、十二瓣与三道环带有 177 段强调连接参与参考解;最长离场为 59 个格步骤、37 弯。
- 现有模型、扫掠碰撞、求解器、反向布子、连点队列和回放能力均应复用。
首先修正评价与生成顺序:
1. `src/core.js` 的 `analyze.score` 仍把长路两项合计最多计入 34 分。当前首关 4 枚棋子全可出、无需旋转,仍得到 34 分/“进阶”。不能拿这个总分排序 1000 关。
2. `src/experience-generator.js` 仍先随机配轨,再偏向长路径选择棋子。它适合提供布子候选,不能独自保证有形状的路线、清楚的放行关系或不同的关内节奏。
3. 不同种子、不同布局甚至同样可解,都不代表不同体验。现在需要增加体验差异评审和整段节奏编排。
## 2. 每关分别记录四个维度
| 维度 | 真正要看什么 | 在制作中如何使用 |
| --- | --- | --- |
| 推理负担 | 找到下一步需要辨认什么因果;是否需要预判换路;关键关系是否跨区 | 决定难度档位和章节位置 |
| 视觉辨认负担 | 轨道能否跟随、交叉是否清楚、阻挡是否能解释、关键棋子是否被埋没 | 决定可读性是否合格,不能当作加难奖励 |
| 操作与播放量 | 成功点击、重复清理、空转、真实动画长度、相似路径反复播放、队列等待 | 控制单关与相邻关的疲劳 |
| 观看与释放回报 | 长巡游的空间展开、轻巧反差、一次放开一组、图案逐步显现 | 决定本关为什么值得玩,以及什么时候兑现 |
四项分别记录,不重新揉成一个“质量总分”。长路长度是观赏内容和可能的跟线负担,不能自动变成推理难度。清楚的 A→B→C 不一定难;若多个合法选择效果等价,也不能把选择多当作深推理。
求解器的状态数、最少旋转数、释放波次只作结构诊断。难度档位先用基准关对照判断,再用同类玩家的实际表现校准。
## 3. 难度档位与 1000 关总体分布
| 档位 | 预期体验 | 初始预算 |
| --- | --- | ---: |
| D1 | 看见就能启动;可以有很丰富的长绕行 | 150 |
| D2 | 找一个清楚的挡子,或理解一次直接换路 | 350 |
| D3 | 组合两段熟悉关系,例如清挡后换路、不同区域依次放行 | 350 |
| D4 | 少量跨区关系或旋转选择,需要主动观察,但关键变化可解释 | 130 |
| D5 | 少量后期综合挑战;判断更深入,仍保持线索、试路与可恢复性 | 20 |
| 合计 | 轻松约 50%,适中约 35%,挑战约 15% | 1000 |
这是内容预算,不要求把每个候选强行塞入某档。若实际试玩与设计评级不一致,重排、修改或淘汰候选。
**全程保留轻松关。第 800 关的玩家仍应经常获得“我已经很熟练,轻轻一动就通了”的体验。第 1000 关可以是漂亮的庆祝关,不要求它成为最难的一关。**
### 五个制作阶段
采用 20 章 × 50 关管理,每章内部使用长度错开的 6–10 关小段。章节有主要路线语汇,但需交叉使用多种形态,不连续做 50 关同一朵花。
| 范围 | 主要内容进展 | 难度方向 |
| --- | --- | --- |
| 1–50 | 建立点击、转弯、交叉不换轨、清挡和转盘的直觉;前 10 关就看到长巡游、轻巧反差与有层次的图案 | D1–D2 为主,一次突出一个理解点 |
| 51–200 | 熟练区分箭头与出口,理解一枚让一组、清挡再转、简单分段释放 | 逐步增加 D3,少量 D4 |
| 201–500 | 跨区连接、内外层穿行、转过去再回来、多个熟悉结构组合 | 推理基线缓慢增加,保留大量舒缓内容 |
| 501–800 | 用不同路线形态和不同放行时机重组熟悉规则;加强作品关 | 平均负担趋稳,少量 D5 |
| 801–1000 | 熟练感、旧主题的新连接、跨主题组合与阶段庆祝 | 主要增加内容变化,保持难度平台 |
预算展开如下,用于检查前后期是否真的有变化,而非作为发布前的机械排号规则:
| 范围 | D1 | D2 | D3 | D4 | D5 | 合计 |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| 1–50 | 25 | 20 | 5 | 0 | 0 | 50 |
| 51–200 | 30 | 60 | 50 | 10 | 0 | 150 |
| 201–500 | 35 | 110 | 115 | 40 | 0 | 300 |
| 501–800 | 35 | 100 | 110 | 45 | 10 | 300 |
| 801–1000 | 25 | 60 | 70 | 35 | 10 | 200 |
| 合计 | 150 | 350 | 350 | 130 | 20 | 1000 |
### 小段曲线示例
一个成熟期十关片段可以是:
**D2 → D2 → D3 → D3 → D2 → D3 → D4 → D1 → D3 → D2**
| 相对关位 | 主体验 | 推理档 |
| --- | --- | --- |
| 1 | 熟悉入口,直接放出一条跨盘长路 | D2 |
| 2 | 朝内起步却能沿轨直接出去,兑现路径反差 | D2 |
| 3 | 理解两个区域的占用关系,分别让路后释放内层长路 | D3 |
| 4 | 清理一侧后换路,让另一侧开始放行 | D3 |
| 5 | 路线有层次的花纹关,关键动作很少 | D2 |
| 6 | 回访熟悉形态,但关键挡子换到另一区域 | D3 |
| 7 | 两个区域的因果关系组合成局部挑战 | D4 |
| 8 | 出口大方开放,轻松观看长巡游 | D1 |
| 9 | 转到另一侧清挡、再转回来,放出朝内目标 | D3 |
| 10 | 图案逐步展开,以顺畅巡游收束 | D2 |
第 7 关的推理高点之后,第 8 关立即减轻判断;第 10 关的观赏高潮无需同时成为难度高潮。不同小段要改变峰值位置、长度、释放方式和形态,不能让玩家猜到“每第七关一定难”。
示例中的 D3 意图是让玩家理解组合关系;若实际画面使动作一眼明确、无需组合判断,试玩后应下调档位,不能仅因转了两次或长路较多坚持评为 D3。
## 4. 内容预算:体验主角与路线形态分开安排
每关只设一个主体验,其他爽点作为辅助。首轮 1000 关预算:
| 主体验 | 关数 | 主要任务 |
| --- | ---: | --- |
| 直接巡游 | 240 | 让长路本身成为可立即获得的奖励 |
| 清挡放行 | 260 | 移走关键棋子,清楚地放出后续长路或一组棋子 |
| 轻巧反差 | 220 | 用很少的动作解决第一眼觉得棘手的目标 |
| 旋转换路与分段释放 | 180 | 改变出路关系,交替清理与观看 |
| 综合收束 | 100 | 组合已学内容,组织完整开局、中段和漂亮收尾 |
| 合计 | 1000 | |
形态、长路和旋转是可重叠标签,不与上述主体验类别相加。初始目标为:
- 约 800 关包含至少一段经过实际回放审阅、值得跟随的长巡游。按路线家族制定制作带,不统一用“≥6 弯”或“≥18 弯”判断全部内容。
- 约 200 关具有可辨认的花瓣、环纹、星芒、编织或其他有秩序的路线图案;其中约 60 关作为重点精修作品,其余融入日常关卡。
- 约 600 关让旋转承担实际放行作用。旋转角色应变化,不给每关硬凑转数。
- 轻巧反差除作为 220 关的主角,也可以出现在其他类型的中段或收尾。
这些标签不能仅由作者声明。长路需要实际行驶证据,反差需要改变前后的路线证据,图案需要完整画面与实际路线参与证据。
### 长路怎样不腻
轮换绕中心、横跨棋盘、内外层穿梭、左右区域交换、花瓣往返等空间过程。关注整关路线分布与重复覆盖,不能只追求单条最大弯数。
一关可以用少量主角长路配若干有用的短出口。短路负责开局、让路和即时反馈;无需每枚都走最长路线。轻松巡游关则可以让多条各有观感的路线直接畅通。
保留完整行驶与原游戏速度逻辑。若连续点选后出现疲劳,先审查是否把相同长路重复过多、是否缺少新的放行变化,再讨论交互;不要把动画时间一概当作等待,也不要用慢放增加内容长度。
### 反差怎样不变成公式
至少轮换以下来源:朝内却直接出去;中央棋子比边缘棋子容易释放;外表复杂的图案只需一个关键动作;清掉一枚后整组畅通;旋转一次接上另一侧出口。
简单动作后立即兑现目标。若还要清三层阻挡,就不应把该目标作为“轻巧反差”宣传。
玩家学会“一转就出”后,再遇相同关系可能主要获得熟练感。这个内容仍有价值,但应按复习或舒缓编排,不能把重复套路持续算作新惊喜。
### 图案怎样承担不同玩法
同样的重瓣花语汇可以形成不同作品,但必须重新设计路线连接和放行关系:
| 花形变体意图 | 关键动作 | 玩家实际看到什么 |
| --- | --- | --- |
| 舒缓巡游 | 少量棋子直接启动 | 从内层沿不同花瓣向外展开 |
| 清挡放行 | 一个短出口先让开 | 花心中的目标穿过内外层长路 |
| 轻巧反差 | 一次旋转后点朝内棋子 | 起步方向未变,却从另一片花瓣绕出 |
| 分段组合 | 清一侧、换路、再放另一侧 | 花纹逐段显现,最后顺畅收束 |
早期图案可以维持丰富、有秩序的路线,通过减少需要判断的阻挡关系降低难度,不必退回稀疏的几根花瓣线。后期图案也不默认增加棋子数量或让人盲目跟线。
## 5. 把生成器升级为按体验制作
目标流程:
**制作卡 → 路线与放行骨架 → 约束构造与反向布子 → 补齐轨道 → 自动验证与多策略回放 → 差异筛选 → 章节编排 → 试玩校准。**
### 5.1 制作卡必须先于种子
每张卡至少说明:
- 主体验、目标难度、路线家族、章节角色。
- 关键棋子是谁,第一眼预期是什么。
- 哪个点击或旋转改变谁的出路。
- 奖励在开局、中段还是收尾发生。
- 哪些长路、哪些连接必须保留。
- 和相邻关、同一母版前例有什么实质区别。
示例:“中期 D2;重瓣图案;外侧短出口释放一枚朝内目标;目标沿内外花瓣离场;关键奖励在前半段兑现;其余棋子提供顺畅收尾。”
### 5.2 先设计运动与因果,再求具体布局
把路线构造与棋子布置拆成可协作的两部分:路线决定形态和运动内容;放行骨架决定清挡、旋转和阶段关系。先保留关键端口和出口,再用约束搜索、反向布子和局部修改找到可实现布局;无法实现就改卡或换结构,不在后面编造标签。
常用放行结构包括独立出口、一枚让一条、一枚让一组、多个区域分别放行、换向连接、去一侧清理再返回。不同结构可以组合,但不把清楚的因果链简单计成难度。
图案应优先做在真实轨道内部。现有全盘旋转要求底格集合旋转后仍然合法,不能任意裁成轮廓而破坏规则。颜色和装饰不参与路线规则。
反向布子时保存完整的构造解,再用求解器和实际回放交叉核验。补齐剩余端口时保持完整配对,并重新检查是否改变主路径、形成意外闭环或引入难解释的碰撞。
### 5.3 用路线家族和体验母版支撑数量
先验证约 8–12 类路线构造方式,例如回廊、中心绕行、双区穿梭、内外环带、回折、编织、放射、单瓣/重瓣、波纹和左右镜像图形。每类再形成不同放行关系和节奏的体验母版。
中期目标是积累约 60–80 套经过审阅的体验母版,探索多个有效变体。不要规定每套必须产出同样数量;母版没有新变化就停,数量缺口用新增结构补齐。
一个变体至少需要改变两个影响体验的维度,其中至少一个涉及真实路线组织或放行关系。只改颜色、名称、镜像、全局旋转,或添加几枚无作用的直出棋子,不算充分的新内容。
### 5.4 候选池按类别竞争
按“主体验 × 推理档 × 路线家族 × 释放阶段”保留不同候选,各自在相近类别中比较清晰度和回报。不要按一个全局分数取前 1000 名,否则容易留下大量相同风格的长路关。
对每个目标位置可以从数十个候选开始搜索,记录通过率、淘汰原因和计算成本。稀缺类别扩充路线模板;候选不足时不降低正确性、可读性和体验门槛。是否需要上百个候选,以实际产率决定。
## 6. 去重与防疲劳
两层一起做:
1. **布局去重。** 忽略名称、ID、颜色,将整局场景连同棋子、箭头一起旋转/镜像归一。仅转底盘会改变玩法,不能因此把两个不同状态当作同一个布局。
2. **体验近似检查。** 比较关键放行关系、成功路径形态、旋转节奏、开局入口、关键奖励出现时机,以及完整行驶的重复程度。
编排初始规则:同一关键套路不连续用三关;同一具体母版的近似变体初始间隔约 30 关;刻意的教学重复在制作卡中说明目的。这些规则需随试玩调整,不能替代连续游玩评审。
每 50 关都要回答:这一章增加了什么可感知的新内容?哪些关虽然布局不同,却玩起来相同?若回答不清楚,该批次尚未完成。
## 7. 四道入库验收
### A. 规则正确性:全部 1000 关覆盖
格式、端口、旋转坐标合法;完整构造解与参考解回放通关;实际扫掠碰撞、交叉不换轨、撤销、免费试路和连点一致。搜索到上限只能记录为未确定,不能当作困难但已验证。
对替代合法操作检查仍可继续完成。当前规则下成功消除只减少占用、旋转可恢复,不能人为制造“正确消除后反而无解”的惩罚。
### B. 体验证据:全部 1000 关覆盖
记录实际成功路径的几何长度、格步骤、转弯与空间展开;记录清挡和旋转改变了谁的出路;记录主奖励出现阶段。图案关检查强调连接的参与情况与闭环,不能由装饰线撑起形状。
检查第一段回报是否过晚、收尾是否重复、反差目标是否兑现。记录完整播放量和相似路径重复度,不能只看最大长路。
### C. 自然玩法覆盖与差异:全部 1000 关覆盖
为外圈优先、短路优先、长路优先、较早旋转、顺着局部连续点选等代表策略做回放,并加入随机扰动。初始按每关至少 20 轮设计检查量;新母版、图案、挑战和异常关加密检查。
除了通关,还要统计这些策略是否仍能看到主长路和关键放行。若关键奖励只存在于作者指定顺序中,修改布局、调整奖励位置或重新归类。可先把约 80% 代表回放能遇到主奖励作为复审参考线,待样关确认;这不是对真实玩家曝光率的保证。
对关键转盘前后、可能发生格外接触的区域进行额外检查。抽样覆盖必须标明范围,不能宣称穷尽全部玩家行为。
### D. 人工审阅与真人校准
每关都应有画面/回放审阅记录;所有新母版、重点图案和挑战关要完整手玩,常规变体做分层实玩抽检,章节要连续试玩。
真人测试重点关注是否愿意跟完路线、是否理解放行因果、是否认出图案、反差是否成立、连续几关是否感到重复。不能把“全部自动通过”表述为“全部已证明好玩”。
首轮可以用小规模新手与熟练玩家发现明显问题;样本充足后再估难度和行为分布。记录主动思考、路线动画、错误原因、空转、提示与重开、退出位置,并按玩家熟练度和设备区分。初期不统一给全体关卡设定未经标定的通关秒数或成功率门槛。
## 8. 量产工具与稳定运行
制作侧需要一张可筛选的关卡总表:缩略图、体验卡、难度档、实际路线摘要、参考解、替代策略报告、近似关、审阅状态、版本信息。支持直接观看关键放行前后与整段回放,减少在 JSON 和游戏界面之间来回查找。
所有关卡使用同一套运行时、输入、连点、碰撞、动画与撤销。不同图案作为数据与绘制配置,不另写不同的操作逻辑。
发布包应冻结关卡快照,并保留关卡稳定 ID、关卡修订号、规则/生成器/模板版本、种子与制作参数。仅保存种子不能保证生成器更新后仍生成同一关。序号与稳定 ID 分开,更新已发布关卡时检查存档兼容。
生成和筛选离线完成,客户端按章节加载已验证数据;不让玩家进入每一关时等待大规模生成或求解。棋盘大小由手机可点性、可读性和体验需要决定,当前引擎最大 127 格是边界,不是后期制作目标。
## 9. 实施顺序与完成标准
| 阶段 | 具体产出 | 继续扩量的前提 |
| --- | --- | --- |
| 50 个基准样关 | 覆盖不同体验、形态和难度,含后期候选;不等同于主线前 50 关 | 分离难度与回报的评价成立,新母版能兑现制作卡 |
| 完整前 100 关 | 两个连续章节、稳定制作卡和审阅工具 | 教学、反差、长路和难关后释放在连续试玩中成立 |
| 扩到 300 关 | 扩充母版、自动验证与差异检查 | 常规生成产率可接受,不能靠几个模板反复填数 |
| 扩到 600 关 | 验证成熟期的平台曲线与跨章变化 | 熟练玩家在多次游玩后仍能感到变化,播放量没有持续疲劳 |
| 扩到 1000 关 | 按每 50 关完成验收包,组织后期回访与最终庆祝 | 全部规则与体验证据齐全,逐关审阅、分层试玩和整段节奏检查完成 |
先完成评价拆分、路线/放行骨架、差异筛选和统一运行时这几项生产能力,再扩大布局数量。整套工程量和候选倍率应在首批样关测量后估算,不以“生成 1000 个文件很快”推断 1000 个关卡的制作成本。
初始讨论阶段的产出是制作方案;目前已经完成可玩千关首版。本文中的真人校准、连续长线体验和满意度目标仍需实测,不能仅凭首版数量与自动通过宣称全部成立。
## 10. 方法参考与项目依据
以设计者预先定义的目标组织具体空间结构,可参考 [Mixed-Initiative Design of Game Levels: Integrating Mission and Space into Level Generation](https://research.hva.nl/en/publications/mixed-initiative-design-of-game-levels-integrating-mission-and-sp/)。保留多个不同类型的优质候选、在相近类别中比较,而不是只优化单一总分,可参考 [Procedural Content Generation through Quality Diversity](https://antoniosliapis.com/articles/pcgqd.php)。本项目先采用可解释的约束构造和分类候选池,无需为了使用这些思路先引入强化学习系统。
上述研究提供方法参考,不证明本文配额、难度曲线或 HEX TRAILS 的玩家体验已经成立。项目自身依据为 [新版准则](level-design-principles-v2.md)、[v0.4 回放报告](v0.4-experience-review.md)、[花形实验](flower-study.md)、[生成器](../src/experience-generator.js)、[规则与评分](../src/core.js)及对应测试。