--- name: sim-business-game-design description: "当为经营模拟/放置养成类 brief 产设计阶段玩法方案或评审经营类设计时使用:6 心理引擎、可达范式与决策模式清单、客流/经济数值锚、输出配方、可达性红线、反无趣自检;品类 rubric 单源指 fixture,金标锚点在册。" --- # skill: sim-business-game-design —— 经营模拟小游戏「玩法设计」作业手册(给生成 agent 的设计阶段) > 定位:这是 **生成 agent 设计阶段(AgentScope)造"好玩的经营模拟玩法设计"的唯一作业手册**。它回答 **"设计什么才好玩"**(玩法/机制/进度/数值/美术/音/UI 范式),与 [`littlejs-game-dev.md`](littlejs-game-dev.md)(回答"代码怎么写")配对:**设计阶段产玩法概念 → 代码生成阶段照 littlejs-game-dev 产代码**。 > > **铁律(创始人 2026-06-21)**:"好玩 = 上游设计层职责",不在 runtime/插件。插件只让设计**能被 juice 出手感**;**这份 skill 负责让设计本身好玩**。 > > **可达性边界**:产出必须落得到 A-model 轻量运行时——**LittleJS 2D 手机竖屏(390×844)、单/少场景、便宜模型可生成的多文件代码、11 注入插件能力域**。设计再好,落不到这个运行时就是空想——见 §9 红线。 > > **证据基**:范式蒸馏自近年微信/抖音「放置经营 / 模拟经营 / 模拟养成」品类的成熟模式(训练知识,非实时榜单);范式稳定可用,具体举例供参照。 --- ## 0. 为什么这一品类爆(底层动机 —— 设计要击中这些) 经营模拟小游戏的"爽"来自 6 个心理引擎,**好玩 = 同时点燃尽量多个**;无趣 = 一个都没点燃: 1. **即时反馈**:每个操作 0.1 秒内有可见回报(数字 +N、飘字、音效"叮"、粒子)。 2. **可见成长**:数字/规模肉眼可见地变大(分数飙升、店铺扩张、等级上涨)。 3. **解锁期待**:"再赚一点就解锁新东西"——永远有下一个钩子(新商品/区域/角色)。 4. **收集欲**:图鉴/装饰/角色凑齐的强迫感。 5. **治愈/养成情感**:萌角色、温暖场景、"我把它养大了"的拥有感。 6. **低门槛 + 放置不肝**:3 秒上手、挂机也有收益、回归有惊喜。 > **反"无趣"总纲**:无趣几乎总是因为——操作无即时反馈 / 成长不可见 / 没有"下一个解锁" / 数值平淡线性 / 无情感锚点。§10 是落地清单。 --- ## 1. 核心玩法范式(可达子集 —— design 优先从这里选) | 范式 | 一句话 | 我们运行时怎么落(插件) | |---|---|---| | **短核心循环** | 操作→即时收益→积累→升级/解锁→扩张→重复;**30 秒内见第一次升级** | session-score 计数 + hud-ui 飘字 + particles-juice 爽感 | | **放置/挂机收益** | 不操作也持续产出(每秒/每 N 秒 +X);**回归给离线收益弹窗** | timer-scheduler `every()` 产出 + save-progress 存离线时间戳 + 回归算差值 | | **合成升级(merge)** | 两个同级合成更高级(更高产出),制造"再合一个"冲动 | core 逻辑 + particles-juice 合成"啪" + hud-ui | | **阶段解锁阶梯** | 攒够 → 解锁新商品/区域/角色,**永远露出下一个锁** | session-score 阈值 + scene-fsm/状态 + hud-ui 解锁庆祝弹窗 | | **轻经营决策** | 节奏与压力下的管理判断——**单击可达但有真实决策**(标准模式见下方决策模式清单;定价/摆放/雇员这类多步配置面板是 tier2 的菜,便宜档别做) | core 逻辑 + hud-ui 面板/按钮 | | **进货/补货循环**(经营核心资源环) | 花软币**进货**→**库存**→售卖收钱→**缺货补货**;制造"赚→进→卖→再赚"的资源管理张力 | core 库存状态(数量/上限)+ session-score 货币(进货扣、售卖加)+ hud-ui 库存条/补货按钮 + particles-juice 售卖爽感 | | **收集图鉴** | 凑齐商品/角色/装饰 | save-progress 存收集状态 + hud-ui 图鉴格 | | **数值成长曲线** | 产出/成本指数成长 + 卡点,制造"差一点" | balance 数值表 | **组合配方(经验)**:一款轻量经营 = **1 个主循环(放置产出 或 点击经营)+ 1 个成长轴(升级/合成)+ 解锁阶梯 + 收集/装饰点缀**。别堆超过 2 个主机制(便宜模型 + 单屏扛不住,也稀释爽点)。 **⑨ 决策模式清单(经营类的标准填法——每款至少取一种做透;全部单击可达、判错有真代价)**: - **优先级选择**:多客同时等、耐心条各自流逝——先服务谁?判错则耐心尽、丢单扣分; - **补货时机**:库存见底才能补、补货扣软币——现在补还是再卖一单?拖过头则缺货断客流; - **时机窗口**:高峰波次前备货/出摊——押对时点收益翻倍,押错白付成本; - **风险收益**:囤货等大单 vs 现金落袋(稀有客给大单但占双倍时长)——贪多可能砸手里。 每种都能填 ⑨ 判定句「玩家在__时要判断__,判错则__」;填不出=退回重选模式。cheap 主 prompt(v1.6.0)的经营路由即指到本清单。 > 注:SoT §4 已将 prompt 自检第 ⑨ 条升为评分尺第 12 条,本清单编号不变。 --- ## 2. 关卡 / 进度 / 留存设计 - **首 3 分钟(决定生死)**:① 0–10 秒:零阅读即上手(点一下就有钱/有反馈);② 10–60 秒:**第一次升级/解锁**(快速给到"变强了"的爽);③ 1–3 分钟:露出 2–3 个后续解锁锁,建立"还有很多"预期。 - **留存钩子**:每日首登奖励 · 离线收益弹窗(回归惊喜)· 目标/任务清单(手把手给下一步)· 限时小活动(可选)。 - **长线**:阶段目标(开第 N 家店)· 图鉴凑齐 · 声望/转生(重开换永久加成,放置品类标配)。 - **节奏**:爽点(升级/解锁/暴富)与平台期交替;平台期是"差一点就能…"的卡点,引向看广告/等待/放置。 --- ## 3. 数值与经济(广告变现轻游戏 —— 我们的变现模型) - **双货币**:软币(循环挣、用于常规升级)+ 稀缺资源(钻石/星,用于加速/解锁,**经看广告或攒**)。 - **看广告点位(自愿、不打断爽点)**:加速产出 · 双倍离线收益 · 免费解锁/抽奖 · 复活/续命 · 翻倍领取。**包装成"福利"**(金光按钮 + "免费 ×2"),不是惩罚。 - **卡点设计**:让玩家**"差一点就能升级/解锁"**(成本曲线略陡)→ 自然引向看广告或放置等待。**别卡死**(挫败 = 流失);卡点是"诱惑"不是"墙"。 - **成长曲线**:产出/成本指数(如 ×1.15/级),配合放置收益,制造"滚雪球"暴富快感。 - **客流/出现节奏(点客·经营类必给目标值 —— 治"来太快/太慢")**:design 要给**具体区间锚**,别让 code agent 拍脑袋(实测拍出来偏激进 = 顾客太快)。参考:清闲期出现间隔 **~1.8–2.8s** / 同屏上限 **3** / 顾客耐心 **~5–7s**;高峰期间隔 **~1.0–1.5s** / 上限 **4**;**高峰别太早**——一局 60s 的话 rush 起点 **≥35s**(留足清闲铺垫,先松后紧)。这些目标值交 balance.js。 --- ## 4. 美术风格范式(可达 + mmx 可产 + 程序化兜底) | 风格 | 调性 | 配色 | 适合 | |---|---|---|---| | **Q 版萌系扁平**(主流首选) | 轻松可爱 | 高饱和糖果色 | 绝大多数轻量经营 | | **治愈系暖色** | 温暖疗愈 | 奶油黄/杏色/暖橙(参考 wanglanmei-ref) | 养成/小店/种田 | | **国潮国风** | 雅致 | 低饱和 + 朱砂/黛青点缀 | 古风经营(种田/商号/建城) | | 像素 | 复古 | 有限色板 | 轻怀旧(谨慎,精度要求高) | - **角色/物件**:圆润、大头身、夸张表情(萌 = 情感锚点)。 - **美术一致性之根**:**全程共用一组"风格词"**(主体描述 + 风格 + 配色 + 构图),mmx 每次生成都带它(见 wanglanmei-ref `assets/manifest.json` styleWords)。 - **mmx 生成**:`mmx image generate --prompt "<主体>+<统一风格词>+纯色背景,居中,简洁" --out x.jpg`(见 littlejs-game-dev §6)。 - **程序化兜底**:无 mmx / 缺图时,hud-ui + palette-post 画几何图形 + 统一调色也能成立(catch-fruit 纯图形即可玩);**别因美术阻塞可玩性**。 --- ## 5. UI 范式(hud-ui 全可达) 经营游戏 UI 套路(都用 hud-ui 落): - **顶部 HUD**:货币 / 等级 / 进度条(固定左上/右上); - **一键收取**:大按钮"收取"(收菜/收钱),点击 → 飘字 +N + 粒子 + 音效(放置品类核心交互); - **飘字 +N 动画**:每次收益弹出"+N"上浮淡出(即时反馈的视觉化,particles-juice/hud-ui); - **看广告按钮**:金光/"免费 ×2"包装,显眼不烦人; - **升级/解锁庆祝弹窗**:解锁瞬间全屏小庆祝(闪白 + 粒子 + 音效,particles-juice); - **新手强引导**:首 30 秒手把手(高亮 + 手指点哪),零阅读; - **红点/角标**:可领取/可升级处红点提示。 --- ## 6. 音乐 / 音效范式(audio-music 可达) - **BGM**:轻松治愈循环(闲时)/ 欢快明快(高峰);可情绪分层(audio-music `setIntensity`)。mmx 生成:`mmx music generate --prompt "温暖悠闲...治愈" --instrumental --bpm 90`。 - **音效(爽感命脉,务必有)**:收钱"叮"💰 · 升级欢呼🎉 · 合成"啪" · 点击 pop · 解锁号角。**即时音反馈是"爽"的一半**——audio-music `playSfx`,无声卡静默降级不崩。 - 红线:**宁可程序化音效,也别没有反馈音**(无音 = 无趣的隐形元凶)。 --- ## 7. 首屏 / 留存视觉钩子(通用,MVP 也用) - 首屏 3 秒抓人:**立即可玩 + 立即有反馈**(别先放长剧情/教程墙); - "从破到繁荣"的成长对比预期(破旧小店 → 繁华商业); - 萌角色当门面(情感锚); - 数字飙升的暴富快感预告。 --- ## 8. 设计阶段输出配方(生成 agent 据 brief 产出这些 → 喂代码生成) 给定一句话 brief,设计阶段应产出一份**结构化玩法设计**,**逐项落到运行时**: 1. **核心循环**(一句话 + 30 秒脚本:玩家做什么→得什么反馈→怎么变强); 2. **主机制 1–2 个**(从 §1 选;标注用哪些插件); 3. **解锁阶梯**(3–6 级:解锁什么 / 阈值); 4. **数值骨架**(初始产出、成长率、卡点、看广告点位 —— 交 balance.js); 5. **美术风格词**(一组,全资产共用)+ 资产清单(角色/商品/背景/UI,标 mmx 或程序化); 6. **音效清单**(收益/升级/合成/点击/解锁)+ BGM 情绪; 7. **UI 布局**(HUD/收取按钮/飘字/弹窗/引导,§5); 8. **插件选择清单**(→ 写进 host-config.js;常用:session-score + timer-scheduler + hud-ui + particles-juice + audio-music + save-progress + scene-fsm,按需加 collision/physics-lite); 9. **首 3 分钟脚本**(逐步:上手→首次升级→露出后续锁)。 > **MVP-first 铁律(关乎 code agent 能否收敛)**:设计**聚焦可玩核心** —— 核心循环 + 1 主机制 + 1 资源环(进货)+ 3–4 级解锁 + 基础数值/音效,商品 ≤3 种起步。**离线收益 / 广告 / 雇员 / 多档 BGM / hitstop / 6+ 商品 等一律标「后续·MVP 不做」**,别一稿堆满 —— 设计太满 → code agent 实现负担过重 → read-thrash 不收敛(实测:7.5KB 满配设计 code 循环截停;~5KB 精简 9 步收敛)。**先出能玩的核心,再谈丰富。** > 这份设计 = 代码生成阶段的"图纸";生成 agent 照 littlejs-game-dev 把它实现为多文件代码。**设计阶段把"好玩"想清楚,代码阶段只管正确实现。** --- ## 9. 可达性红线(落不到运行时的设计 = 废稿,必剔除/简化) - ❌ 联网 PVP / 多人实时 / 排行榜社交 → 改单机 + 本地最佳分(session-score best)。 - ❌ 大世界 / 自由滚动地图 / 多关卡大流程 → 单/少场景竖屏(scene-fsm 切 3–5 态)。 - ❌ 3D / 大量逐帧手绘动画 → 2D + 程序化动效(particles-juice/缓动)+ 少量 mmx 静态图。 - ❌ 复杂经济(多资源链/市场波动)→ 双货币 + 简单成长曲线。 - ❌ 超过 2 个主机制 → 便宜模型 + 单屏扛不住,聚焦 1 主 + 1 成长轴。 - ❌ **核心成单/得分动作做成「先选 A 再选 B」两步**(如"点顾客锁定→再点货架商品"):零-LLM 自动验收 driver 只会单击 `occupied:true` 目标、跟不动两步 → 九门 H 验不到进展 = **好游戏被误判** → ✅ **核心动作单击即成单**(点等待中的顾客 = 自动按库存售卖收钱,casual 友好 + driver 可达);**深度靠进货/库存/解锁/节奏,不靠两步匹配**。若确需多步,则 `_forensicsView().state().targets` 必须**随状态把"下一步该点的"标 occupied:true**(选中顾客后,把该卖的货架商品标 occupied),让 driver 跟着两步推进。 - ✅ 留下的:放置产出、合成升级、点击经营、阶段解锁、收集、轻决策、数值滚雪球 —— 全在 11 注入插件 + 单屏 + 便宜模型可生成范围内。 --- ## 10. 反"无趣"落地清单(design 自检,逐条必过) 1. **即时反馈**:每个主要操作有没有"飘字 +N + 音效 + 粒子"三件套?(无 → 必加) 2. **可见成长**:有没有一个数字/规模肉眼可见地变大? 3. **下一个解锁**:任意时刻玩家眼前有没有"再攒一点就解锁 X"的锁? 4. **30 秒爽点**:开局 30 秒内有没有第一次升级/解锁? 5. **数值滚雪球**:成长是不是有"越来越快"的暴富段(而非平淡线性)? 6. **情感锚**:有没有一个萌角色/拥有物让玩家"想养大它"? 7. **放置回归**:离线回来有没有惊喜(离线收益弹窗)? 8. **音反馈**:收益/升级/解锁有没有声音?(哪怕程序化) > 8 条命中越多越好玩;命中 ≤3 条 ≈ catch-fruit 那种"能玩但无趣"。**设计阶段就过这张表,别等做出来才发现无趣。** > **机检硬门 vs LLM 评分维度(质量轨 2026-07-02 分界裁定)**:这 8 条里原标「4 条可机检」并不同质,`docs/architecture/架构/生成引擎/游戏质量与爆火能力.md` §3/§4 拆成两类——纯代码存在性的三条降为 LLM 评分维度(rubric,非阻塞),经真玩校验的断言留作 L1 硬门(机器判定、可拒发): > - **①即时反馈**(主操作真调 `particles-juice` 飘字/粒子 + `audioMusic` 音效)、**③下一个解锁**(解锁逻辑 + 阈值常量)、**⑧音反馈**(真调 `audioMusic.playSfx` 或引擎 zzfx):代码里存在调用不等于体验真成立,故交 LLM 验证 agent 评分,不落项目代码、不进九门; > - **②可见成长** = `score`/营收随操作上升,经 H 门 `assertAfterPlay {path:score,op:increased}` 校验,属 L1 机制可玩,保留为阻塞硬断言、不软化; > - **经营/进货品类**再加一条 per-game 运行时断言:买/进货时货币真减 → gatespec 产 `{path:"currency",op:"decreased"}`,同经 H 门 assertAfterPlay 校验,同属 L1 硬断言(**注:通用九门不加品类语义,断言是每局喂的**)。 > > 同名两物分工清楚:L1 断言判「机制上真发生」,rubric 判「体验上成立、有层次」;把真玩硬证据降成软评分会削 L1 的拒发权,方向恰好反了。其余(情感锚/放置回归/滚雪球)仍靠真玩判,不机检。 **品类扩展 rubric(机器版,喂 LLM 丰富度验证 agent·非阻塞)= 单源 [`cheap-worker/fixtures/genre-rubrics/sim-business.json`](../../cheap-worker/fixtures/genre-rubrics/sim-business.json)**(2026-07-04 补齐;四条名目 = 质量模型 SoT §4 规范二经营范例——进货补货循环成立 / 客流节奏有紧张感 / 双货币分工明确 / 卡点「差一点」不卡死;与上面通用 8 条**分母分开、独立小计**。改条目只改 fixture,本 skill 不维护副本)。 --- ## 金标锚点(12 条口径基线 · 质量模型 SoT §4 规范三) 每品类需 ≥1 金标正例 + ≥1 薄反例锚住评分尺(rubric 文本或评分 prompt 变更须金标复验,单款分组小计漂移 >±1 即回退)。经营品类的锚 2026-07-04 落定(生产口径 genre=sim-business,同输入复采样 n=3 取中位,入口 `cheap_verify.verify_richness`): - **金标正例 = [`cheap-worker/fixtures/golden-samples/sim-business/bake-shop-serve-1`](../../cheap-worker/fixtures/golden-samples/sim-business/bake-shop-serve-1/)**(S5b lab 复验小批产的烘焙店 60 秒上菜 rush:三桌耐心条、700ms 连击窗叠技巧分、营收三档阈值 22/55/100 渐次解锁菜单;attempts=1 一次过九门、真玩 driver=tap-targets、¥2.00)。**通用 12 条 n=3 中位 = 10/12**(单发 11/9/10,方差 ±2 合纪律;稳定缺项只有「放置回归」——60 秒单局制无离线收益,形态使然)。第 12 条「核心操作非无脑」命中:多桌耐心排序 + 连击维护是真实决策,走客有真代价。 - **薄反例/对照 = `_template-shop` 骨架原样**(C 波 2026-07-03 实测:通用前 11 条 4/11、第 12 条未命中——点顾客即自动上菜结算 = 无脑点击;品类段 1/4)。**正反例通用段分离 5–6 分,通用尺的判别力锚在这条差距上**;与 TRPG/puzzle 模板(富正例)相反,经营骨架天然薄,薄对照角色恰好由它担、不必再造合成材料。 - **品类扩展段(4 条)诚实口径**:正例本款只中 2/4——serve 形态天然没有进货补货与双货币,这两条的正锚要等进货型经营款出现;品类段正例对骨架对照(2/4 vs 1/4)分离仅 1 分,**回退判定勿跨形态用品类段,以通用段 + L4 为准**。 - **方差纪律**:M3 单发方差 ±2,取中位;锚定凭据(逐条命中理由原始记录)= 正例 `evidence/richness-n3.json`。 --- ## 相关 - 代码层实现 → [`littlejs-game-dev.md`](littlejs-game-dev.md)(11 注入插件 API / 结构 / 资产-mmx / 工厂契约) - 便宜模型生成 worker / 九门 → [`cheap-model-game-generation.md`](cheap-model-game-generation.md) - 生成 agent 设计阶段接入 → 现行生成主线 = AgentScope 三档统一收敛(SAA 降最低优先级、留作远期适配验证,code 在 `game-cloud/.../saa/`;A-model 改写见 `git show 8ea97234:docs/agent-specs/2026-06-21-saa-amodel-rewrite-review.md`)