games-development-ai/docs/agent-specs/2026-07-06-北极星顶级线-卡牌构筑-开发设计书.md
lili 207bb79719 docs(polaris): W-POLARIS 品类北极星矩阵——总纲+三款顶级线开发设计书落档
创始人 2026-07-06 三拍立项、晚间升档(3 款顶级 10h+ 并行、全 fable5 high、预算解除、clean-room 红线)、
四拍收口(统一山海原创 IP 宇宙《山海行纪》《山海巡异录》/《夜市一条街》定名/W-SAVE-CAP 立即切单/即批即开)。
三书各过 Codex+Opus 双评审(6 席 35 条全修入:两本账/阈值标草案/待建基建如实分层/链护栏三层/结构常数例外清单)。
台账:作战清单 W-POLARIS+W-SAVE-CAP 单、在飞板三行、SpaceHuggers 靶档裁定戳、NSTAR 档 reachability 引用核正;
三线 M0 同夜交付结果已记账(割草本机面全绿/夜市 卡牌 PARTIAL 断点清晰)。
2026-07-06 09:24:24 -07:00

292 lines
38 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;触点 = 品类北极星矩阵总纲(上级)、游戏质量与爆火能力(L1/L2 口径与平衡门五裁定只消费不改)、产物执行沙箱与渠道发行(CSP/包体/渠道边界只消费)、复杂游戏北极星件 §2.C(快进仿真器路 A 复用)、agentic运行时架构图说(tier2 档位事实);实装期新增品类 driver/rubric/契约字段各走既有门(验收门品类适配单、W-GENRE 品类件形状、contract-first),本档不直改任何 SoT
上级: docs/agent-specs/2026-07-06-品类北极星矩阵总纲-设计.md
关联: contracts/game-package.schema.json(包体门 10MB/2MB)、tier2/engine/build-phaser.mjs(Phaser external 装载)、tier2/fixtures/mini-fei-e/src/game-core.js(纯逻辑层先例)、cheap-worker/cheap_verify.py(RICHNESS_CHECKLIST 12 条)
图清单: [图0 一图看懂(Mermaid,SVG 随定稿由图代理按 atlas 补), 图1 数值闭环, 图2 里程碑梯]
---
# 北极星顶级线③:卡牌构筑肉鸽 开发设计书
## 0 一图看懂
```mermaid
flowchart LR
subgraph RUN["一局(竖屏 · 中位 28 分钟)"]
MAP["三幕地图 DAG<br/>战/精英/事件/商店/休整/宝匣"] --> BATTLE["回合战斗<br/>能量·抽5·敌意图公开"]
BATTLE --> CHAIN["出牌序列链(原创轴)<br/>相生链倍率 · 结算演出逐段计分"]
CHAIN --> REWARD["三选一加卡 · 金币<br/>删卡收费 · 遗物"]
REWARD --> MAP
end
RUN --> META["局外:进阶 A0A15 · 图鉴<br/>成就 · 每日一局(固定种子)"]
META --> RUN
SIM["快进仿真器(NSTAR §2.C 路A)<br/>三档 driver × 千局胜率/采用率扫描"] -.数值 CI.-> BATTLE
GATES["九门+首局门+品类富门<br/>L1 唯一拒发权"] -.验收.-> RUN
```
三句话:**核心思想**——尖塔骨架(地图/回合/敌意图/遗物/进阶)注入 Balatro 式乘法爽感,原创轴是「出牌顺序本身构成牌型」的序列链倍率,数值全程由快进仿真器当 CI 看管,这一款立三款北极星里「数值 CI + UI 工艺」的标杆目标(达没达标以门、仿真报告与真玩为准,不自评)。**边界**——单机竖屏 H5 主端,不做联机 co-op、不接支付、渠道只留单游固化选项;机制对标 clean-room,表达全原创。**怎么算成功**——L1 门全绿 + 品类 rubric ≥70% + 仿真胜率带达标 + 内容耗尽度 10h 核数过(§5.3)+ 创始人验玩拍板。
## 1 意图与目标
卡牌构筑肉鸽是 20242026 被反复验证的顶级品类:Balatro 手机版 2024 年 9 月 26 日上线后长期霸榜(iOS/Android)〔外部核实 2026-07-06:Polygon/维基口径;原稿误作 2025-09,双评审核正〕,Monster Train 2 于 2025 年发布口碑走高〔外部核实 2026-07-06:Rogueliker 品类综述〕,Slay the Spire 2 于 2026 年 3 月 5 日进 Early Access、首日 97% 好评、首周销量超 300 万〔外部核实 2026-07-06:Mega Crit 官网 news/2026-02-19、Steam 商店页 app/2868840、DLCompare 报道〕。品类的三个结构性优点正对我们的受力面:回合制天然逻辑纯净(headless 仿真最容易)、内容=数据表(卡/遗物/敌人全是表,内容席只写表的纪律直接适用)、深度来自组合爆炸而非资产量(10MB 包体内做出百小时级深度的唯一品类)。
目标五件:①一款 10 小时以上深度、竖屏单手可玩的原创卡牌构筑肉鸽,上自研 H5 feed;②数值体系全程仿真器护航,交付「数值 CI」方法论(采用率带/胜率带/金标构筑回归),沉淀为平台复用件;③卡牌 UI 工艺标杆(手感规范逐条可验收);④卡牌品类的 driver/门适配与品类件,反哺生成线扩品类;⑤全维度沉淀(玩法/数值/美术/音频/代码/工程规范)按总纲蒸馏。
## 2 边界
做:单机单人、竖屏 390×844 优先、自研 H5(iframe 沙箱)主端、2 职业首发、进阶 A0A15、每日一局(固定种子+本地最佳,榜单走平台既有能力不新建后端)、激励视频变现位结构预留(复活 1 次/局+结算双倍,按 ad-slot 契约、宿主代理)、run 中断续玩存档。
不做:联机与 co-op(尖塔 2 的 4 人合作明确不抄——网络对战不落轻量运行时,单机+每日种子足撑 10h);内购支付(结构预留不接);第三职业与赛季制(M6 后续版本);渠道一壳多游(写码富游戏上不了,渠道只保留精选单游固化选项,月级节奏,见[渠道发行](../architecture/运营/渠道发行.md));横屏模式(竖屏定死,理由见 §7.1)。
与另两款的关系:经营《夜市一条街》压系统耦合与存档,割草压实时性能,本款压回合数值与 UI;共享前置(美术音频管线/存档定容/仿真器批跑外壳)在 §12 如实列出,不重复建设。
## 3 对标拆解(clean-room)
### 3.1 方法与红线
沿 [SpaceHuggers 靶档](2026-07-04-SpaceHuggers对照靶-95自主复刻-设计.md)已立的双代理隔离:本节是研究侧产物——只含机制说明、结构规格与验收用例,零代码引用、零素材引用、零数值表照抄;实现侧只读本档规格与验收反馈,不读任何对标游戏源码或反编译产物。表达层(美术/文案/角色/音乐/名称/具体卡牌文案)全原创;机制骨可同构,数值与表达重做。
「机制骨」里有一小撮**品类通约结构常数**按 clean-room 例外保留,清单明示、随书交创始人过目:每回合能量 3 起、每回合抽 5 张、手牌上限 10、回合末弃手。理由:这四个是回合制卡牌品类跨作品收敛出的规则形状(玩家心智迁移成本最低的公共骨架),属机制结构而非数值表达;除此之外的一切数值曲线锚(伤害/格挡本位、HP、递增斜率等)一律重推,不与任何对标逐值相同(§6.2,双评审裁定)。
### 3.2 谱系机制骨(六件,每件一句「为什么成立」)
**构筑循环的张力**。局内卡组是活的资源池:打牌消耗能量、回合末弃手、抽牌堆耗尽即洗牌——于是「卡组厚度」成为核心变量。加卡免费(战斗奖励三选一)而删卡收费(商店服务),价格差是刻意的:卡组每薄一张,核心连段的抽到率就抬一格,删卡费在给组合爆炸收租。规格:三选一加卡可跳过;删卡定价随次数递增;卡组下限 10 张。
**敌意图公开**。敌人头顶明示下回合动作(攻击 X/格挡/强化),把回合决策从赌博变成资源分配解题——玩家算的是「这 3 点能量在已知威胁下怎么花」。这是品类可以「零阅读上手、百小时钻研」的根,意图必须永远诚实(不做假意图,混乱类敌人用「?」明示不可知,而非误导)。
**遗物=规则修改器**。遗物不加数值、改规则(首回合多抽/链起点+1/商店打折),是构筑方向的乘数与「局与局不同」的主要来源。规格:遗物效果必须是规则级而非纯数值级(纯数值加成占比 ≤30%),获取源分层(精英必掉/Boss 三选一/商店/事件)。
**地图分支与事件**。程序生成的节点 DAG 让「走哪条路」成为构筑决策的延伸(缺血走休整、卡组毛糙走商店、博遗物走精英)。事件是低成本内容密度的主源:一段文字+两三个选项+一个代价交换,单条制作成本是卡牌的几分之一,数量要压过卡池。
**进阶阶梯**。通关后逐级叠加负面修正(A1 精英更多、A2 敌伤+10%……A15 终局强化),同一份内容翻出 16 倍深度——10 小时目标的一半由它承担。规格:每级修正独立成表、可组合、逐职业记录进度。
**Balatro 工艺要点(乘法爽感)**。分数=筹码×倍率的双轴结构逼玩家搭乘法引擎,配「逐段结算演出」(逐牌弹分、倍率逐环点亮、音高递升、总分爆字)把数学做成爽感;单局 2030 分钟、一屏信息全可见、盲注线指数增长给出清晰的强度标尺。这套「简单规则×组合爆炸×结算演出」是本款结算系统的模板级参照——机制骨同构,载体换成我们的序列链(§5.1)。
### 3.3 20252026 谱系动向(设计消费点)
尖塔 2 EA 首发即 5 职业/575+卡/278 遗物——头部标杆的内容量在膨胀,我们首发不追这个量级,靠序列链原创轴与竖屏工艺差异化(诚实定容见 §5.2);其近 30 天好评率回落到 59%〔外部核实 2026-07-06:Steam 商店页〕,社区分歧集中在内容节奏——印证「首发深度 < 长线更新节奏」,我们把 M6 内容波(第三职业/赛季)预先排进路线而非承诺首发Balatro 手机版证明竖屏单手是品类成立形态;Monster Train 2 证明双轴组合(氏族×副氏族)」是拉构筑组合数的省内容手法,本款以职业×遗物流派承接同一结构
### 3.4 机制→验收用例(抽样,全量随 M0M3 落 play-spec)
| 机制 | 可验收断言 |
|---|---|
| 能量经济 | 回合开始能量=上限;打出费用>余量的卡被拒且状态无副作用 |
| 敌意图诚实 | 意图展示的动作类型与数值 = 下回合实际结算(千局仿真零偏差) |
| 序列链 | 按相生序打出 N 张,结算倍率=表定曲线;破序即断链归基 |
| 删卡经济 | 删卡后卡组数-1、该卡不再出现在本局抽牌;价格按表递增 |
| 洗牌守恒 | 抽牌堆耗尽触发洗牌,弃牌堆整体转入,总卡数守恒 |
| 进阶修正 | AN 层激活的修正条目与修正表逐条一致(仿真断言) |
| 存档续玩 | 战斗外任意节点杀进程重进,地图/卡组/遗物/HP/种子逐字段一致 |
## 4 原创概念候选(交创始人拍)
机制骨(§5)三案共用,概念决定「第二轴」与全部表达层;M0M1 与概念无关,拍板最迟在 M1 末。
**候选甲《山海巡异录》(推荐)**。你是持符行走山海图的巡异使,收服作乱的异兽。卡=符箓与咒诀,按五行(金木水火土)定属性——序列链在此实例化为「五行相生链」:木生火、火生土,顺生则倍率递增,五行全环触发「周天」爆发。第二轴=**收服**:战胜精英异兽可炼为「兽牌」入本局卡池,图鉴即卡池扩张的进度面。视觉意象:青绿山水底 × 矿物彩异兽 × 金线符箓,结算炫耀图=异兽收服卷轴。推荐理由:五行给协同标签一个玩家零学习成本的心智模型;山海经是公有领域题材、美术富矿;图鉴收集轴直接兑现 L2 rubric 的情感锚与炫耀时刻。
**候选乙《喝彩!怪奇马戏团》**。深夜马戏团班主,每场演出在限定手数内把喝彩值堆过场次线(分数阶梯结构,战斗目标从「杀敌」换成「达标」,最贴 Balatro 的数字爽感)。卡=节目/演员/道具,第二轴=**常驻演员位**(遗物与卡池的中间态)。视觉意象:暗色复古马戏海报 × 霓虹点缀,炫耀图=当夜演出海报。差异点:无敌人对抗、纯分数攀登,数值曲线最陡最爽,但品类识别度偏 Balatro-like,原创感弱一档。
**候选丙《残卷炼金堂》**。末法之世的炼金学徒以药石入牌驱疫。第二轴=**熔铸**:删卡经济改造为「两张熔一张更强」,浓缩与升质同步,构筑曲线更平滑。视觉意象:中世纪手稿羊皮纸 × 鎏金图释。差异点:熔铸是三案里机制最原创的删卡变体,但题材社交话题性弱于甲。
## 5 玩法系统清单与 10 小时内容量
### 5.1 系统清单
局内十系统:①回合战斗(能量 3 起、抽 5、手上限 10、回合末弃手、可保留词缀);②出牌序列链(原创轴:打出顺序按属性相生成链,每环倍率+0.25、基 1.0,断链归基,集齐五行触发周天爆发——语义与护栏见 §6.3;链轨常驻可视化);③结算演出(逐段计分:基础值→链环逐个点亮×音高递升→总量爆字,全程事件流回放、可加速可跳过);④卡池与稀有度(普通/罕见/稀有三档+职业分池);⑤遗物;⑥状态词缀(10 个正交:力/韧/灼/蚀/易伤/虚弱/护/引/滞/隐,具体命名随概念);⑦地图 DAG(三幕×6 类节点);⑧事件;⑨商店与删卡经济;⑩消耗符(单次道具,战斗资源决策的第三轴)。
局外五系统:⑪进阶 A0A15;⑫图鉴(卡/遗物/敌兽,收集进度可视);⑬成就(40 条);⑭每日一局(全服同种子、本地最佳分,炫耀截图位);⑮解锁流(新卡新遗物随局数渐进入池——前 6 局每局开新内容,是留存结构的第一钩)。
### 5.2 内容量表(首发定容,诚实版)
| 内容轴 | 首发量 | 对标参照(仅参照,不追平) |
|---|---|---|
| 职业 | 2(+M6 第三职业) | 尖塔 2 首发 5 |
| 卡 | 154 = 职业专属 66×2 + 中立 22 | 尖塔 2 为 575+ |
| 遗物 | 72 = 共享 52 + 职业专属 10×2 | 尖塔 2 为 278 |
| 敌人 | 39 = 普通 24 + 精英 9 + Boss 6(三幕各 2 轮换) | 尖塔一代量级 |
| 事件 | 45 = 幕池 12×3 + 通用 9 | — |
| 消耗符 | 24 | — |
| 进阶 | 16 级修正表 | 尖塔 A20 |
| 成就/图鉴 | 40 条 / 265 词条 | — |
定容原则:每样内容都要过「采用率带」(§6.4),宁少而全活、不多而半死;量级设计成表驱动,M6 起内容波只加表不动代码。
### 5.3 10 小时核数法
单局中位 28 分钟(竖屏手机,设计带 2236)。核数表(每格=设计通关率→期望局数→累计时长,通关率均为首版设计值〔草案·首轮仿真回填后锁〕):
| 阶段 | 解锁内容 | 设计通关率 | 期望局数 | P50 局长 | 边际时长 | 累计 |
|---|---|---|---|---|---|---|
| 教学局 | 固定脚本首战+基础 20 卡 | 100% | 1(短局) | 18min | 0.3h | 0.3h |
| 职业甲首胜 | 甲池 66 卡渐进入池 | 单局 ≈15% 渐升 | 68 | 28min | ≈3.3h | 3.6h |
| 职业乙首胜 | 乙池 66 卡(经验迁移) | 单局 ≈22% | 45 | 28min | ≈2.2h | 5.8h |
| 进阶 A1A5(任一职业) | 修正表逐级 | 逐级 45%→25% | 67 | 28min | ≈3.0h | 8.8h |
| 图鉴/每日/成就尾部 | 265 词条+每日种子 | — | 23 | 24min | ≈1.2h | **10.0h** |
上表是设计期人工推演;它的机器化形态=快进仿真器输出每档 `clearRate × runLength` 分布,程序生成「期望累计时长曲线」进验收链(M2 起每轮扫描附带产出),人工表退居初版锚。A6A15 与图鉴尾部在 10h 之外再给 20h+ 余量,不计入核数。验收判据(双评审后口径):**硬判据=内容耗尽度**——仿真时长曲线外推「双职业通关 + 进阶 A5」的中位累计用时 ≥10h(M5 门,机器可判);**校准源=内测真人**——内测窗口 ≥2 周、n≥20、有通关激励设计(进度礼包/榜单),真人 telemetry 与仿真曲线对表,「真人累计 session 时长 P50 ≥10h」降为放量后观测线、不作发布硬门(避免把「内测者有没有 10 小时空闲」误当内容深度);单点抽查=创始人验玩每里程碑一次。10h 不许用拖时长凑(单局强行变慢、进度门槛注水都算失败),判据附带「单局中位 ≤36min」与「前 6 局每局有新解锁」两条反作弊约束。
## 6 数值框架(本款招牌)
```mermaid
flowchart LR
T["数值表(卡/遗物/敌/曲线/进阶)<br/>全外置 JSON · 内容只写表"] --> S["静态自检(毫秒级 · advisory)<br/>估值公式越界 · 结构可达"]
S --> SIM["快进仿真器(路A 复用)<br/>3档driver × 2职业 × 16进阶 × 千局"]
SIM --> BAND["判据带:胜率带 · 采用率带<br/>P99/P50≤8 · 无限连搜索"]
BAND -->|"越带 → 反馈含实测值vs期望值"| T
BAND -->|"达标"| GATE["真玩动态门(权威)<br/>九门+首局门+品类富门"]
```
### 6.1 数值语言
四资源轴:能量(回合内,起 3 可成长)、HP(跨战斗持续,是一局的长线资源——「用血换牌」类交换都以它计价)、金币(局内经济)、链势(序列链的回合内累积轴)。卡牌三元组:费用 c∈{0,1,2,3,X}、效果向量 v、标签集 T(五行属性 ×1 + 功能标签攻/御/序/术)。全部数值落数据表 JSON,代码零魔法数——这条纪律与《夜市一条街》§1.1 的数值配置表同构,是仿真器与「第 N 千次改动」都依赖的地基。
### 6.2 强度基线与斜率
伤害本位:1 费=7 点单体伤;格挡本位:1 费=4 甲(攻防本位差 ×1.75 刻意压防守——序列链要玩家把回合花在打出连段上,防御过值会让龟缩成为最优解;此锚为重推值,不与任何对标逐值相同,§3.1 例外清单之外的数值一律如此);抽 1 卡=0.5 费当量;得 1 能量=1.0 费当量。卡牌估值公式:效果当量合计 ÷ 费用,普通卡基准 1.0、罕见 ≤1.15、稀有 ≤1.3,条件卡(要求链位/弃手/血价)按达成率折价 0.750.9——估值进静态自检,越界即黄牌提示(advisory,不拦,按质量 SoT 平衡门裁定二)。玩家侧:职业甲 HP 72(攻优)、职业乙 HP 66(链优);敌方:幕 1 普通 HP 1852、精英 ~100、Boss ~260(按 7 伤本位整体重排),幕间 ×2.2;玩家引擎期望(单回合输出):幕 1 末 ≈ 基线 ×2、幕 2 末 ×45、幕 3 末 ×812——Boss 战设计在 69 个回合内分胜负,超 12 回合即「磨」、低于 4 回合即「秒」,都算曲线失败。本节全部数值锚均为〔草案·首轮仿真回填后锁〕:推导基线=费当量互换试算(伤/甲/抽/能量四本位),锁值走质量轨校准机制;M0M2 期只作观测与报警,硬门仅质量 SoT 已授权的 L1 真玩门。
### 6.3 链倍率与组合爆炸护栏
链每环 +0.25 倍率;**周天**语义一句钉死:集齐五行全环时,对本次结算的总倍率一次性 ×2,单回合至多触发一次(非可叠乘的倍率轴);单回合链倍率硬上限 ×8。三值推导:+0.25/环 与 ×8 上限对齐幕 3 引擎期望 ×812 的链贡献上界(链满贡献 ≈×2 基础 ×周天 ×2 ×遗物卡面乘区),周天一次性 ×2 保证爆发是「回合高潮」而非可堆叠的通胀源——三值均〔草案·首轮仿真回填后锁〕。
无限连护栏**分层设防**,正文写明各层责任、不得读成「静态搜索全覆盖」:①**静态快筛层**——仿真器对卡池做深度 3 的组合遍历,标红「净能量增益 + 净抽卡增益」同时为正的闭环;此层只覆盖 ≤3 卡的短闭环,是快筛不是证明。命中即同池禁入或加疲劳规则(同名卡回合内第三次打出起费用 +1)。②**运行时兜底层**——回合动作数上限 200(正常局单回合动作 P99 < 40 5 倍裕度草案·仿真回填后锁),触发即**判本局 invalid计入回归失败**并记录构筑指纹,≥4 卡的长净正循环(品类史上真实存在)靠这层与指纹观测兜住,不指望静态层。③**分布反垄断层**——千局高分构筑的 P99/P50 8(与引擎期望上界同源草案·仿真回填后锁),超线说明某流派一枝独秀,削它而不是抬别人(抬会通胀)。资源图 SCC/不变量分析(把卡效果建为资源流图找任意长度净正环)列为 S12 仿真外壳的增强候选,不是 M0 承诺
### 6.4 平衡方法论(数值 CI)
仿真器复用 [复杂游戏北极星件](2026-07-06-复杂游戏北极星件-设计.md) §2.C A **纪律与范式**(纯逻辑内核/受控随机/跑真逻辑非重写),但批跑外壳是**新建**:仓内 `logic-smoke.mjs` mini-肥鹅专属的硬编码单跑冒烟(读终态标量非经济曲线,其自述明言数值平衡在快进仿真器另立」),可直接复用的只有范式与通用件(seeded-random 受控随机/readState 可观测契约/latch 终态判定),参数扫描+曲线聚合外壳=S12 增量回合制的顺风是真的——战斗解算是纯函数(状态+动作新状态),连受控时钟都不需要——但墙钟要按证据说话:上级档唯一实测锚是 mini-肥鹅经营单局 30ms( node 冷启动),其对复杂标的的外推原文是分钟级」;卡牌完整 run(三幕 × ~15 × 69 回合 × 序列敏感决策)比该单局重 12 个量级,故本档口径为**分钟级/外推待实测**。两个实测锚分别挂验收:**完整 run 单局墙钟=M1 出口验收**(S8 card driver 落地即测);**全矩阵总墙钟与 CI 分层=M2 出口验收**(S12 落地即测:2 职业 × 16 进阶层 × 3 × 1000 /= 96,000 ,叠加金标回归 20,000 ;CI 按分层跑——PR 触发小矩阵 smoke2 职业 × A0/A5/A15 × 1 × 200 ,nightly 跑全矩阵,墙钟/并发核数/超时与失败重跑规则按 M2 实测定案)。
三档策略 driver(贪心分/链优先/保血防御)。判据带(全部草案·首轮仿真回填后锁,锁值走质量轨校准机制;M0M2 期只作观测/报警,不作拦截门——硬门仅 L1 真玩门):A0 贪心档胜率 4560%、A5 2540%、A15 515%(推导:对标品类难度阶梯的通行体感区间,首版拍值待回填);单卡采用率(出现于胜局构筑的频率) 860%(推导:154 卡池下均匀采用期望约 2030%,带宽容纳定位差),<3% 判死卡回炉>70% 判必选削弱;遗物同带。金标构筑回归集 = 20 套手工编排的构筑脚本(每流派 23 套),任何数值改动后重跑,胜率漂移 >±8pp 报警(口径:每套 ≥1000 局或固定 seed 集,漂移**按套判**、不按 20 套均值判;推导:千局二项分布 σ≈1.6pp,±8pp≈5σ,误报率可忽略)——这就是数值改动的回归测试,进 CI。仿真曲线是「纪律玩家上界」,真人下沿风险按 NSTAR 已拍口径如实标注:内测真人数据(§5.3)是最终校准源,仿真不替代真人。
### 6.5 与质量 SoT 的对齐
照[游戏质量与爆火能力](../architecture/架构/生成引擎/游戏质量与爆火能力.md)消费、不改:L1 唯一拒发权(九门+首局门,driven 全量 AND);平衡门五裁定原样适用——静态自检永远 advisory、真玩动态门权威、失败反馈带实测值 vs 游戏内线 vs 验收外生线三个数。两处品类适配走既有机制出单:①富三门是 tier2 经营件的品类结构项,本款按 SoT「扩品类时由对应品类件重定义」出卡牌版品类结构项(建议:构筑联动门=卡/遗物/链三系统真联动、曲线门=Boss 回合数带、latch 双终态);②九门 H/G 的断言卡牌化(出牌→状态因果、链倍率递增断言)与 card-battle driver 是新验收面,随 M0 出验收门品类适配单。L2 侧:通用底座 12 条 + 卡牌品类扩展 ≥4 条(建议:构筑方向在前 3 层可感/删卡决策真实存在/敌意图驱动决策/结算演出成立),观测线 ≥70% 满分,rubric 定义权在 W-GENRE 品类件形状,本档只申报需求。
## 7 UI 工艺规格(第二招牌)
### 7.1 竖屏论证与布局
竖屏 390×844 定死:Balatro 手机版与月圆之夜证明竖屏单手是品类成立形态;feed 是竖屏容器,竖屏游戏免横屏承载的全部增项(那是割草/SpaceHuggers 线的事);单手拇指交互半径天然落在手牌区。布局三段:敌区 38%(13 敌 + 意图徽章 + Boss 相位条)、中段 14%(双方状态 + 链轨:五个属性槽的点亮轨道,当前倍率常驻)、手牌区 48%(扇形手牌 + 能量珠 + 抽/弃牌堆入口)。一屏五要素永远可见:能量、手牌费用、敌意图、双方 HP、链轨——超出的一律进二层。
### 7.2 手感规范(逐条可验收)
| 条目 | 规格 | 验收方式 |
|---|---|---|
| 触摸响应 | 按下 ≤80ms 卡牌浮起放大 1.55×,高亮合法目标 | CDP 时间戳断言 |
| 打出 | 上滑过屏高 62% 线即出;需目标卡拖至敌身,拖离取消区回手 | driver 轨迹用例 |
| 出牌解算 | 触发→battle-core 状态更新 ≤1 帧;演出与逻辑解耦(事件流回放) | 单测+探针 |
| 结算演出 | 基础值弹出→链环逐环点亮(音高递升)→总量爆字 48px 抖 120ms + 屏震 ≤4px/90ms + 命中停顿 5070ms;全长默认 ≤1.6s | 演出时长断言 |
| 演出加速 | 按住任意处 0.4× 时长;设置页可全局跳过 | 用例 |
| 误触防护 | 打出确认线以下松手一律回手;敌意图与卡详情为点按二层,不与拖拽冲突 | 触摸用例 |
| 帧率 | 全程 60fps,结算高峰不掉帧(粒子上限表驱动) | C_frame 门+性能采样 |
这张表就是 M4 的验收清单本体,每条落 play-spec 断言或专项探针,不接受「看起来流畅」。
### 7.3 信息密度分层
一层(常驻):§7.1 五要素。二层(点按):卡牌详情(关键词展开)、敌人详情(状态 tooltip+意图历史)、抽牌堆/弃牌堆浏览。三层(局外):图鉴、成就、进阶修正表。文案纪律:卡牌正文 ≤2 行、关键词悬浮解释,首次出现的关键词在教学局逐个引入——信息密度是竖屏卡牌的生死线,任何新系统入库都要过「一层不新增常驻元素」的审。
## 8 工程结构与引擎论证
### 8.1 引擎选型:Phaser(tier2 现行装载路)
三候选对比后取 Phaser:卡牌 UI 重(文本排版/tween 编排/遮罩滚动容器/九宫格面板),Phaser 的 Text/Container/Tween/Mask 体系现成,且 tier2 装载路已在仓——宿主页面预载引擎、构建时 external、游戏 bundle 不含引擎(`tier2/engine/build-phaser.mjs` 注释明示该边界),mini-fei-e 已验证 Phaser 多文件源工程过富门。LittleJS 弃:12 插件面向轻中档 60 秒品类,hud-ui 是轻 HUD 不是卡牌级 UI 体系,补齐等于自建 UI 框架。渲染器锁 canvas(禁 WebGL 特性依赖),与九门 CDP 像素取证兼容。
### 8.2 DOM 混合渲染:否决
沙箱事实:iframe srcdoc 自有 document,CSP 允许 inline style 与 data: 图(见[产物执行沙箱](../architecture/架构/产物执行沙箱.md)),DOM UI 在 H5 端技术可行。仍否决,两条硬理由:①九门真渲染/输入取证走 canvas CDP 探针,DOM UI 是取证盲区,等于自废 L1 证据链;②渠道单游固化端(微信/抖音小游戏)无 DOM、只有 canvas+adapter(`渠道发行.md:126` 的 canvas-input-audio-storage 四件 adapter;同档 `:140-146` 禁一切可执行/可解释字符串、禁远程下发 JS/WASM/HTML——「渠道里的游戏逻辑必须是数据」),DOM UI 意味着渠道版整层重写。纯 canvas 一次到位。
### 8.3 逻辑/渲染分离与工程骨架
铁律与 tier2 平台预建同构:battle-core(回合解算)、map-core(DAG 生成与推进)、economy-core(商店/删卡)、meta-core(进阶/解锁/图鉴)四个纯逻辑模块,零引擎 import、随机经受控源注入、状态经 readState 契约暴露;渲染层只订阅解算产出的事件流(结算演出=事件序列回放,这既是手感解耦也是仿真器免费拿到全部逻辑的原因)。数据表全外置(卡/遗物/敌/事件/曲线/进阶/文案),表 schema 带版本字段。存档两面:run 存档(卡组/遗物/地图位置/HP/种子/楼层)与全局进度(解锁/图鉴/进阶/成就),都带 schemaVersion——run 存档序列化后可能顶现行 KV 4KB 闸(现行 H5 存档面为四道闸:key 白名单/value ≤ 4KB/JSON 校验/命名空间隔离,`复杂游戏北极星件-设计.md:144` 已坐实,地图 DAG+卡组 30+ 条目照直序列化即触顶),定容依赖见 §12④。
## 9 美术方向与资产/包体
### 9.1 风格候选(随概念交拍)
甲案配**水墨矿彩**(青绿山水底、异兽矿物色、金线描符箓——国风高级感,插画位大,包体压力最高);乙案配**暗色复古马戏海报**(版画质感+霓虹点缀);通用备选**高精像素**(Balatro 证明像素+滤镜可成顶级质感,包体最省,风险是「精美画风」的第一眼冲击弱)。风格拍板后先产 12 张风格版(卡面 3 稀有度 × 2 职业 + 敌兽 2 + 场景 2 + 结算图 2)过创始人眼验,再开批产。
### 9.2 卡面工艺(资产大头的工程解法)
卡面 = 程序化框层 + 插画位分层:稀有度框 3 张九宫格 + 属性底纹 5 张 + 每卡主体插画一张(224256px webp,均 ~17KB)+ 文字程序排版(不烙进图)。154 卡插画 ≈2.6MB,比整卡出图省 60% 以上,且改文案/调数值零美术成本——这是「第 N 千次改动」在美术面的落点。敌兽 39 只 = 立绘 + 程序动画(呼吸缩放/受击位移/攻击前倾)+ 受击 2 帧,不上骨骼动画(包体与工时都不成立)。
### 9.3 包体两本账与分包(顶格设计,M0 实测、M5 精算)
包体从此记**两本账**,双评审坐实原单表把「契约包体」与「用户首屏加载」混成了一个口径(引擎 external 却计入包内合计、首战可玩资产又不在首屏账内)。
**账 A · 契约包体门口径**(GamePackage 包内字节;门=总 ≤10MB、首屏 assets ≤2MB,`contracts/game-package.schema.json`)。Phaser 走 tier2 现行 external 装载路(宿主预载引擎、游戏 bundle 不含引擎,`tier2/engine/build-phaser.mjs`),**不计入包内**——契约 `engineBundle` 字段的现行语义是「引擎+包装+游戏代码 iife 内嵌」的 LittleJS 线形态,Phaser external 形态下该字段与 `bundleSize` 的计法是口径缺口,M0 向契约侧确认〔来源缺口〕:
| 件 | 预算 | 注 |
|---|---|---|
| 游戏代码+数据表 | 0.35MB | — |
| 中文字体子集 | 0.90MB | 构建期静态子集 woff2(全部文案构建期扫描出用字集,目标 ≤1800 字);两段:首屏最小集(≈600 字)+全集懒加载 |
| UI 图集(框/图标/面板) | 0.80MB | — |
| 卡面插画 154 张 | 2.60MB | 按职业×幕分包懒加载 |
| 敌兽立绘 39 只 | 1.40MB | 按幕分包 |
| 遗物/消耗图标 96 个 | 0.40MB | — |
| 场景背景 6 张 | 0.50MB | — |
| SFX ≈42 条 | 0.70MB | — |
| BGM 2 条(菜单+战斗,45s loop) | 1.00MB | 幕 BGM 3 条走后续版本资产位 |
| **包内合计** | **8.65MB** | 门 10MB,**余量 1.35MB(13.5%)** |
| 首屏 assets(eager 集) | **1.11MB** | UI 核心图集 0.35 + 首屏字体最小集 0.35 + 首战资产 eager 半 0.36 + meta.cover 0.05;门 2MB,余量 ≈45% |
账 A 的门现状按仓内事实如实记:**契约已定义、后端实现待接**——编译服务是 TODO 骨架(`RuntimeBuildServiceImpl.java:51-56`)、包体入库现接受调用方自报 `bundleSize`(`RuntimePackageServiceImpl.java:117-132`),所谓「编译期校验」目前不是已生效护栏;M5 前先由本款构建脚本自产 `totalBytes/firstScreenBytes` 证据顶住,后端门落地后切换。gzip 与字节口径同上述缺口一并 M0 确认〔来源缺口〕。
**账 B · 首屏传输口径**(冷启动到**首战可交互**的网络字节;无契约门,受首局门「可玩 ≤2s」约束,质量 SoT §L1):
| 件 | 冷载 | 注 |
|---|---|---|
| Phaser(宿主预载) | 0.95MB | feed 连玩有跨局缓存红利:第二局起 ≈0(暖载) |
| manifest + meta.cover | 0.05MB | — |
| 游戏代码+数据表 | 0.35MB | — |
| UI 核心图集 | 0.35MB | — |
| 首屏字体最小集(≈600 字) | 0.35MB | — |
| 首战最小资产包 eager 半 | 0.36MB | 教学局固定首战:卡面 10 张 0.17 + 敌 1 只 0.04 + 场景 1 张 0.08 + 核心 SFX 4 条 0.07 |
| **冷载必载合计** | **2.41MB** | **暖载(引擎已缓存)= 1.46MB** |
首战资产包全量 ≈0.56MB(20 卡面/1 敌/1 景/6 SFX),eager 半 0.36 之外的 0.20MB 在教学局开场演出(≥3s 名牌+入场动画)遮罩内预取——预取目标从此指向账内真实条目,不再是指向不存在账目的空预案。≤2s 兑现路径:按 4G 均值 ≈1.25MB/s 传输锚〔外推,M0 真机实测定案〕,冷载 ≈1.9s 传输 + 0.20.3s 解析初始化=贴线,暖载(feed 主流场景)≈1.2+0.3s 达标;顶不住按序启动进一步挤出:引擎深裁(0.95→约 0.70,剔未用子系统)、教学局首战底改程序绘制(卡面图延至演出后)、首屏字体最小集再压(600→400 字)。**M0 首件事 = 两本账逐件实测 + 真机冷/暖启「到首战可交互」计时断言;贴线值不作收口数字,收口以实测且余量 ≥10% 为准。**
## 10 音频方向
清单:BGM 5 条(菜单/战斗通用/三幕各一,首发进包 2 条、余分包)、SFX ≈42 条——出牌 5 属性变体、命中 3 强度、**链环点亮 8 级音高递升**(结算爽感的一半在这串音阶上,对齐演出逐环节拍)、周天爆发、翻牌/购买/删卡/升级/UI 点按、胜负 stinger。风格随概念(甲=民乐器采样+电子底,乙=马戏手风琴+爵士鼓刷)。生成通道三候选出材料随共享管线选型单(§12):仓内 mmx-cli(MiniMax 音乐/语音,接入成本最低)、外采生成服务(授权口径须法务过)、CC0 库+改编兜底;音效手感类(点亮音阶)优先程序合成(WebAudio 无采样合成,零包体、参数化调音)。
## 11 里程碑与会话切单
```mermaid
flowchart LR
M0["M0 战斗核心可玩<br/>20卡·1敌·出牌结算"] --> M1["M1 单局闭环<br/>链轴·地图·首局门"]
M1 --> M2["M2 构筑与仿真<br/>职业甲全量·数值CI首跑"]
M2 --> M3["M3 内容完备<br/>职业乙·进阶·图鉴"]
M3 --> M4["M4 工艺打磨<br/>演出v2·音频·手感表全绿"]
M4 --> M5["M5 发布准入<br/>包体精算·10h核数·验玩"]
```
| 里程碑 | 可玩交付 | 验收门 | fable5 会话切单(判断与创作位) |
|---|---|---|---|
| M0 | 一场完整战斗:出牌/能量/敌意图/胜负 | battle-core 单测全绿;boot/frame/input 三门;包体两本账逐件实测+真机冷/暖启「到首战可交互」计时断言(§9.3) | S1 battle-core+表 schema;S2 首批 20 卡+1 敌;S3 手牌交互;S4 结算演出 v0+门接入 |
| M1 | 一局通关:三幕地图/链轴/30 卡/8 敌/3 遗物 | 首局门(60s 首战闭环);card driver v1;九门 driven 全绿;完整 run 单局 headless 墙钟锚点实测(S8 落地即测,§6.4) | S5 链轴+链轨 UI;S6 map-core+节点流;S7 敌 AI 意图组;S8 driver+play-spec |
| M2 | 职业甲全内容+商店删卡+存档续玩 | 最小池仿真环先行(S8b);全矩阵+金标回归总墙钟实测、CI 分层定案(PR smoke/nightly 全矩阵,§6.4);首轮扫描回填判据带草案值;存档断言(正式定容未落则按 §12④ shadow 口径,不宣称正式存档验收) | S8b 仿真外壳 v0+20 卡最小池接环(前移);S9 卡池批产(66 卡三批,每批入表即跑 smoke 矩阵);S10 遗物 40(同);S11 economy+存档;S12 仿真外壳 v1(全矩阵扫描+曲线聚合)+调参轮 |
| M3 | 双职业+进阶 A0A15+图鉴成就+每日 | 内容量表全量;构筑指纹去重 >85%〔草案·仿真回填后锁〕;A 带胜率达标 | S13 职业乙卡池;S14 进阶表+平衡轮;S15 meta 系统;S16 事件 45 |
| M4 | 全工艺态 | §7.2 手感表逐条断言绿;L2 rubric ≥70%;音频全量 | S17 演出 v2;S18 音频接入;S19 juice 全量;S20 教学局 |
| M5 | 发布态 | 包体两本账达 §9.3 精算值(账A 余量 ≥10% + 账B 2s 门);存档切正式通道+迁移/兼容断言(§12④);门 n=5 复跑全绿;内容耗尽度 10h 核数(§5.3);创始人验玩 | S21 分包与性能;S22 内测批+回归;S23 收口蒸馏 |
会话纪律:每单一个 fable5 会话领走、交付带真跑证据(测试输出/门结果/录屏帧),机械批产面(资产批量出图、表格式转换)可降档执行但验收仍在 fable5 位;概念拍板(§4)最迟 M1 末,风格版眼验最迟 M2 初。
## 12 风险与共享前置
风险按伤害排序:①**美术管线未建**(生图服务选型/风格一致性/批产返工率)——三款共享的最大排期风险,M0 前置出选型材料;②**首屏与包体贴线**——已拆两本账重排(§9.3:账A 契约门余量 13.5%/45%,账B 冷载 2.41MB 贴 ≤2s 线),M0 首件逐件实测+真机计时断言,顶不住按 §9.3 既定顺序启动进一步挤出;③**卡牌品类验收面新建**(card driver/九门断言卡牌化/品类富门重定义)——是投资不是税,反哺生成线扩品类,但 M0M1 要吃掉它的首建成本;④**run 存档顶 4KB KV 闸**——存档面定容(value 上限/结构化 + schemaVersion)是三款共享基建单,本款是最早需求方(M2 前;排期交创始人拍,§14⑤),《夜市一条街》与割草款后续消费同一件;**M2 入口门=正式 SDK Storage 定容+schemaVersion 落地**,届时未落则 M2 存档验收按 shadow storage(压缩+精简序列化顶住)降级口径明示、不得宣称正式存档验收通过,M5 发布前必须切正式通道并跑迁移/兼容测试;⑤**平衡 Goodhart**——仿真 driver 是纪律玩家上界,判据带全达标仍可能真人不爽,内测真人数据为最终裁判(§5.3),且「好玩」终审归人;⑥题材撞车——候选甲与《夜市一条街》同属国风,若创始人在意分散度可取乙/丙;⑦中文字体子集流程是新建 build 步骤,漏字兜底(缺字回退系统字+日志上报)必须 M0 就有;⑧**断言后置分层**——M0 能前置证伪的只有包体两本账与冷启计时,数值 CI 的墙钟断言(单局/全矩阵)到 M1/M2 才可证伪,已分别挂 M1/M2 出口验收(§6.4),不得混称「M0 全部实测」。
共享前置(与另两款对齐,不重复建):美术/音频生成管线选型单;快进仿真器批跑外壳(本款回合制最简,自然成为首个落地方——落成后反供夜市);存档定容;card driver 与品类件(本款自有,但形状照 W-GENRE)。
## 13 成本画像(如实列,预算不设限)
fable5 会话 ≈3045 个(上表 23 单+调参与返工余量);美术生图 ≈250 张成图(含淘汰率 ×4 ≈ 千次生成调用);音频 47 条;token 成本量级数千元人民币级,生图/音频服务费另计〔推断,按当前 fable 单会话成本外推;首个里程碑后用实测回填〕。墙钟 47 周:瓶颈不在生成而在人在环节拍(概念/风格/里程碑验玩各一次创始人窗口)与美术管线共享排队。运行时零新增成本(纯前端产物,走既有 feed 分发)。
## 14 待创始人拍项汇总
①概念三选一(甲《山海巡异录》推荐/乙《喝彩!怪奇马戏团》/丙《残卷炼金堂》),最迟 M1 末;②美术风格(随概念,12 张风格版眼验制);③首发定容确认(2 职业 154 卡 72 遗物,§5.2 表)或改「1 职业+更深进阶」省 M3 半程;④音频通道(mmx-cli 优先/外采/CC0 兜底,随共享管线选型单);⑤存档定容排期(本款 M2 前 vs 随夜市 L2,推荐前者)。
## 附 图与评审状态
Mermaid 三张为事实源;SVG 门面图(一图看懂/数值闭环)随定稿由图代理按 architecture-diagram-atlas house style 补,文字为准。双评审已回并修入(2026-07-06:Codex REVISE 10 条 + Opus ACCEPT-WITH-FIXES 11 条,合并 10 项裁定全落——首屏两本账重做/数值 CI 墙钟挂 M1/M2 实测/链护栏分层设防/10h 核数表化/存档 M2 入口门/阈值全量降草案/基线数值重推+结构常数例外清单/外部事实核正/自评改口/S8b 仿真前移)。下一步:创始人拍概念与定容 → M0 开工。