Files
CodeLikeDemo/01-需求与初始设计.md
2026-03-27 18:21:29 +08:00

12 KiB
Raw Permalink Blame History

🎮 产品需求文档 (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 触发与生成机制

  1. 心跳检测: 每隔 30 秒,游戏抓取当前桌面关键卡牌数量(如:资金 1w脏代码 5测试 0
  2. 异步请求: 将状态发送给 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实现倒计时状态机。用 useEffectrequestAnimationFrame 实现两个重叠卡牌进入 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 组件。