创始人 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 断点清晰)。
292 lines
38 KiB
Markdown
292 lines
38 KiB
Markdown
---
|
||
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["局外:进阶 A0–A15 · 图鉴<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 意图与目标
|
||
|
||
卡牌构筑肉鸽是 2024–2026 被反复验证的顶级品类: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 职业首发、进阶 A0–A15、每日一局(固定种子+本地最佳,榜单走平台既有能力不新建后端)、激励视频变现位结构预留(复活 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 工艺要点(乘法爽感)**。分数=筹码×倍率的双轴结构逼玩家搭乘法引擎,配「逐段结算演出」(逐牌弹分、倍率逐环点亮、音高递升、总分爆字)把数学做成爽感;单局 20–30 分钟、一屏信息全可见、盲注线指数增长给出清晰的强度标尺。这套「简单规则×组合爆炸×结算演出」是本款结算系统的模板级参照——机制骨同构,载体换成我们的序列链(§5.1)。
|
||
|
||
### 3.3 2025–2026 谱系动向(设计消费点)
|
||
|
||
尖塔 2 EA 首发即 5 职业/575+卡/278 遗物——头部标杆的内容量在膨胀,我们首发不追这个量级,靠序列链原创轴与竖屏工艺差异化(诚实定容见 §5.2);其近 30 天好评率回落到 59%〔外部核实 2026-07-06:Steam 商店页〕,社区分歧集中在内容节奏——印证「首发深度 < 长线更新节奏」,我们把 M6 内容波(第三职业/赛季)预先排进路线而非承诺首发。Balatro 手机版证明竖屏单手是品类成立形态;Monster Train 2 证明「双轴组合(氏族×副氏族)」是拉构筑组合数的省内容手法,本款以「职业×遗物流派」承接同一结构。
|
||
|
||
### 3.4 机制→验收用例(抽样,全量随 M0–M3 落 play-spec)
|
||
|
||
| 机制 | 可验收断言 |
|
||
|---|---|
|
||
| 能量经济 | 回合开始能量=上限;打出费用>余量的卡被拒且状态无副作用 |
|
||
| 敌意图诚实 | 意图展示的动作类型与数值 = 下回合实际结算(千局仿真零偏差) |
|
||
| 序列链 | 按相生序打出 N 张,结算倍率=表定曲线;破序即断链归基 |
|
||
| 删卡经济 | 删卡后卡组数-1、该卡不再出现在本局抽牌;价格按表递增 |
|
||
| 洗牌守恒 | 抽牌堆耗尽触发洗牌,弃牌堆整体转入,总卡数守恒 |
|
||
| 进阶修正 | AN 层激活的修正条目与修正表逐条一致(仿真断言) |
|
||
| 存档续玩 | 战斗外任意节点杀进程重进,地图/卡组/遗物/HP/种子逐字段一致 |
|
||
|
||
## 4 原创概念候选(交创始人拍)
|
||
|
||
机制骨(§5)三案共用,概念决定「第二轴」与全部表达层;M0–M1 与概念无关,拍板最迟在 M1 末。
|
||
|
||
**候选甲《山海巡异录》(推荐)**。你是持符行走山海图的巡异使,收服作乱的异兽。卡=符箓与咒诀,按五行(金木水火土)定属性——序列链在此实例化为「五行相生链」:木生火、火生土,顺生则倍率递增,五行全环触发「周天」爆发。第二轴=**收服**:战胜精英异兽可炼为「兽牌」入本局卡池,图鉴即卡池扩张的进度面。视觉意象:青绿山水底 × 矿物彩异兽 × 金线符箓,结算炫耀图=异兽收服卷轴。推荐理由:五行给协同标签一个玩家零学习成本的心智模型;山海经是公有领域题材、美术富矿;图鉴收集轴直接兑现 L2 rubric 的情感锚与炫耀时刻。
|
||
|
||
**候选乙《喝彩!怪奇马戏团》**。深夜马戏团班主,每场演出在限定手数内把喝彩值堆过场次线(分数阶梯结构,战斗目标从「杀敌」换成「达标」,最贴 Balatro 的数字爽感)。卡=节目/演员/道具,第二轴=**常驻演员位**(遗物与卡池的中间态)。视觉意象:暗色复古马戏海报 × 霓虹点缀,炫耀图=当夜演出海报。差异点:无敌人对抗、纯分数攀登,数值曲线最陡最爽,但品类识别度偏 Balatro-like,原创感弱一档。
|
||
|
||
**候选丙《残卷炼金堂》**。末法之世的炼金学徒以药石入牌驱疫。第二轴=**熔铸**:删卡经济改造为「两张熔一张更强」,浓缩与升质同步,构筑曲线更平滑。视觉意象:中世纪手稿羊皮纸 × 鎏金图释。差异点:熔铸是三案里机制最原创的删卡变体,但题材社交话题性弱于甲。
|
||
|
||
## 5 玩法系统清单与 10 小时内容量
|
||
|
||
### 5.1 系统清单
|
||
|
||
局内十系统:①回合战斗(能量 3 起、抽 5、手上限 10、回合末弃手、可保留词缀);②出牌序列链(原创轴:打出顺序按属性相生成链,每环倍率+0.25、基 1.0,断链归基,集齐五行触发周天爆发——语义与护栏见 §6.3;链轨常驻可视化);③结算演出(逐段计分:基础值→链环逐个点亮×音高递升→总量爆字,全程事件流回放、可加速可跳过);④卡池与稀有度(普通/罕见/稀有三档+职业分池);⑤遗物;⑥状态词缀(10 个正交:力/韧/灼/蚀/易伤/虚弱/护/引/滞/隐,具体命名随概念);⑦地图 DAG(三幕×6 类节点);⑧事件;⑨商店与删卡经济;⑩消耗符(单次道具,战斗资源决策的第三轴)。
|
||
|
||
局外五系统:⑪进阶 A0–A15;⑫图鉴(卡/遗物/敌兽,收集进度可视);⑬成就(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 分钟(竖屏手机,设计带 22–36)。核数表(每格=设计通关率→期望局数→累计时长,通关率均为首版设计值〔草案·首轮仿真回填后锁〕):
|
||
|
||
| 阶段 | 解锁内容 | 设计通关率 | 期望局数 | P50 局长 | 边际时长 | 累计 |
|
||
|---|---|---|---|---|---|---|
|
||
| 教学局 | 固定脚本首战+基础 20 卡 | 100% | 1(短局) | 18min | 0.3h | 0.3h |
|
||
| 职业甲首胜 | 甲池 66 卡渐进入池 | 单局 ≈15% 渐升 | 6–8 | 28min | ≈3.3h | 3.6h |
|
||
| 职业乙首胜 | 乙池 66 卡(经验迁移) | 单局 ≈22% | 4–5 | 28min | ≈2.2h | 5.8h |
|
||
| 进阶 A1–A5(任一职业) | 修正表逐级 | 逐级 45%→25% | 6–7 | 28min | ≈3.0h | 8.8h |
|
||
| 图鉴/每日/成就尾部 | 265 词条+每日种子 | — | 2–3 | 24min | ≈1.2h | **10.0h** |
|
||
|
||
上表是设计期人工推演;它的机器化形态=快进仿真器输出每档 `clearRate × runLength` 分布,程序生成「期望累计时长曲线」进验收链(M2 起每轮扫描附带产出),人工表退居初版锚。A6–A15 与图鉴尾部在 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.75–0.9——估值进静态自检,越界即黄牌提示(advisory,不拦,按质量 SoT 平衡门裁定二)。玩家侧:职业甲 HP 72(攻优)、职业乙 HP 66(链优);敌方:幕 1 普通 HP 18–52、精英 ~100、Boss ~260(按 7 伤本位整体重排),幕间 ×2.2;玩家引擎期望(单回合输出):幕 1 末 ≈ 基线 ×2、幕 2 末 ×4–5、幕 3 末 ×8–12——Boss 战设计在 6–9 个回合内分胜负,超 12 回合即「磨」、低于 4 回合即「秒」,都算曲线失败。本节全部数值锚均为〔草案·首轮仿真回填后锁〕:推导基线=费当量互换试算(伤/甲/抽/能量四本位),锁值走质量轨校准机制;M0–M2 期只作观测与报警,硬门仅质量 SoT 已授权的 L1 真玩门。
|
||
|
||
### 6.3 链倍率与组合爆炸护栏
|
||
|
||
链每环 +0.25 倍率;**周天**语义一句钉死:集齐五行全环时,对本次结算的总倍率一次性 ×2,单回合至多触发一次(非可叠乘的倍率轴);单回合链倍率硬上限 ×8。三值推导:+0.25/环 与 ×8 上限对齐幕 3 引擎期望 ×8–12 的链贡献上界(链满贡献 ≈×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 战 × 6–9 回合 × 序列敏感决策)比该单局重 1–2 个量级,故本档口径为**秒–分钟级/格〔外推待实测〕**。两个实测锚分别挂验收:**完整 run 单局墙钟=M1 出口验收**(S8 card driver 落地即测);**全矩阵总墙钟与 CI 分层=M2 出口验收**(S12 落地即测:2 职业 × 16 进阶层 × 3 档 × ≥1000 局/格 = 96,000 局,叠加金标回归 ≥20,000 局;CI 按分层跑——PR 触发小矩阵 smoke〔2 职业 × A0/A5/A15 × 1 档 × 200 局〕,nightly 跑全矩阵,墙钟/并发核数/超时与失败重跑规则按 M2 实测定案)。
|
||
|
||
三档策略 driver(贪心分/链优先/保血防御)。判据带(全部〔草案·首轮仿真回填后锁〕,锁值走质量轨校准机制;M0–M2 期只作观测/报警,不作拦截门——硬门仅 L1 真玩门):A0 贪心档胜率 45–60%、A5 25–40%、A15 5–15%(推导:对标品类难度阶梯的通行体感区间,首版拍值待回填);单卡采用率(出现于胜局构筑的频率)带 8–60%(推导:154 卡池下均匀采用期望约 20–30%,带宽容纳定位差),<3% 判死卡回炉、>70% 判必选削弱;遗物同带。金标构筑回归集 = 20 套手工编排的构筑脚本(每流派 2–3 套),任何数值改动后重跑,胜率漂移 >±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%(1–3 敌 + 意图徽章 + Boss 相位条)、中段 14%(双方状态 + 链轨:五个属性槽的点亮轨道,当前倍率常驻)、手牌区 48%(扇形手牌 + 能量珠 + 抽/弃牌堆入口)。一屏五要素永远可见:能量、手牌费用、敌意图、双方 HP、链轨——超出的一律进二层。
|
||
|
||
### 7.2 手感规范(逐条可验收)
|
||
|
||
| 条目 | 规格 | 验收方式 |
|
||
|---|---|---|
|
||
| 触摸响应 | 按下 ≤80ms 卡牌浮起放大 1.55×,高亮合法目标 | CDP 时间戳断言 |
|
||
| 打出 | 上滑过屏高 62% 线即出;需目标卡拖至敌身,拖离取消区回手 | driver 轨迹用例 |
|
||
| 出牌解算 | 触发→battle-core 状态更新 ≤1 帧;演出与逻辑解耦(事件流回放) | 单测+探针 |
|
||
| 结算演出 | 基础值弹出→链环逐环点亮(音高递升)→总量爆字 48px 抖 120ms + 屏震 ≤4px/90ms + 命中停顿 50–70ms;全长默认 ≤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 张 + 每卡主体插画一张(224–256px 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.2–0.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 | 双职业+进阶 A0–A15+图鉴成就+每日 | 内容量表全量;构筑指纹去重 >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/九门断言卡牌化/品类富门重定义)——是投资不是税,反哺生成线扩品类,但 M0–M1 要吃掉它的首建成本;④**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 会话 ≈30–45 个(上表 23 单+调参与返工余量);美术生图 ≈250 张成图(含淘汰率 ×4 ≈ 千次生成调用);音频 47 条;token 成本量级数千元人民币级,生图/音频服务费另计〔推断,按当前 fable 单会话成本外推;首个里程碑后用实测回填〕。墙钟 4–7 周:瓶颈不在生成而在人在环节拍(概念/风格/里程碑验玩各一次创始人窗口)与美术管线共享排队。运行时零新增成本(纯前端产物,走既有 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 开工。
|