12 KiB
12 KiB
🎮 产品需求文档 (PRD):《Project Vibe: Ship It!》
1. 产品愿景与核心体验
- 游戏类型: 桌面堆叠生存 (Desktop Stacking Survival) + 模拟经营 + Roguelike。
- 目标受众: 开发者、PM、QA、设计师,以及喜欢《Stacklands》或《密教模拟器》的策略玩家。
- 核心体验: 玩家在一个没有网格的“桌面”上,通过拖拽合并卡牌来推进项目进度(写代码、提需求、修Bug)。在有限的时间内(Sprint),一边应对由真实大语言模型 (LLM) 动态生成的突发危机,一边积攒资源完成交付物。
- VibeCoding 特色: 游戏内的终极神卡是【Vibe助手】,它可以跨职业融合任何卡牌,大幅缩短进度条,但有概率引入“技术债”卡牌。
2. 核心游戏循环 (Core Loop & Roguelike)
游戏采用经典的“局内战斗+局外成长”的 Roguelike 循环。
2.1 局内:Sprint 冲刺期(生存与合成)
- 周期时长: 每个 Sprint 现实时间约为 3-5 分钟。
- 胜利条件: 在倒计时结束前,利用桌面卡牌合成出规定数量的【交付物】(如:3 个可用模块),且【项目资金】> 0。
- 失败条件: 【项目资金】归零(被 Bug 或超时危机扣光)。
- 核心操作: 拖拽卡牌重叠 -> 触发对应配方 -> 显示进度条 -> 倒计时结束产出新卡/资源。
2.2 局外:Retrospective 复盘大会(成长抉择)
- 结算与奖励: Sprint 成功后,剩余的时间和资源按比例转化为【项目奖金】。
- 肉鸽抉择(3选1): 玩家从随机刷出的 3 个选项中选择 1 个强化自身:
- 新增高级卡牌: 如【自动化测试脚本】(永久复用)。
- 获取遗物 (Relics): 如【敏捷教练】(全局 Buff:所有合成时间缩短 10%,但每回合扣除 5% 资金)。
- 清理牌库: 花费资金销毁桌面上难以处理的【技术债】或【屎山代码】卡。
3. 核心机制设计
3.1 桌面与状态机 (The Board & State)
- 无网格桌面: 界面是一个类似操作系统的桌面。卡牌可以任意摆放和堆叠。
- 全局资源: 顶部 UI 显示当前 Sprint 的【倒计时】和【项目资金】。
- 卡牌堆叠判定: 当卡牌 A 被拖拽并释放 (Drop) 在卡牌 B 上时,系统检索
Crafting_Recipes(合成配方表)。若匹配,两张卡牌进入Processing状态锁定,头顶出现进度条。
3.2 基础卡牌与职业卡池 (Classes & Decks)
玩家开局需选择职业,决定初始手牌和专属配方路线。
1. 基础公共卡池 (所有职业共用的环境底座)
- 【资源卡】
专注力 (Focus):基础合成消耗品。随时间自然蒸发。咖啡 (Coffee):万能提神药。预算 (Budget):用于在商店购买服务器或外包。脑洞 (Idea):随机飘落在桌面的灵感。
- 【建筑/设施卡】 (放在桌面上长期生效)
咖啡机 (Coffee Machine)+预算= 自动每 15 秒产出 1 杯咖啡。云服务器 (Cloud Server):承载高级代码,产出项目进度,但每 10 秒消耗 1 点预算。
- 【负面/垃圾卡】 (需要想办法消除,否则占满桌面或引爆危机)
Bug:由脏代码变异,会吃掉附近的专注力。技术债 (Tech Debt):无法移动,占据桌面空间。3个技术债聚在一起会召唤一次 【LLM 重大危机】。无意义的会议 (Pointless Meeting):随机抓取桌面上的一张实体卡(人),使其被锁定 20 秒,产出疲惫 (Burnout)。
2. 👨💻 资深开发 (Developer) 的深度合成树:架构师之路
开发流派的乐趣在于**“从写屎山到重构成微服务”**的基建狂魔体验。
- T1:造砖阶段 (脏与快)
开发人员+专注力=脏代码 (Dirty Code)(需 3 秒)脏代码+脏代码=面条代码 (Spaghetti Code)(只需 2 秒,但 30% 几率同时产出Bug)
- T2:重构阶段 (质量提升)
面条代码+开发人员+咖啡=干净的代码 (Clean Code)(需 15 秒)脏代码+Vibe AI 助手=干净的代码(只需 2 秒,极速重构!但 10% 几率产出开源协议侵权警告(危机卡))
- T3:架构阶段 (质变)
干净的代码+干净的代码=可用模块 (Working Module)可用模块+云服务器= 【微服务节点 (Microservice)】(建筑卡:每 5 秒自动产出 1 个项目进度和 100预算)- 隐藏配方:
开发人员+无意义的会议=摸鱼打代码-> 产出开源组件(高价值卡牌) +老板的怒火。
3. 📊 产品经理 (PM) 的深度合成树:空手套白狼
产品流派没有直接产出代码的能力,乐趣在于资源调度、画大饼和踢皮球。
- T1:需求制造
产品经理+脑洞=一句话需求 (Vague Requirement)(极快)一句话需求+无意义的会议=PRD文档 (PRD)+画大饼 (Empty Promise)卡片。
- T2:白嫖与外包
画大饼+开发人员(NPC/队友)= 临时将该开发者的合成速度提升 200%,但 10 秒后必定产出离职倾向 (Burnout)(极度危险的负面卡)。PRD文档+预算(1000)=外包团队-> 产出粗糙的模块(可用但随时会坏)。
- T3:乾坤大挪移 (解决危机的独特方式)
产品经理+Bug=特性 (Feature)。(神级配方:直接把 Bug 卡强行重命名为特性卡,变成可交付物,极其幽默)产品经理+技术债=排期延期卡。(把技术债塞进排期,消除占用,但会减少 Sprint 最终结算奖励)
4. 🕵️ 测试工程师 (QA) 的深度合成树:陷阱与净化
测试流派的乐趣在于**“找茬”、建立自动化流水线**,看着 Bug 灰飞烟灭。
- T1:挑刺阶段
测试员+脏代码/面条代码=Bug 报告+干净的代码(提纯过程,需 10 秒)。Bug 报告+开发人员=争吵 (Argument)+重构好的代码。
- T2:自动化防御
测试员+专注力+咖啡=断言脚本 (Assert Script)(消耗品武器卡)。- 将
断言脚本拖到Bug或技术债上 = 瞬间将其秒杀,并掉落项目质量分。
- T3:建立流水线 (质变)
测试员+可用模块+云服务器= 【CI/CD 流水线】(自动化建筑)。- 作用: 只要你把任何
脏代码扔进 【CI/CD 流水线】,它会自动吃进去,5 秒后吐出干净的代码或者报警邮件。玩家无需再手动派人去测试。
5. 🎨 UI/UX 设计师 (Designer) 的深度合成树:美学的代价
设计师流派主打提升项目溢价(卖更多的钱),但要面对甲方的反复无常。
- T1:原型设计
设计师+专注力=线框图 (Wireframe)。线框图+咖啡=高保真原型 (Figma Prototype)。
- T2:前端融合
高保真原型+可用模块(后端)=绚丽的 App (Gorgeous App)(交付时获得 3 倍预算奖励)。
- T3:甲方的折磨 (特殊的卡牌连环演变)
- 当你打出
绚丽的 App时,有概率触发连环负面状态: 设计师+甲方反馈=设计稿_V2。设计师+设计稿_V2=设计稿_最终版。设计师+设计稿_最终版=设计稿_打死不改_绝对最终_V8.psd。(只有这张卡才能真正交付)。
- 当你打出
💡 VibeCoding 视角的 JSON 数据结构设计
有了这么庞大且幽默的配方树,如果你用传统的 IF-ELSE 来写代码绝对会疯掉。但对于 AI 辅助编程来说,你只需要让 AI 帮你搭建一个基于 JSON 解析的合成引擎。
你可以直接把这个 JSON 结构发给大模型(如 Cursor),让它生成核心逻辑:
// recipes.json (合成配方配置表)
[
{
"id": "recipe_spaghetti_code",
"inputs": ["dirty_code", "dirty_code"],
"required_actor": null,
"time_ms": 2000,
"outputs": [
{ "card_id": "spaghetti_code", "chance": 1.0 },
{ "card_id": "bug", "chance": 0.3 }
],
"description": "复制粘贴就是快,但也容易出Bug。"
},
{
"id": "recipe_qa_purify",
"inputs": ["spaghetti_code"],
"required_actor": "qa_engineer",
"time_ms": 10000,
"outputs": [
{ "card_id": "clean_code", "chance": 1.0 },
{ "card_id": "bug_report", "chance": 1.0 }
],
"description": "测试老哥强行帮你揪出Bug并提纯代码。"
},
{
"id": "recipe_pm_magic",
"inputs": ["bug"],
"required_actor": "product_manager",
"time_ms": 5000,
"outputs": [
{ "card_id": "feature", "chance": 1.0 }
],
"description": "这不是Bug,这是特性!"
}
]
4. LLM 动态危机系统 (AI Director)
这是游戏的核心亮点。LLM 将作为“甲方/系统”实时生成针对玩家当前桌面弱点的危机卡。
4.1 触发与生成机制
- 心跳检测: 每隔 30 秒,游戏抓取当前桌面关键卡牌数量(如:资金 1w,脏代码 5,测试 0)。
- 异步请求: 将状态发送给 LLM(如 OpenAI API),请求生成一个针对性的危机。
4.2 API 延迟处理策略(极简且优雅)
- 预警卡生成(立即执行): API 请求发出的瞬间,桌面上立刻凭空掉落一张中立卡牌【⚠️ 甲方正在输入...】。
- UI 表现: 卡牌显示 Loading 动画。玩家此时会有未知的压迫感,但无法对其进行操作。
- 翻转与爆发(Promise Resolve): LLM 返回 JSON 后,预警卡带有动画翻转为真正的【红色危机卡】,并开始倒计时。
- 本地兜底 (Fallback): 若请求超过 5 秒未返回,触发兜底逻辑,预警卡翻转为本地配置表中的随机通用危机(如【服务器宕机】)。
4.3 LLM 通信数据结构 (JSON 契约)
System Prompt 要求 LLM 返回以下结构:
{
"crisis_name": "内存泄漏灾难",
"description": "你的脏代码堆积如山,服务器马上就要炸了!",
"timer_seconds": 30, // 玩家解题的时间限制
"penalty_type": "lose_money", // 超时惩罚:扣除资金
"penalty_value": 20000,
"required_solution_tags": ["need_test_card", "need_focus_card"] // 解除危机需要的卡牌标签
}
解题玩法: 危机卡带有两个空槽(对应 required_solution_tags)。玩家必须在 30 秒内将具有相应 Tag 的卡牌(如 测试员卡 和 专注力卡)拖拽到危机卡上,读条 3 秒后危机解除,转化为奖励。超时则执行惩罚。
5. VibeCoding 开发任务拆解建议
为了充分利用 VibeCoding 的能力,建议您按照以下阶段向 AI (Cursor/Copilot) 提交 Prompt,逐步构建 MVP:
Phase 1: 核心前端框架与拖拽 (MVP)
- 技术栈选型: React + TypeScript + Vite + TailwindCSS (或者 Zustand 用于全局状态管理)。
- 核心任务 1:定义数据结构。让 AI 帮您生成
Card,Recipe,BoardState的 TypeScript Interface。 - 核心任务 2:实现拖拽与碰撞判定 (Drag & Drop)。不要用复杂的物理引擎,让 AI 写一个基于 HTML5 DnD API 或
framer-motion的拖拽组件。判定逻辑为:“松开鼠标时,检查当前卡牌的坐标是否与另一张卡牌的包围盒重叠”。 - 核心任务 3:实现倒计时状态机。用
useEffect或requestAnimationFrame实现两个重叠卡牌进入Processing状态,读条结束后触发回调生成新卡。
Phase 2: 完善 JSON 配方表与职业系统
- 将配方逻辑完全抽离为静态 JSON 配置。
- VibeCoding 优势: 您只需写出 2 个示例配方,可以直接让大模型批量生成几十个符合“软件工程梗”的配方配置表。
Phase 3: 接入 LLM 危机生成器 (API 联调)
- 编写
useCrisisDirector自定义 Hook。 - 实现“预警卡 -> API Fetch -> 解析 JSON -> 翻转为危机卡 -> 5秒超时本地 Fallback” 的完整异步逻辑链路。
Phase 4: Roguelike 循环包装
- 增加 Sprint 的总时间计时器。
- 增加结算画面和 3 选 1 的 UI 组件。