opus 执行位交付、主会话四步验收过(三套测试亲跑/红线 diff 亲读/冒烟截图亲眼): - 验收消费:check 新增源码级插件调用存在断言(_pluginCallPresenceErrors 词法层, 接替 F_wiring 真接线护栏);_forensicsView「必须实现」拦截摘除,降级为可选调试 接口(handleTap 输入契约与 ctx.log 日志纪律保留);gate_judge 放行措辞对齐四门 - play-spec/驱动器退役(逐件裁定 10 件):gen.mjs done 门自动产 play-spec 摘除、 cheap_gates/cheap_studio/cheap_modify/service_driver 调用摘除、_read_driver_type 改读 evidence/playtest/playtest.json;golden-spec 三工具(auto_vs_golden/bake_off/ compare_node)显式封存;ensure_play_spec 两实现保留一个版本窗口(只摘调用不删码) - prompt 全加载链清洗:cheap-system.md v1.6.3→1.7.0(删 _forensicsView 自动验收 契约红线与全部 targets/occupied 语义,五法句/品类指路同步),cheap_roles 内置 回退逐字节同步(test_roles 12/12 证 parity),modify 切片经运行时切块自动同步; 5 品类 skills+littlejs 手册+recipes×2+模板 8 件+README 6 件教学清洗,真设计 价值(单击 casual/可解性质/双层反馈/latch)保留 - 批账:hard_genre_batch/xtheme 行加 playtest 段,_row_total_cost 修 shadow 下 测试员成本漏算(v2 取 max 防双计) 验收(主会话亲验):pytest cheap-worker 512 绿 + tier2 141 绿 + node 49/49; 25 局基线新旧口径重放对照——真坏 5 局全拦(floor 拦 2/测试员拦 3)、无一例旧拦 新放,翻案 2 局均为破案坐实的仪器误杀;n=3 冒烟(mode=v2)全链绿:w2v2-sim harness verdict.pass=True 而测试员 reject(机械放行测试员逮住,盘上双证)、 w2v2-sim-fix 现象反馈两轮回喂→fix2 收敛(配方显示修成,局内截图亲眼); rg 零残留(模板残留均为「验收不读它」的降级调试接口合规形态);真跑 ¥8.4。 已知余项:repairFeedback 有产地、Service 续修环消费者未接(测试员 reject 不入 RepairMiddleware,续修判据仍四门)——是否接入随波3 校准数据一并裁;v1 配置级 回退窗口关闭为创始人知悉项,genconfig 默认 mode 仍 shadow、切 v2 归创始人。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
17 KiB
name, description
| name | description |
|---|---|
| trpg-game-design | 当为掷骰冒险(TRPG)类 brief 产设计阶段玩法方案或评审时使用:掷骰悬念等 6 引擎、爬塔/事件链可达范式、成功率与升级数值锚、单击即结算红线、通用 12 条+品类 5 条自检、金标锚点与底线四件映射。 |
skill: trpg-game-design —— TRPG(掷骰冒险)小游戏「玩法设计」作业手册(给生成 agent 的设计阶段)
定位:这是 生成 agent 设计阶段造"好玩的掷骰冒险玩法设计"的唯一作业手册。它回答 "设计什么才好玩"(掷骰判定/冒险结构/成长/数值/美术/音/UI 范式),与
littlejs-game-dev.md(回答"代码怎么写")配对:设计阶段产玩法概念 → 代码生成阶段照 littlejs-game-dev 产代码。体例照sim-business-game-design.md(经营品类范例)。铁律(创始人 2026-06-21):"好玩 = 上游设计层职责",不在 runtime/插件。插件只让设计能被 juice 出手感;这份 skill 负责让设计本身好玩。
便宜档定位(钉死):TRPG 品类在便宜档取单局可完的轻量形态——数值冒险 / 掷骰抉择 / 队伍成长,一局 45–90 秒出战报;不做长流程重游戏(跨局剧情存档 / 大地图探索 / 回合制菜单战斗都出界,见 §9 红线)。轻量 ≠ 简单:掷骰悬念 + 风险抉择 + 成长兑现叠起来,深度不输长流程。
可达性边界:产出必须落得到 A-model 轻量运行时——LittleJS 2D 手机竖屏(390×844)、单/少场景、便宜模型可生成的多文件代码、11 注入插件能力域。设计再好,落不到这个运行时就是空想——见 §9 红线。
上位标准:丰富分层/档位观测线对齐
docs/architecture/架构/生成引擎/游戏质量与爆火能力.md(质量模型 SoT);校验侧品类 rubric(喂 LLM 验证 agent、非阻塞)=cheap-worker/fixtures/genre-rubrics/trpg.json(经 cheap_verify.load_genre_checklist 加载;2026-07-02 rubric 挂点归一后 fixture 为唯一数据源),与本 skill §10 品类自检同源对齐。
0. 为什么这一品类爆(底层动机 —— 设计要击中这些)
掷骰冒险小游戏的"爽"来自 6 个心理引擎,好玩 = 同时点燃尽量多个;无趣 = 一个都没点燃:
- 掷骰悬念(心跳时刻):骰子转出来前的 0.5 秒是全品类最强的多巴胺点——随机必须可见(骰值、判定式、大成功闪光),黑箱出结果 = 悬念归零。
- 抉择的掌控感:随机之上必须有"我挑的"——同屏亮牌给玩家挑(高险高赏 vs 稳收薄利),输了怪骰子、赢了夸自己,这是 TRPG 与纯抽卡的分界。
- 成长兑现:等级/属性真实进判定公式(升级 → 掷骰 +1,面板写明),"我变强了"能在下一次掷骰里立刻验证。
- 险中求胜的叙事感:HP 压力 + 难度爬坡让每局自然长出故事("最后 2 血大成功翻盘登顶"),战报把故事讲出来。
- 连胜滚雪球:连续成功追加奖励,会挑卡的人滚雪球——技巧分,盲点的人吃不到。
- 收集与纪录:大成功次数/击败数/最高纪录/结局徽章,"再来一局刷新纪录"的回归钩子。
反"无趣"总纲:无趣几乎总是因为——掷骰黑箱 / 没有取舍(点哪张都一样)/ 成长是摆设数字 / 难度平坦无终点 / 结算只有一个分数。§10 是落地清单。
1. 核心玩法范式(可达子集 —— design 优先从这里选)
| 范式 | 一句话 | 我们运行时怎么落(插件) |
|---|---|---|
| 掷骰爬塔(骨架默认) | 每层翻遭遇卡(怪/宝箱/奇遇亮难度奖励)→ 点卡掷 d20 三档结算 → 清层登塔难度渐升 → 登顶/倒下/到点 | scene-fsm 三幕 + session-score 金币 + timer-scheduler 限时 + juice/audio 掷骰爽感 |
| 掷骰事件链 | 每步一个事件、2–3 个选项各标难度与代价,掷骰定走向,走到结局 | 同上;事件表 = core 数据 |
| queue 试炼 | 一列试炼(力量/敏捷/智慧)排队来,选属性应对掷骰,过关累计荣誉 | session-score + hud-ui 属性面板 |
| 轻队伍成长 | 掷骰赢来的金币招募/升级伙伴(每伙伴给固定骰加成),伙伴栏可见 | core 数据 + hud-ui 伙伴栏;招募=单击 |
| boss 终局 | 爬坡后终层 boss 高难对抗,大成功双倍演出 | juice.flash/burst + audio 'win' |
组合配方(经验):一款轻量 TRPG = 1 个主循环(点卡掷骰)+ 1 个成长轴(等级/伙伴)+ 难度爬坡到终点 + 连胜/收集点缀。别堆超过 2 个主机制(便宜模型 + 单屏扛不住,也稀释爽点)。
掷骰判定的标准形:d20 + 加成 vs 难度 三档——roll=20 大成功(奖励双倍)/ 总值≥难度 成功 / 否则失败(失败也给安慰 1 金,进展不断流;roll=1 恒失败保住"骰子的脾气")。这一形状骨架已实现,换皮别破坏。
2. 冒险 / 进度 / 留存设计
- 首 3 分钟(决定生死):① 0–10 秒:零阅读上手(菜单三行图例:⚔ 高赏失败扣血 / ◆ 稳收 / ✦ 险中带甜,点卡就掷)。② 10–60 秒:第一次升级(XP 曲线保首局 2–3 次结算内升 Lv.2,骰+1 立刻可感)。③ 1–3 分钟:第二局——"差一层就登顶"的再来欲 + 纪录可破。
- 局内进度阶梯:层数就是解锁阶梯——"第 N/M 层"常驻 HUD,任意时刻可见下一层;难度随层 +1,登顶 = 明确终点。≥3 层起步(骨架 6 层)。
- 留存钩子:最高纪录(session-score best 跨局)· 战报统计可刷新(击败/开箱/大成功)· 可扩结局徽章/遭遇图鉴(save-progress 存)。
- 节奏:掷骰(心跳)→ 结算(爽)→ 挑下一张(思考)的三拍循环,层间横幅是喘息;60 秒限时给全局张力。
3. 数值与掷骰概率(交 core.js 常量 —— design 必给具体锚)
- 成功率曲线:首层基准难度 7(d20 裸掷 ≈70% 成功)——开局要爽;每层 +1 难度、每级 +1 加成,玩家不升级则末层 ≈45–50%、升 2 级则 ≈60%:成长兑现写在概率里。别开局就 50% 以下(挫败劝退)。
- 风险-回报差异化(取舍之根):同层遭遇 diffMod 拉开 ≥3 点(如宝箱 -3 稳收 3 金 vs 祭坛 +2 险赏 8 金),期望收益险者略高——会算的人吃到技巧分。
- HP 压力:血量 ≈ 可承受 8–10 次失败(20 血/失败 -2),失败是代价不是墙;只有怪物卡打脸,宝箱/奇遇失败只是拿得少。
- 升级曲线:XP 指数(×1.6/级)造"差一点升级"卡点;升级奖励 = 骰加成 +1(真进公式)+ 全屏庆祝。
- 连胜:每连胜 +streak 金、cap 5(防滚过头);失败清零(心跳更疼)。
- 一局时长:45–90 秒(骨架 60s);限时到点 = 结算而非惩罚。
4. 美术风格范式(可达 + mmx 可产 + 程序化兜底)
| 风格 | 调性 | 配色 | 适合 |
|---|---|---|---|
| 暗地城+火把光(骨架默认) | 神秘冒险 | 深紫蓝底 + 暖橙火光 + 金币金 | 魔塔/地牢 |
| 国风志怪 | 雅致奇幻 | 黛青 + 朱砂点缀 | 西游/山海经/武侠 |
| 星际废墟 | 冷冽科幻 | 深空黑 + 荧青 | 机甲/太空 |
| 羊皮纸桌游 | 复古桌面 | 米黄 + 棕红 | 骰子桌游感 |
- 卡面即信息:遭遇卡 = 图腾色块 + 名字 + 类型标 + 难度(≥N)+ 奖励(+N金)一屏亮全——取舍信息就是美术布局。
- 美术一致性之根:全套素材共用一组风格词(mmx 生成时);程序化兜底(几何图腾 + 统一调色)完全成立,别因美术阻塞可玩性。
5. UI 范式(hud-ui 全可达)
- 顶部 HUD:金币(=score)/ 层数进度(第 N/M 层)/ 倒计时;
- 遭遇卡列:纵排大卡(手指友好 ≥14% 屏高),每张亮名字/类型/难度/奖励;
- 勇者面板:HP 条 + Lv + 骰加成(+N 写脸上) + 经验条——成长可见;
- 掷骰飘字:判定式全文飘出「d20:15+2 vs 12 ✓ +7金」,大成功大字金色——过程可见是本品类 UI 的命脉;
- 层间横幅:「登上第 N 层!」仪式感一拍;
- 战报结算:层数/击败/开箱/大成功/胜负因由/最高纪录 + 再闯按钮。
6. 音乐 / 音效范式(audio-music 可达)
- 音效(爽感命脉,务必有):掷骰"嗒" · 成功收币"叮"(coin)· 大成功欢呼(win)· 失败闷响(thud)· 升级号角(win)· 翻层提示(click)。掷骰三拍循环每拍都要有声——audio-music
playSfx,无声卡静默降级不崩。 - BGM:地城氛围循环(低速鼓点+弦),高层可加急(可选)。
- 红线:宁可程序化音效,也别没有反馈音(无音 = 无趣的隐形元凶)。
7. 首屏 / 传播视觉钩子(通用,MVP 也用)
- 首屏 3 秒抓人:菜单即亮玩法三行图例 + 大按钮,点进去 10 秒内掷第一把;
- 战报即炫耀时刻:一屏讲完这局冒险的故事(爬到第几层/击败几个/几次大成功/怎么结束的),可截图分享;
- 最高纪录挂脸上("金 97"),破纪录的再来欲;
- 大成功的全屏演出(闪光+粒子+欢呼)是短视频截段的天然素材。
8. 设计阶段输出配方(生成 agent 据 brief 产出这些 → 喂代码生成)
给定一句话 brief,设计阶段应产出一份结构化玩法设计,逐项落到运行时:
- 核心循环(一句话 + 30 秒脚本:玩家挑哪张卡→掷骰看什么→得什么→怎么变强);
- 主机制 1–2 个(从 §1 选;标注用哪些插件);
- 遭遇表/事件表(≥4 项、三种性质齐:高险高赏 / 稳收 / 险中带甜;各标 diffMod/gold/xp——这是题材身份的核心载体);
- 数值骨架(基准难度/坡度/血量/升级曲线/连胜 cap —— 按 §3 给具体值,交 core.js 常量);
- 美术风格词(一组,全资产共用)+ 配色(交 render.js 的 C 表);
- 音效清单(掷骰/成功/大成功/失败/升级/翻层)+ BGM 情绪;
- UI 布局(HUD/卡列/勇者面板/飘字/战报,§5);
- 首 3 分钟脚本(上手→首升级→再来一局的钩子)。
MVP-first 铁律(关乎 code agent 能否收敛):设计聚焦可玩核心 —— 点卡掷骰循环 + 1 成长轴 + 难度爬坡到终点 + 基础数值/音效,遭遇 ≤5 种起步。多角色切换 / 装备栏 / 技能树 / 跨局剧情 / 多结局分支图 等一律标「后续·MVP 不做」,别一稿堆满 —— 设计太满 → code agent 实现负担过重 → read-thrash 不收敛。先出能玩的核心,再谈丰富。
这份设计 = 代码生成阶段的"图纸";生成 agent 照 littlejs-game-dev 把它实现为多文件代码(从
_template-trpg骨架换皮起步,别从零写)。设计阶段把"好玩"想清楚,代码阶段只管正确实现。
9. 可达性红线(落不到运行时的设计 = 废稿,必剔除/简化)
- ❌ 长流程重游戏:跨局剧情存档推进 / 章节制大冒险 / 大地图自由探索 → 改单局可完(45–90s)+ 跨局只留纪录/图鉴。
- ❌ 回合制菜单战斗("攻击/防御/道具/逃跑"四键菜单):多步菜单流程拖慢单局节奏、casual 玩家上手门槛高 → ✅ 核心动作单击即结算(点遭遇卡 = 自动掷骰+判定+结算一步完成,爽点在「挑哪张」不在按菜单)。
- ❌ 纯随机无抉择(自动掷骰/只有一个按钮):没有"挑哪张"的掌控感 = 抽卡机不是 TRPG → 同屏 ≥2 张差异化亮牌。
- ❌ 掷骰黑箱(点卡直接出结果不见骰):悬念归零 → 判定式飘字必须有。
- ❌ 联网组队 / PVP → 单机 + 本地最高纪录。
- ❌ 3D 骰子物理 / 大量逐帧动画 → 2D 程序化(飘字+粒子+闪光足够演出)。
- ❌ 超过 2 个主机制(战斗+锻造+钓鱼…)→ 聚焦点卡掷骰 + 1 成长轴。
- ✅ 留下的:掷骰对抗、亮牌取舍、等级/伙伴成长、难度爬坡、连胜、限时、纪录/图鉴 —— 全在 11 注入插件 + 单屏 + 便宜模型可生成范围内。
- 每次结算至少 +1 金币(失败安慰金):胜负都给正反馈,失败也不颗粒无收——保底反馈是 casual 上手缓冲,别让连败玩家零收获直接弃游。
10. 反"无趣"落地清单(design 自检,逐条必过)
通用 12 条(全品类同尺,校验侧 = cheap_verify.RICHNESS_CHECKLIST,L2×7/L3×3/L4×2;2026-07-03 增补第 12 条「核心操作非无脑」):即时反馈 / 可见成长 / 下一个解锁 / 30 秒爽点 / 数值滚雪球 / 情感锚 / 核心操作非无脑 / 放置回归 / 音反馈 / 首 3 分钟脚本 / 炫耀时刻 / 同款钩子——设计阶段照 sim-business-game-design.md §10 过一遍,「核心操作非无脑」单独确认:每次主操作含真实决策或技巧含量、判错有真代价(TRPG 天然强项=挑卡取舍,别退化成点哪张都一样)。
TRPG 品类自检 5 条(校验侧同源 = cheap-worker/fixtures/genre-rubrics/trpg.json,喂 LLM 验证 agent、非阻塞、分母独立):
- [L2] 掷骰过程可见:掷骰判定(骰值+加成 vs 难度)以飘字/动画亮给玩家?(正:飘「d20:15+2 vs 12 ✓」;反:点卡直接加钱、不见骰)
- [L2] 风险-回报取舍真实:同屏遭遇难度与奖励差异化亮牌、挑卡决定影响期望收益?(正:骷髅卫 ≥9 +7金 vs 宝箱 ≥4 +3金;反:所有卡同难同赏点哪张都一样)
- [L2] 成长真实进判定公式:等级/伙伴提升改变掷骰判定数值且 UI 可见?(正:升级→骰+1 写面板、进公式;反:等级只是显示数字、判定恒裸 d20)
- [L3] 难度爬坡 + 登顶终点:难度随进度递升、有明确通关终点与进度可见?(正:第 N/6 层 HUD + 每层难度 +1 + 登顶 win;反:无限平难度刷分无终点)
- [L4] 冒险战报可炫耀:结算屏讲这局冒险的故事(层数/击败/大成功/胜负因由)、可截图?(正:「爬到第 5 层·击败 7·大成功 2·勇者倒下」;反:只有一个总分数字)
命中越多越好玩;通用 12 条命中 ≤3 ≈ 能玩但无趣。设计阶段就过这两张表,别等做出来才发现无趣。 机检硬门 vs LLM 评分维度的分界照质量模型 SoT §4 规范五(v2 修订:play-spec 断言载体已随 W-AXIS-V2 退役,机械可判的归四门地板与测试员转写、程度评价归 LLM 评分,分界原则不变);上述品类条目全是 LLM 评分维度,不落项目代码、不进机械门、不进脚手架。
金标锚点(12 条口径基线 · 质量模型 SoT §4 规范三)
每品类需 ≥1 金标正例 + ≥1 薄反例锚住评分尺(rubric 文本或评分 prompt 变更须金标复验,单款分组小计漂移 >±1 即回退)。TRPG 的锚 2026-07-03 以 12 条口径实测(生产口径 genre=trpg,同输入复采样 n=3 取中位,入口 cheap_verify.verify_richness):
- 金标正例 =
game-runtime/games/_template-trpg骨架原样(掷骰爬塔,独立过九门)。通用 12 条 = 9/12:L2 6/7 · L3 1/3 · L4 2/2;第 12 条「核心操作非无脑」3/3 命中(三档难度/奖励差异化亮牌,挑卡取舍 + 连胜维护 + 扣血硬扛都是真实决策,失败扣 2HP 有真代价);品类扩展 5/5(L2 3/3·L3 1/1·L4 1/1);前 11 条 = 8/11,精确复现旧锚通用 8/11。TRPG 模板是富正例、不是薄反例——黄金脚手架把掷骰/取舍/成长/爬坡/战报整套接好,换皮起步即富。 - 薄反例 = 合成黑箱点卡(点卡直接加钱、无骰无取舍无成长无终点,照各条 negative 面同构):材料尚未入仓,是本品类金标欠账(与
cheap-worker/fixtures/genre-rubrics/trpg.json的 _note 记的同一笔;红线是不臆造合成材料充数,待真材料入仓再补基线)。其历史锚(未真跑)= 通用 0/11 · 品类 0/5。 - 方差纪律:M3 单发方差 ±2~4,取中位;品类段(5/5、三样全中)与 L4(2/2)跨样最稳,是回退判定最可靠的观测维;正例通用三样 9/9/8。
底线四件映射确认(质量模型 SoT §7 档位要求 —— 品类件逐条确认,TRPG 全可映射、无需申报替代轴)
| 底线件 | TRPG 映射 | 骨架落点 |
|---|---|---|
| 成长轴(数值或等级) | 等级 + 掷骰加成(真进判定公式) | core.applyXp/heroBonus + 勇者面板 |
| 解锁阶梯 ≥3 级(任意时刻可见下一个) | 塔层推进(6 层,HUD 常驻「第 N/6 层」,清层即解锁下一层) | core.TOWER_FLOORS + drawHud |
| 收集/装饰或等价第二动机 | 战报统计(击败/开箱/大成功)+ 最高纪录;可扩结局徽章/遭遇图鉴 | measures + sessionScore.getBest(扩:save) |
| 音反馈 | 掷骰/结算/升级/翻层四处 SFX | audioMusic.playSfx(coin/win/thud/click) |
相关
- 代码层实现 →
littlejs-game-dev.md(11 注入插件 API / 结构 / 工厂契约) - 品类脚手架(换皮起点)→
game-runtime/games/_template-trpg/(掷骰爬塔,独立过九门) - 便宜模型生成 worker / 九门 →
cheap-model-game-generation.md - 经营品类范例(本 skill 的打样来源)→
sim-business-game-design.md