Files
test1/.docs/prd-tower-defense-game.md

206 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 《大厂保卫战:最后的打工人》- PRD v1.0
## 1. 产品概述
### 产品定位
一款2D讽刺类塔防小游戏以互联网大厂职场文化为背景用黑色幽默和荒诞策略玩法解构"内卷"现象。游戏嵌入Next.js页面通过纯前端Phaser.js实现无需安装额外软件即可在浏览器中游玩。
### 背景与目标
- 目标用户:互联网从业者、对大厂文化有共鸣的泛玩家
- 核心体验:荒诞、黑色幽默、策略对抗、共情压力
- 解决痛点:让职场压力通过游戏化方式得到释放和自嘲
### 游戏基本信息
- 游戏名称:《大厂保卫战:最后的打工人》(The Last Grinder)
- 类型2D 讽刺类塔防 (TD)
- 平台Web (浏览器),嵌入 Next.js 页面
- 技术实现Phaser.js纯前端游戏框架
---
## 2. 功能需求
### 核心数值体系 (P0)
**HC (Headcount)** - 资源单位(等同于传统塔防的金币)
- 初始值200 HC
- 获取方式:击败怪物 + 每波结束后的基础奖励
**KPI (关键绩效指标)** - 基地生命值
- 初始值100%
- 扣减规则:怪物到达终点时按怪物类型扣减
**精力值 (Stamina)** - 防御塔持续作战能力
- 范围0~100
- 攻击时消耗不攻击时每秒恢复5%
- 归零后进入"摸鱼"状态(停止攻击)
---
### 核心功能 (P0)
#### 1. 第一关地图:人力资源部·降本增效
**地图布局**
- 形状S型办公走廊路径
- 起点:"面试间"(怪物刷出点)
- 终点:"财务室/茶水间"KPI扣除点
- 装饰:代码框、倒下的咖啡杯、"奋斗"横幅
**路径设计格子坐标系16x12格**
```
起点(0,2) → 右行至(7,2) → 转向下至(7,9) → 转向右至(15,9) = 终点
```
#### 2. 防御塔系统
| 塔名称 | 成本 | 攻击类型 | 特殊技能 | 攻击力 | 攻速 |
|--------|------|----------|----------|--------|------|
| 00后实习生 | 50 HC | 单体近战 | 整顿职场5%概率秒杀普通怪每秒1%概率自动离场 | 15 | 1.5/s |
| P6资深开发 | 120 HC | 远程直线 | 代码屎山:子弹附带持续伤害(10/s持续3s) | 30 | 1.0/s |
| PPT大师 | 100 HC | 范围减速 | 黑话领域范围内敌人移速降低40% | 5 | 1.5/s |
| HRBP | 80 HC | 辅助Buff | 打鸡血周围1格内塔攻速+20%,每秒消耗其额外精力 | 0 | - |
#### 3. 敌人波次系统
| 怪物名称 | 血量 | 移速 | KPI扣减 | HC奖励 | 特性 |
|----------|------|------|---------|--------|------|
| 校招应届生 | 30 | 快 | 2% | 10 HC | 成群结队,数量多 |
| 35岁老员工 | 150 | 慢 | 8% | 30 HC | 经验护盾无视前3次攻击 |
| 职业碰瓷王 | 80 | 中等 | 5% | 20 HC | 死亡时扣玩家20 HC劳动仲裁 |
| BOSS: 空降VP | 800 | 慢 | 30% | 150 HC | 技能组织架构调整随机摧毁1个防御塔 |
**波次设计共6波**
- 第1波10只校招应届生
- 第2波8只校招应届生 + 3只35岁老员工
- 第3波周报结算 → 5只35岁老员工 + 3只职业碰瓷王
- 第4波12只校招应届生 + 2只职业碰瓷王
- 第5波6只35岁老员工 + 3只职业碰瓷王
- 第6波Boss周报结算 → 1只空降VP + 4只35岁老员工
#### 4. 周报结算系统每3波触发
- 触发时机第3波结束后、第6波开始前
- 界面全屏弹出10秒倒计时
- 玩法从3个随机互联网黑话中选择1个正确答案
- 结果:
- 选对随机获得50~100 HC 或 全场塔精力补满
- 超时/选错全场塔禁锢3秒
**黑话题库(示例)**
```
赋能 / 对齐 / 颗粒度 / 打通 / 闭环 / 抓手 / 生态 / 赛道 / 护城河 / 降维打击
底层逻辑 / 顶层设计 / 方法论 / 复盘 / 迭代 / 串联 / 拉齐 / 落地 / 沉淀 / 跑通
MVP / ROI / KOL / ToB / ToC / 私域 / 增量 / 存量 / 心智 / 势能
```
#### 5. 摸鱼回复机制
- 塔不攻击时精力自动恢复:+5%/s
- 点击塔消耗10 HC购买"瑞幸咖啡":瞬间补满精力
#### 6. 失败结算界面
仿钉钉/飞书通知样式弹窗:
```
[系统通知] 鉴于您近期的表现未能达成业务闭环,经公司管理层研究决定,
对您进行"毕业"处理。请于5分钟内归还工牌不要带走办公文具。
[领取 N+1] (重新开始) [申请仲裁] (返回主页)
```
#### 7. 胜利结算界面
仿绩效评级样式,显示:
- 最终KPI分数
- 消灭怪物总数
- 剩余HC
- 绩效评级S/A/B/C
---
### 重要功能 (P1)
#### 8. 怪物头顶语录飘字
- 怪物头顶随机显示大厂黑话语录
- 100条随机语录池
- 每个怪物显示1条淡入淡出动画
#### 9. Next.js 主页集成
- 主页展示游戏封面、游戏名、开始按钮
- 游戏画面占据主页核心区域
- 飞书/钉钉质感的极简扁平化UI
---
## 3. 视觉设计规范
### 整体视觉风格
- 扁平化设计2D像素艺术风格
- 色调:灰蓝色调("格子间"氛围),配合荧光绿(代码)、橙红(警报)
### 主题配色方案
- 主色Primary`#1D2D44`(深夜格子间蓝)
- 辅助色Secondary`#3E5C76`(办公室灰蓝)
- 强调色Accent`#FF4E00`(加班警报红)
- 成功色:`#22C55E`KPI绿
- 背景色Background`#0A1628`(深夜办公室)
- 文字色Text`#E2E8F0`
### UI质感参考
- 飞书/钉钉的极简扁平化UI
- 系统通知样式的弹窗
- 进度条组件KPI条、精力条
---
## 4. 终端与体验策略
- 终端范围:`adaptive`
- 判定来源默认策略优先PC兼容平板
- 实施策略:`responsive_layout`,以 1280×720 为基准尺寸,响应式缩放
---
## 5. 非功能需求
### 性能要求
- 60fps流畅运行Phaser.js Canvas 渲染)
- 对象池管理怪物和子弹避免GC卡顿
- 最多同时30个怪物实体
### 技术栈
- 游戏引擎Phaser.js 3.x纯前端npm安装
- 集成方式Next.js Page 中直接挂载 Phaser Game 实例
- 无后端依赖,纯客户端运行
### 兼容性
- Chrome 90+, Firefox 88+, Safari 14+
- 最低分辨率1024×600
---
## 6. 项目计划
### MVP 范围(第一期)
1. Next.js 主页 + 游戏入口
2. 第一关完整实现(地图+6波怪物+4种塔
3. 周报结算系统
4. 失败/胜利结算界面
5. 怪物头顶飘字语录
### 里程碑
- M1游戏基础框架 + 地图渲染 + 路径系统
- M2防御塔系统 + 怪物系统 + 战斗逻辑
- M3周报结算 + 特殊技能 + UI完善
- M4主页集成 + 语录库 + 结算界面
---
## 7. 开放问题
- 音效资源是否需要自制音效当前先用CSS音效模拟或跳过
- 存档系统:是否需要保存游戏进度(当前不做)
- 第二关:暂不规划,第一关完善后迭代