games-development-ai/docs/agent-specs/2026-07-06-北极星顶级线-肉鸽割草-开发设计书.md
lili 05fcc7f94a feat(polaris): 《山海行纪》M3——20 分钟正式波表+词缀精英+双 Boss+首图全程录证
图 1「裂谷原」20 分钟正式局:波表/XP 经济/难度爬坡按 20 分钟重排(替 M0 的 300s 占位时间基)、词缀精英池、
双 Boss(10:00 战狰王/20:00 斩九婴按时出场)、事件 4 种;命名从山海设定 v1 符箓五行取(clean-room);
record-run.mjs=headless 录证孪生(lane 内新工具)。
门证据(528 局 D1×P2,A n=20/件+B n=12/build,较 M2 的 1080 裁半、M4 夜批回满):四判据锁值 **3/4 绿**——
①定向 build 胜率全≥40%(区间 45–85%)②最强 build rand-4 **91.7% FAIL(>85% 天花板)**③随机中位 37.5%∈[35,55]
④被动相关 |r|max 0.344≤0.6;**c2 系书 §8.2〔草案〕阈值首轮仿真回填的离群(缚灵桩耦合全体 build 定点调参)、
归 M4 夜批千局×网格,非 M2 门倒退**。首图录证:D0 win@1258.9s+D1 win@1219.7s 全 20 分钟走完击杀终 Boss、
事件≥3 次≥2 类、潮汐脉冲 17/16、逐条断言全过(dist/run-recording.json 252+244 样本)。
全回归:游戏单测 27/27+整库插件 269/269+三场景冒烟+压测 p95 1.555ms≤6ms+包体首屏 300,917B(gz 104KB)≤0.6MB;
主会话真跑复验(单测 27/27+门报告 c2=0.9167 坐实)。§8.3 M3 实测回填一处。M0–M2 门不倒退。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 04:26:20 -07:00

232 lines
33 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.

---
date: 2026-07-06
topic: 北极星顶级线-肉鸽割草开发设计书
status: 创始人已批(2026-07-06 即批即开,定名《山海行纪》·统一山海 IP 宇宙)· M0 开发中
sot-impact: 不新建 canonical topic;触点 = 品类北极星矩阵总纲(上级,消费其硬标准与红线)、游戏质量与爆火能力(消费四层模型与档位线;需新增割草品类 rubric,按其 §4 规范与 §7 申报机制另切品类件小单,本档不写 rubric 正文)、验收门(消费九门与首局门,不改判据)、复杂游戏北极星件(消费 §1.1.3 双端约束与 §2.C 快进仿真器路 A;存档定容为两款共享前置)、LittleJS 增强发行版与插件库(新增 L2 性能/手感/UI 插件族,随实现波按 contract-first 走 api.d.ts,本档只列候选)、SpaceHuggers 对照靶(照搬其 clean-room 双代理隔离方法;靶线独立,能力包目标不并入本款)
上级: docs/agent-specs/2026-07-06-品类北极星矩阵总纲-设计.md
关联: game-runtime@a207cb8d(littlejsengine 1.18.19 增强发行版 + 12 插件);cheap-worker/cheap_verify.py(RICHNESS_CHECKLIST 12 条口径)
图清单: [图0 局内外循环总览(Mermaid 先行,SVG 随定稿波补产)]
---
# 北极星顶级线②:肉鸽割草(幸存者类)开发设计书
## 0 一图看懂
三句话:这款游戏是三款顶级线里唯一的实时动作款,用「一根拇指的走位 + 每 30 秒一次的三选一」堆出十小时的构筑深度,受力面是**手感与高实体性能**;引擎裁 LittleJS 增强发行版,因为同屏 2500 实体的批渲染与 2MB 首屏预算是本品类的定义性负载;数值平衡不靠人手感,靠 core 层纯逻辑 headless 千局仿真扫出来。
```mermaid
flowchart LR
subgraph 局内["局内一局 20 分钟"]
MV["走位(虚拟摇杆)"] --> AT["自动索敌开火"]
AT --> KILL["击杀 → 经验石/金币"]
KILL --> XP["升级三选一<br/>武器12 · 被动14"]
XP --> EVO["满级+对应被动 → 进化12"]
EVO --> AT
WAVE["怪潮曲线 λ(t)+潮汐脉冲<br/>精英词缀 · 双 Boss"] --> KILL
EVENT["局内事件 8 种"] --> KILL
end
subgraph 局外["局外 meta"]
GOLD["金币"] --> TAL["天赋树 48 节点"]
ROSTER["角色 8"] --> MV
DEX["图鉴 52+ · 成就 60"] --> RET["回归钩:每日挑战"]
end
KILL --> GOLD
KILL --> DEX
TAL --> MV
subgraph 验证["验证面"]
SIM["快进仿真器<br/>千局×参数网格"] -.数值判.-> XP
GATE["九门+首局门+品类 rubric<br/>+手感断言表+真机帧预算"] -.放行.-> 局内
end
```
## 1 意图与目标
[品类北极星矩阵总纲](2026-07-06-品类北极星矩阵总纲-设计.md)拍定的三款顶级游戏里,本款承担实时动作象限:多系统存档耦合归夜市款,回合制数值深度归卡牌款,**打击手感、同屏海量实体、实时压力节奏**归本款。选幸存者类不是追热点顺手:它是 2021 年以来增长最快、2025 年仍在头部的品类之一(Vampire Survivors 谱系、弹壳特攻队长期畅销),核心输入只有一根拇指的走位,天然适配竖屏 feed 即点即玩;而它的深度全部长在数值与组合上——武器×被动×进化×角色×难度的构筑空间,正是「10 小时以上游玩时间」在轻输入品类里的正路。
目标三条,全部可验收:玩法丰富度按 §5 内容量表核数 ≥10 小时;质量按 [游戏质量与爆火能力](../architecture/架构/生成引擎/游戏质量与爆火能力.md) 四层模型走,L1 九门+首局门全绿、L2 品类 rubric 均分 ≥70% 满分(tier2 档位线);手感与性能按 §6/§7 断言表逐条机验,中端真机 60fps。
## 2 边界
做:一款原创 IP 幸存者类游戏的完整设计与开发编制——局内 8 系统、局外 6 系统、数值框架、美术音频方向、里程碑与验收。不做:横版平台动作能力包(归 [SpaceHuggers 对照靶](2026-07-04-SpaceHuggers对照靶-95自主复刻-设计.md)独立靶线,其 tile 碰撞/可破坏地形目标不并入本款);多人与联机(单机+本地榜,沿可达性红线);行为类广告归因与支付(变现位只按 ad-slot 契约预留逻辑槽);品类 rubric 正文(按质量 SoT §4 规范另切品类件小单);快进仿真器的通用批量外层(与夜市款共享的工具单,本款只保证 core 层可被它驱动)。
clean-room 红线沿靶档双代理隔离方法,全程生效:对标游戏只允许提炼机制规格、丰富度基准与黑盒验收用例;美术、代码、文案、角色、音乐、名称、关卡编排全原创;研究产出零代码零素材引用,实现侧只读机制规格不读对标实现。
## 3 对标拆解(clean-room)
### 3.1 局内循环机制规格(品类共性,提炼为我们的实现规格)
幸存者类的局内循环由六件机制咬合,缺一件手感就散:
**走位是唯一的手操。** 玩家只控制移动,攻击全自动。这意味着走位承载全部技巧表达——风筝(拉着怪群绕圈)、切缝(从包围圈的薄处穿出)、抢点(冒险冲进怪群捡经验石)。验收用例:关闭自动开火的对照局里,纯走位应能存活 ≥60s(移动本身必须是可行的防御);玩家静止不动时,D1 难度下 90s 内必然死亡(走位必须是必要的)。
**自动索敌决定「爽」的下限。** 每件武器有自己的索敌策略(最近敌/随机敌/朝移动方向/环绕自身/原地投放),策略差异是武器手感差异的一半。验收用例:同屏 ≥50 敌时,任一武器的目标选取延迟 ≤1 帧;「最近敌」策略在目标死亡后下一发必须立即换目标,不空射。
**经验石与磁吸是节奏器。** 击杀掉落经验石,玩家靠近到磁吸半径才收取——这把「捡经验」变成走位决策(冲进去捡还是等安全)。升级触发三选一,全局暂停。验收用例:磁吸半径内的经验石以先慢后快的曲线飞向玩家,0.350.6s 到达;三选一弹出瞬间世界完全冻结,输入只作用于选卡。
**武器成长两段式:升级与进化。** 武器逐级变强(等级只加数值与弹数),满级后与指定被动配对触发进化,形态与机制跃迁(不只是数值)。进化是 build 的里程碑时刻,必须有仪式感。验收用例:进化条件 = 武器满级 且 对应被动 ≥3 级,满足后下一次升级三选一里必然出现进化项;进化武器的 DPS 跃迁落在基础满级的 1.82.5 倍带内。
**怪潮曲线是压力源。** 敌人按时间表持续生成,密度与强度爬坡,中途插潮汐脉冲(短时 ×2.5 密度)与精英(词缀强化个体),定点出 Boss。验收用例:标准局 20:00 出终 Boss,击杀即胜利结算;10:00 出中 Boss;波表驱动的同屏敌数在 D1 难度按分钟单调不减,直到 18:00 后放量收割期。
**局内事件是变奏。** 宝箱怪、流星雨、商队、祭坛充能等 3060 秒小事件打断匀速刷怪,给「值得冒险的理由」。验收用例:每局事件 ≥3 次、种类 ≥2,事件奖励(宝箱=进化材料/大量经验)必须值回其风险。
### 3.2 meta 结构机制规格
对标品类的局外结构收敛为四件:**角色**(初始武器+固有 trait,改变开局思路)、**永久成长**(金币购天赋节点,数值型,拉平手残差距、制造「明天再来我更强」)、**收集**(敌人/武器/进化图鉴+成就,喂长尾动机)、**难度阶梯**(通关解锁更高危险度,同内容重玩出新压力)。回归钩(每日挑战:固定 seed+固定角色的变体局)对齐质量 SoT L3「回归钩子」结构要求。
### 3.3 丰富度基准表(训练期知识,量级锚定;精确数字上线前补一手核验)
| 对标 | 局内构筑面 | meta 面 | 备注 |
|---|---|---|---|
| Vampire Survivors | 武器 50+ 且几乎全线有进化(含 DLC) | 角色 50+、地图 10+、大量秘密 | 首发早期体量约为角色 8/武器 20 量级〔来源缺口:精确首发数字待核〕 |
| 弹壳特攻队(Survivor!.io) | 技能+进化组合十余条 | 装备强化/宠物/科技,章节 100+ 量级 | 变现与回访结构最强的移动端实例〔来源缺口:2025 章节数待核〕 |
| Brotato | 武器 38×4 阶、物品 150+ | 角色 44+、危险度 05 | 短局(≈20 波)高密度构筑〔来源缺口:数字待一手核〕 |
| 20 Minutes Till Dawn | 武器少而符文组合深 | 角色 10+ | 20 分钟定长局的直接先例〔来源缺口:数字待一手核〕 |
| Halls of Torment | 职业制+能力/特质双轴 | 任务解锁制长尾 | 复古暗黑观感差异化成功例〔来源缺口:结构描述待一手核〕 |
结论:v1 内容锚(§5)取「首发体量对齐对标首发、低于其多年累积全量」的诚实档位;10 小时的达成不靠堆武器数,靠角色×地图×难度×收集的乘法(对标们的长线也是这么长出来的)。WebSearch 本轮不可用,上表按训练期知识锚量级并逐处标注;v1 锚不抄任何对标数值,量级自立。
## 4 原创概念(三候选,交创始人拍)
三候选题材全部原创,不用任何对标皮;每案给世界观一段与视觉意象。
**候选 A《墨潮》**:玩家是执灯守渊人,守一盏不灭灯火;夜半墨潮上岸,墨化的野兽扑火而来。武器是灯焰化形(焰刃/灯轮/星火雨),进化是灯火升阶。视觉:水墨晕染的暗底世界,唯一的暖色是灯火与焰痕,命中反馈=墨晕绽开,怪群远看是一片涌动的墨。差异化最锋利、截图辨识度最高;风险是水墨笔触的帧动画工艺最难,风格版必须先行验证。
**候选 B《山海行纪》(推荐)**:玩家是持符巡山使,巡镇山海异动;百兽潮涌自裂谷而出,尽是山海经异兽(狰/穷奇/毕方/九尾各成一族)。武器是符箓法器(雷符链/山字盾环/焚天羽),进化是符阵合成。视觉:敦煌彩绘与岩画色板(赭石/石青/石绿/描金),异兽用装饰性图腾造型。推荐理由:山海经是公版题材、异兽天然构成图鉴收集轴(32 兽=32 张图鉴卡),题材×收集×传播三合一;装饰性彩绘造型对 AI 生图管线的风格一致性最友好。
**候选 C《霓虹夜巡》**:玩家是都市夜巡人,巡逻霓虹雨夜里的都市怪谈;失序的电子幽灵成潮。武器是改装装备(电磁刃/无人机群/霓虹弹幕)。视觉:深底霓虹,发光粒子走加色叠加,雨面反光。工艺最成熟、发光效果在 WebGL 里最便宜出彩;差异化居中,作保底案。
三案共用同一套机制骨架与数值框架(§5/§8),题材只改包装层(美术/文案/武器命名/兽表皮肤),故拍板不阻塞 M0M2 开发,M3 风格版落地前拍定即可。
## 5 玩法系统清单与 10 小时内容量架构
### 5.1 系统清单
局内八系统:①移动与镜头(摇杆/边界/跟随)②自动索敌开火(五种索敌策略)③武器与被动升级(三选一,权重池)④进化合成 ⑤怪潮生成与 AI(波表/潮汐/词缀精英/Boss)⑥拾取与磁吸(经验石/金币/道具)⑦局内事件 ⑧结算(胜负/统计/收益)。局外六系统:①角色 roster ②天赋树 ③图鉴 ④成就 ⑤存档(schemaVersion,结构化)⑥每日挑战。
### 5.2 内容量表(v1 锚)
| 内容轴 | v1 量 | 说明 |
|---|---|---|
| 武器 | 12(各 8 级) | 索敌策略五族覆盖;每件一条进化线 |
| 进化 | 12 | 条件=武器满级+对应被动 ≥3 级;机制跃迁非纯数值 |
| 被动 | 14(各 5 级) | 攻击/攻速/弹数/范围/暴击/移速/护甲/回复/磁吸/冷却等 |
| 角色 | 8 | 各带固有 trait+初始武器+解锁条件 |
| 地图 | 5 | 各带 1 个空间机制、专属敌表、双 Boss、专属 BGM |
| 敌人 | 32 种 + 精英词缀 6 + Boss 10 | 词缀可叠加(高难度多词缀) |
| 难度 | D0D5 六档 | 数值曲线抬升+词缀密度+波表压缩 |
| 天赋树 | 48 节点 | 金币经济的消费端 |
| 图鉴/成就 | 图鉴 52+(兽 32+进化 12+角色 8)/ 成就 60 | 收集长尾 |
| 局内事件 | 8 种 | 每局抽 35 次 |
### 5.3 进度曲线(第 1/3/5/10 小时切面)
第 1 小时:图 1 反复冲首通(平均 23 局),解锁第 2 角色与天赋树前两排;第一次进化在首小时内必然发生(教学价值)。第 3 小时:图 12 通关,角色 4 个在手,D1 解锁,图鉴过半。第 5 小时:图 34 首通,角色 6 个,天赋树 ~40% 填充,开始有意识地凑特定进化 build。第 10 小时:5 图全通,D2D3 攻坚中,8 角色集齐,图鉴 ~80%,天赋树 ~60%——此后 D4/D5 与全收集是超出承诺的长尾。
### 5.4 核数法(10 小时怎么验收)
三层互证:①机械和——逐轴显式算式、按「同一局只计一次」去重,全部假设入档可复核。计数基准:胜局 20min、败局 15min(本品类败局多死在后段压力墙,取保守中值草案·M6 真玩数据回填〕)。**首通线**(D0)= 5 图 × 平均尝试 2.2 = 11 局(5 胜 6 败)≈ 5×20+6×15 = 190min ≈ 3.2h;**角色线** = 首通 11 局按 ≥3 角色分摊且各有一胜(去重假设),边际 5 角色 ×(1 胜+0.6 败)= 8 局 ≈ 145min ≈ 2.4h——高于这 5 个边际角色的无失败基线 1.67h,与「各至少一胜」自洽,其中 2 个边际首胜打在 D1、计入难度线的 D1 覆盖(去重);**难度线** = D1 由角色线顺带覆盖后,边际计 D2D3 × 各抽 3 图 = 6 个通关目标 ×(1 胜+1.25 败)≈ 13.5 局 ≈ 232min ≈ 3.9h;**收集与天赋** = 大部分随上述局数顺带产出(去重),边际只计定向补图鉴+每日挑战 ≈ 5 局 ≈ 85min + 局外经营 ≈ 20min ≈ 1.75h。去重保守和 ≈ 3.2+2.4+3.9+1.75 ≈ **11.2h**,对 10h 承诺留 ≥1h 余量、不押薄边;未计入的缓冲轴(D4D5 攻坚、图鉴末 20%、天赋末 40%、每日挑战长期回归)每条都是 ≥1.5h 量级的真实内容,只作为假设失准时的兜底、不进算式。与 §5.3 自洽:第 10 小时处玩家应正处 D2D3 攻坚中段;②仿真复核——快进仿真器按 §5.3 切面断言解锁 pacing(第 N 小时应达内容以 P2 档 driver 的局数×单局时长折算);③真玩抽查——M6 期真人抽查三个切面点的实际体感与解锁位对齐。
## 6 手感规格(逐条可验收断言)
手感不许用形容词验收,全部量化;实现靠 particles-juice(hitStop/shakeScreen/flashScreen 现成)与 gamefeel(easing/inputBuffer 现成),缺件沉淀新插件(§7.3)。
| # | 断言 | 量值 |
|---|---|---|
| 手1 | 虚拟摇杆浮动原点,死区 ≤12% 摇杆半径,越界跟手 | 触点即原点;拖出重定位 |
| 手2 | 输入响应:触摸方向变化 → 角色速度方向变化 | ≤2 帧 @60fps |
| 手3 | 斜向移动速度归一 | 任意方向 \|v\| 恒定 |
| 手4 | 顿帧:普通命中 0 / 暴击 30ms / Boss 击杀 80ms;0.5s 窗口内合并 | hitStop,防连锁卡顿 |
| 手5 | 震屏:玩家受击 46px 衰减 ≤150ms;Boss 登场 8px | 幅度上限防晕 |
| 手6 | 受击闪白 ≤80ms;死亡爆浆粒子 814/只(池化) | 每敌种一致 |
| 手7 | 伤害飘字:同帧同源聚合为一条;暴击字号 ×1.5 异色 | 屏内飘字 ≤40 条 |
| 手8 | 磁吸:半径内经验石 ease-in 加速,0.350.6s 到达;全屏收割道具触发全图磁吸 | |
| 手9 | 升级三选一:弹出即全局冻结;弹层动画 ≤250ms;卡片单击直选 | 输入只作用于选卡 |
| 手10 | 音画同帧:SFX 与视觉事件偏差 ≤1 帧 | zzfx 同步合成 |
| 手11 | 首局门叠加:可玩 ≤2s、首次击杀反馈 ≤10s 内必然发生 | 波表保证 |
断言表进 e2e 之前要先补测量面,如实分层:现有取证面只有 runtime-probe 的启动六锚(engine 级、无玩法语义,`game-runtime/src/plugins/runtime-probe/api.d.ts`),harness 对 real 引擎通道也不强求帧精确——所以手 48、10 的帧级/毫秒级断言**测量通道待建**,手 13、9 依赖的摇杆轨迹 driver 与弹层交互断言**实现与通道同批建**,今天都还机验不了。测量面随 M1 落:hit-feedback 插件自带取证探针,暴露 `_forensicsView().measures.events[]`(字段 eventName/frame/timeMs/sourceId),音画同帧断言比对 visualEventFrame 与 sfxStartFrame;virtual-joystick 插件自带轨迹注入 driver(照 [game-e2e-cdp-harness](../../.agents/skills/game-e2e-cdp-harness.md) 九门 G_input 路)。手 11 并入首局门(通道现成)。量值标定:表内全部量值为首版草案M1 真机校准后锁〕,推导基准 = 帧级反馈惯例(30ms≈2 帧@60fps、闪白 80ms≈5 帧、磁吸 0.350.6s = 拾取决策可感知窗、屏内飘字 ≤40 = 可读性上限)。
## 7 性能规格与引擎裁决
### 7.1 同屏实体目标与帧预算
设计目标(D3 难度 18 分钟收割期峰值):敌 400(峰 600)、投射物 500、粒子 1200、拾取物 300,活动实体合计 ≤2500。帧预算 @60fps:逻辑 ≤6ms(移动+碰撞+索敌+AI),渲染 ≤6ms,余量 4.7ms。基准机 = 2022 年中端安卓(骁龙 7 系级)与 iPhone 12 级,p95 帧 ≤16.7ms、p99 ≤25ms。降级阶梯(检测掉帧自动降):粒子池 1200→800→400 → 飘字 40→20 → 屏外敌 AI 降频 1/4 → 阴影/后处理关。
### 7.2 引擎裁决:LittleJS 增强发行版(承重墙),Phaser 为触发式备选
裁 LittleJS,四条理由:
一,**实体量是本品类的定义性负载,恰是 LittleJS 的强项象限**。littlejsengine 官方以 WebGL 批渲染的高 sprite 吞吐为核心卖点(十万级 sprite 演示〔来源缺口:官方演示宣称,未一手复测〕;引擎钉版 1.18.19,`game-runtime/package.json:6`);同屏 2500 活动实体走它的批渲染是顺纹理,走 Phaser 需要更多手工管理。该宣称需在我们发行版上复测,列 M0 门(合成压测场景),不凭 README 放行。
二,**首屏 2MB 门下的包体经济(按两本账口径,证据全部对仓)**。契约包内账按 `contracts/game-package.schema.json` 算包内字节(`bundleSize`「包总字节·编译期门禁校验上限」:64,引擎经 `engineBundle` IIFE 内嵌进包 :94):LittleJS 打进包为仓内实证 176KB(`game-runtime/node_modules/littlejsengine/dist/littlejs.min.js` 实测 179,723 字节)。Phaser 在仓内的现状是 CDN 注入、根本不进 bundle(`tier2/harness/index.template.html:29-30` 预载 `phaser@3.80.1`)——若为本款改打进包,其 min 构建体积无一手实测〔来源缺口:量级为 MB 级,裁决不押其精确值〕;若维持外链,则撞渠道单游固化「禁远程代码」纪律与弱网首屏两面。首屏 2MB 硬门([复杂游戏北极星件](2026-07-06-复杂游戏北极星件-设计.md) §1.1.3 六处契约一致)下,LittleJS 两本账都把预算留给首屏美术;Phaser 要么吃包内预算、要么引入外链依赖。
三,**平台能力复利**。九门 CDP harness、12 插件库、feed 装载、A11 调整回路全在 LittleJS 线上成熟;SpaceHuggers 靶同裁 LittleJS 承重墙(理由同源:feed 真玩地板更成熟)。本款沉淀的性能/手感插件(§7.3)直接反哺轻中档生成线——顶级线反哺产线,正是北极星的存在意义。
四,**渠道 canvas-only 纪律两引擎无差异**。微信/抖音无 DOM,UI 必须 canvas 渲染;这条对两引擎同等,不构成 Phaser 优势。
诚实代价与对冲:LittleJS 无成品 UI 体系,本款 meta 界面重(五页),UI 件要自建成 canvas-ui 插件——这是拿「UI 产能」换「实体性能+包体+复利」。对冲 = 两个写死的复评触发器,均可机判:触发器① = M0 合成压测不达 60fps@2500 实体(基准机);触发器② = M2 收口三项交付布尔清单任一未勾——局内 HUD(计时/击杀/XP 条/Boss 血条)绘制齐、升级三选一弹层三卡可点击直选、出击页(一页 meta)可滚动可命中,判定走 CDP 走查断言+截图留证。任一触发即 Phaser 复评(tier2 线现成,迁移面=渲染与 UI 层,core 纯逻辑层零迁移)。
### 7.3 性能模式与 L2 插件候选
四个模式全部做成 engine 级插件沉淀(零品类语义红线,照 [littlejs-game-dev](../../.agents/skills/littlejs-game-dev.md) §7):**对象池**(全实体局内零 GC,预热池容量=峰值表)、**空间哈希**(collision 插件已带 SpatialHash,cell 取最大敌半径×2,索敌/磁吸/碰撞三消费方共享一张)、**碰撞分层**(弹×敌、敌×玩家、玩家×拾取三层;敌×敌用邻域限 8 的软推挤,O(n) 不做全对碰撞)、**群体寻的**(直线追+分离力,屏外降频)。插件候选清单:entity-pool、swarm-steering、auto-targeting、virtual-joystick、canvas-ui-kit、hit-feedback(顿帧/震屏/闪白/飘字的断言化封装;particles-juice 已覆盖大半,差额补)。各件随实现波按 contract-first 产 api.d.ts,进插件库总览。
## 8 数值框架与仿真验证
### 8.1 三条曲线族
**玩家侧**:DPS(t) = Σ 武器 base × 等级系数(Lv1=1.0 → Lv8≈3.2)× 被动乘区(攻击/攻速/弹数/范围/暴击五轴相乘)× 进化跃迁(×1.82.5);EHP = HP × 护甲减伤 × 回复折算。**怪潮侧**:单位 HP(w) = H0 × g^w(g 取 1.141.20/波,分图差异);到达率 λ(t) 分段线性爬坡 + 潮汐脉冲(×2.5,6090s 一次);压力比 = 来袭 DPS 需求 ÷ 玩家清屏速率,全程目标带 0.60.9(低于 0.6 无聊,高于 0.9 劝退)。**经济侧**:XP 曲线使升级间隔从开局 ~15s 缓升到 15 分钟时 ~45s,单局升级 2228 次;金币产出对天赋树节点单价(×1.18/级)标定为 10 小时玩家填充 ~60%。所有常量集中在 balance 层数据表(照 littlejs-game-dev 的 `balance.js` 纪律),仿真器直接吃表;曲线族全部带值(等级系数/g 值/×2.5 脉冲/0.60.9 压力带/×1.18 单价等)均为首版锚〔草案·首轮仿真回填后锁,修订走质量轨校准〕。
### 8.2 build 多样性度量(防「唯一答案」)
四条判据,仿真器出数:①每件武器至少存在一条含它的可行 build(D1 难度、P2 档 driver、胜率 ≥40%);②最强 build 胜率 ≤85%(不许必胜);③均匀随机 build 的中位胜率落 3555% 带(地板成立且不躺赢);④武器「被选中→获胜」相关性无离群(|r|>0.6 触发调参)。四条带值均为首版工作阈值〔草案·首轮仿真回填后锁,修订走质量轨校准〕:≥40%/≤85%/3555% 取「每件武器有家、最强不必胜、随机不躺赢」设计意图的初值,|r|>0.6 取强相关惯用界。四条全绿才算 M2 数值过门(门本身是本款开发内控门,非质量 SoT 九门新增)。
### 8.3 快进仿真器方案(消费 NSTAR §2.C 路 A,不另起炉灶)
北极星件 §2.C 已裁「先工具后席、路 A 工程离屏快进」,本款照用并从 M0 起守它的前提纪律:core 层纯逻辑、`update(dt)` 注入时间、随机经受控源、空间与移动逻辑不耦渲染(O-4 拍定的硬约束对本款同样生效——走位/碰撞/索敌全在逻辑层,渲染只画)。node 驱动 headless 单局:walker 策略档 P0(静止,验「不动必死」)/P1(绕圈风筝)/P2(贪心磁吸+避险,纪律最优);沿 NSTAR driver 档位裁定,L3 期先 P2 单档跑通、下沿体验标注未覆盖,包络后补。批量量级:单局 20 分钟 =72000 帧,2500 实体简化逻辑帧;千局 × 参数网格(每次调参 ~50 组合 × 20 局)夜批可跑。M2 实测回填(2026-07-06,scripts/sim-scan.mjs 门档 1080 局,开发机 darwin/arm64 · node 22 · 6 worker 并行):300s 占位局(18000 帧,D1,P2 档)单局墙钟 mean 1.88s / p95 3.29s ≈ 135µs/帧,批吞吐 180 局/分——一次调参(50 组合 × 20 局 = 1000 局)约 5.6 分钟,远优于夜批口径;按帧成本折算 20 分钟正式局(72000 帧)≈ 9.7s/局、千局 ≈ 2.7 小时,夜批口径成立。原外推「估 <1s/偏乐观约一个量级(实体规模+P2 driver 每帧感知成本),量级不构成障碍的结论不变;帧成本随实体峰值(M3 波表/2500 实体)复测。〕〔M3 实测回填(2026-07-07,record-run.mjs 全程录证 + sim-scan.mjs 门档 528 ,同机同栈):20 分钟正式局(72000 ,D1,P2 ,含波表爬坡至 2500 实体峰值精英词缀 Boss 战技事件调度)干净单线程墙钟 d0 8.0sd1 7.7s 8s/ 111µs/, M2 折算预测的 9.7s/ 略优——2500 实体为瞬时峰值全局均载低于它,帧成本未随实体规模抬高,「量级不构成障碍坐实门档 528 (A 12 武器 ×20 + B 24 随机 build ×12,20 分钟口径下按墙钟预算把 M2 1080 裁半M4 夜批回满) 8 片前台批跑以守单批 6 分钟;报告内 wallClock(单局 mean 24.8s / p95 64.2s)因分片跨批叠加开发机 overlapping 进程争用被显著抬高,不是干净吞吐读数,批吞吐锁值留 M4 夜批清机复测以干净单局折算,千局单线程 2.2 小时6 worker 22 分钟,夜批口径不变。〕仿真器的批量外层(参数扫描+曲线聚合+报告)与夜市款共享同一工具单,本款交付物是可被它驱动的 core + 本款专属 driver 策略」。
## 9 美术方向与资产、包体分包
### 9.1 工艺规格
全量帧动画走 atlas 合批(WebGL 批渲染的前提):角色 8×(idle 4+run 6+hurt 2)≈96 ,异兽 32×6 +Boss 10×10 292 ,武器/弹道/特效 sprite 80,地图 tileset 5 ×64 tiles+装饰 200,UI 图标 150+面板件 40——合计 ~1200 图元, 4 2048² atlas(webp q80) 2.02.8MB;跨节对账:该全量分布 = 主包 1.7MB(首屏图集 1.2 + 其余 UI/特效 0.5)+ 25 专属图集各 0.27MB 随分包走,合计落在 2.8MB 上限内 §9.2 预算表自洽风格一致性靠共享管线的风格词+参考图纪律( littlejs-game-dev §6 manifest/styleWords 先例,升级为三款共享的美术管线选型单);发光/加色叠加留给粒子层做,不烧进贴图风格版流程:选定题材后先产 30 帧样张(1 角色+3 +1 场景+UI 一角)交创始人眼验,过了才铺量
### 9.2 包体预算与分包
包体按两本账记。**契约包内账(全量 10MB )**:引擎+代码 0.6(LittleJS 0.18 + 游戏代码/loading /manifest 0.42)/ 首屏最小图集( 1+通用+UI)1.2 / 其余 UI 与共用特效 0.5 / BGM 0.9 / 关键 jingle 0.3 / 字体子集 0.4 / 未分配预留 1.0 —— 主包小计 4.9MB; 25 按需分包 4 × ~1.2MB(= 专属图集 ~0.3 + BGM 0.9)= 4.8MB;**全量 9.7MB(主包 4.9 + 分包 4.8), 10MB 门余 0.3MB**,局间结算屏预取下一解锁图。**首屏传输账(≤2MB )**:引擎+代码 0.6 + 首屏最小图集 1.2 = 1.8MB,余量 0.2MB(10%)——这块垫不再压薄,字体子集若超 0.4 先挤 UI 图集不动余量门的现状如实分层:包体门**契约已定义**(`bundleSize`编译期门禁校验上限等六处一致口径)而平台侧编译期强制**实现待接**——runtime 构建服务现为排队骨架T-RT-08 体积门禁列在 TODO(`game-cloud/game-module-runtime/game-module-runtime-server/src/main/java/com/wanxiang/huijing/game/module/runtime/service/build/RuntimeBuildServiceImpl.java:51`),包体入库现接受调用方自报字节数(`game-cloud/game-module-runtime/game-module-runtime-server/src/main/java/com/wanxiang/huijing/game/module/runtime/service/pkg/RuntimePackageServiceImpl.java:124`);M5 前由本款构建脚本自产 firstScreenBytes/totalBytes 两个字节数并入 CI 断言顶住,平台门落地后切换,门未落前不称"编译期断言已可用"。渠道单游固化版主包 4MB,靠更细分包与 BGM 全外置达成;平台分包单包/总量上限仓内无出处来源缺口:待渠道执行单一手核实,本设计不依赖其具体数字——无论上限多少,分包与按需加载都是必做
## 10 音频方向
SFX 主体走 zzfx 程序合成(audio-music 插件 playSfx 现成,零包体天然音画同帧),覆盖命中/拾取/升级/受击/UI 全事件;胜利/进化/Boss 登场三类仪式感 jingle 用生成音频采样(≤10 )。BGM 6 (主题 1+每图战斗曲 5,6090s 无缝 loop),intensity 分层随波次压力驱动(audio-music `play(intensity)` 现成);生成通道主案 = mmx music(本机已装music-2.6-free key 不限量,littlejs-game-dev §6 一手可用),顶级质量若超出其上限,升级通道随三款共享的美术音频管线选型单出材料交拍,本档不预拍
## 11 UI 结构
竖屏 390×844(feed 容器主向;单摇杆单手持机,竖屏是本品类移动端主流形态)。局内 HUD:顶部计时+击杀数+Boss 血条位,通栏 XP ,左下浮动摇杆,右下主动道具位(≤1 );升级三选一 = 全局冻结+三张大卡(名称/等级/一句效果/进化预告徽标);暂停面板 = build 总览(武器 6 +被动 6 +本局统计)。局外五页:出击(角色/地图/难度三选)/天赋树/图鉴/成就/设置全部 canvas 渲染(canvas-ui-kit 插件承载,渠道 canvas-only 纪律),hud-ui 插件的 drawPanel/drawButton/hitTest 为底,补滚动容器/网格列表/树布局三件
## 12 里程碑与验收门
M = 可玩交付+门,门不绿不进下一 M;会话数为估值,句柄是交付物不是工时
| M | 交付(可玩) | | fable5 会话() |
|---|---|---|---|
| M0 核心循环 | 移动+摇杆+1 武器自动开火+3 敌种+波次+升级三选一( 5)+死亡结算;core 纯逻辑层与 headless 单局脚本同批落 | 九门基础过;**合成压测 60fps@2500 实体(基准机,引擎复评触发器①)**; 13 断言;headless 单局跑通 | 4 |
| M1 手感+性能件 | 测量面落地(hit-feedback 探针 events[]+virtual-joystick 轨迹 driver)+手感断言表接通;entity-pool/swarm-steering/auto-targeting 沉淀 L2 插件;canvas-ui-kit 首版(HUD+三选一弹层) | 手感表断言逐条接通并真机校准量值6 分层口径);真机 p95 16.7ms;插件 api.d.ts ;canvas-ui 产能进度观测(触发器 M2 收口判) | 5 |
| M2 build 体系 | 武器 12+被动 14+进化 12+暂停 build 总览;仿真器参数扫描首跑 | build 四判据全绿(P2 );仿真墙钟 spike 实测回填 §8.3;**UI 三项交付布尔清单(引擎复评触发器②,CDP 断言)** | 6 |
| M3 首图完整 | 1 20 分钟局+词缀精英+ Boss+事件 4 ;选定题材风格版 30 帧样张落地 | 首图真玩全程录证;首局门;品类 rubric 首评(观测);**创始人眼验风格版** | 5 |
| M4 meta | 角色 8/天赋树 48/图鉴/成就/每日挑战/存档 schemaVersion+定容接入 | 存档兼容检查(定容共享单未落则按 §13 影子存档降级口径,不宣称正式存档通过);10h 内容图谱核数首验(机械和);L3 rubric 2/3 | 6 |
| M5 内容完备 | 5 +D0D5+BGM 6+分包按需加载+渠道预检 | 包体断言 10MB/首屏 2MB(构建脚本自产字节数证据;平台编译门实现待接9.2 口径);正式存档通道切换+迁移验证;全图真玩抽查;仿真 pacing 1/3/5/10h 切面断言 | 8 |
| M6 打磨收口 | 数值全扫(千局×网格)+音画全检+真机复测 | L1 全绿;L2 品类 rubric 均分 70% 满分;手感/性能表复测;**创始人验玩拍板** | 5 |
会话切单纪律:每单 = 一个系统单元 + 可玩交付 + 验收断言 + 真跑证据(测试/九门/基准输出原样贴回),合计估 ~39 开发会话;门失败的修复不另开单计入本单品类 rubric 品类件(按质量 SoT §4 六规范产条目+金标) M3 前另切小单,不占本表
## 13 风险与共享前置
,**美术管线是三款共享的最大新建面**:风格一致性批产(~1200 图元 × 23 迭代)、atlas 打包工具链字体子集化;mmx 一手可用为地板,顶级画风的通道选型出共享材料单交拍,**存档定容 = 三款共享基建单**:本款 save_state(金币/天赋/角色/图鉴/成就/难度/统计)结构化多字段,顶破现行 KV 4KB (NSTAR §1.1.3 B 坐实的存档面重新定容+schemaVersion, L2 save-progress 通道);该前置已升格为三款共享基建工单,最早需求方 = 卡牌款(其 M2 ),排期交创始人拍,谁先落其余复用本款 M4 硬依赖;降级口径 = 共享单未落时 M4 以影子存档(浏览器本地)完成功能验收不得宣称正式存档通过,M5 发布门前必须切正式通道并跑迁移验证,**仿真器批量外层**与夜市款共享工具单,M2 前需可用(本款 M0 先自带单局脚本兜底)。,**canvas-ui 产能**:触发器兜底,Phaser 复评路线预写,**真机基准通道**:M0 起需要 mini-desktop+真机窗口,60fps 断言不许只在开发机测,**品类 rubric 缺位**:割草品类件(含替代丰富轴申报,情感锚/放置回归等条目需按 §7 机制品类适配)M3 前落,晚了 rubric 首评没尺,**对标数字未一手核验**(WebSearch 本轮不可用):§3.3 只锚量级不进任何验收判据,风险面为零,但上线宣传口径引用前必须补核
## 14 成本画像(如实列;预算已拍不设限)
fable5 会话:开发 ~39 + 设计/评审/收口 ~8;美术生成:~1200 图元 × 迭代 23 30004000 次生图 + 风格版试错;音频:BGM 6 + jingle 10;仿真批:夜批 CPU ,货币成本忽略;真机窗口:mini-desktop 既有,无新增采购货币主体 = fable5 token 与生图服务用量; M 实际支出随里程碑收口如实回填本节
## 15 待创始人拍项
题材与概念名三选一4,推荐 B山海行纪》);②风格版样张眼验(M3 ,先拍题材才能产);③竖屏拍定11 推荐竖屏;改横屏沉浸则 HUD/feed 承载成本上浮);④每日挑战入 v1(推荐入,L3 回归钩结构件)或推 v1.1;⑤D0D5 难度档命名调性(随题材);⑥品类键建议 `survivor`(路由与 rubric 登记用,随品类件小单正式申报)。