@
teaguexiao 为了让 AI 能够直接基于此文档进行开发(如编写脚本、搭建场景逻辑及配置数值表),这份**《木材大亨:H5 工业自动化版》完整技术设计文档 (GDD)** 进行了深度技术细化,涵盖了实体定义、状态机逻辑、精确公式及 UI 架构。
---
# 🪵 《木材大亨》 H5 技术开发设计文档 (V1.0)
## 1. 项目基调与技术规范
* **游戏类型**:Arcade Idle (动作放置)。
* **呈现方式**:2.5D 等轴测 (Isometric)。
* **开发平台**:H5 (兼容微信小游戏/手机浏览器),竖屏 9:16 。
* **性能目标**:Draw Call < 80, 内存占用 < 200MB [来源:技术检查表]。
* **核心循环**: 手动采伐 -> 自动化升级 -> 加工增值 (1:3:10) -> 订单交付 -> 元养成 (比兹商店)。
---
## 2. 核心数值体系 (AI 配置表基准)
### 2.1 资源价值表 (Soft Currency)
| 物品 ID | 资源名称 | 基础售价 | 加工深度 | 获取来源 |
| :--- | :--- | :--- | :--- | :--- |
| `ITEM_LOG` | 原始原木 | $1 | 0 | 林地采伐 |
| `ITEM_DEBARKED` | 去皮木材 | $3 | 1 | 去皮机产出 |
| `ITEM_PLANK` | 精细板材 | $10 | 2 | 分割机产出 |
### 2.2 升级与成本曲线公式
AI 应根据以下公式计算所有非线性消耗:
* **机器/工人等级费用**: $Cost(L) = BaseCost \times 1.15^{(L-1)}$
* **机器处理时间**: $Time(L) = Max(0.5, BaseTime \times 0.95^{(L-1)})$ (最小 0.5s)
* **比兹升级费用 (指数段)**: $BizCost(L) = BaseBiz \times 1.5^{(L-1)}$
---
## 3. 场景实体与逻辑逻辑 (Entity-Component-System)
### 3.1 实体:伐木林区 (Forest Area)
* **状态机**: `IDLE` (待采伐) -> `BEING_CUT` (采伐中) -> `STUMP` (树桩/再生中) -> `REGROWING` (生长中)。
* **逻辑**:
* 若判定范围内有角色且触发 `ATTACK` 动作,每秒减少 `Tree_HP`。
* `Tree_HP <= 0` 时,触发 **Squash & Stretch** 效果并掉落 `ITEM_LOG`。
* 再生逻辑:`STUMP` 状态停留 `15s` (可通过升级缩短) 后恢复。
### 3.2 实体:生产机器 (Production Machines)
* **共有属性**: `Input_Slot` (输入槽), `Processing_Timer` (计时器), `Output_Slot` (输出槽)。
* **实体 A (去皮机)**: 输入 `ITEM_LOG`,耗时 $T_1$,产出 `ITEM_DEBARKED`。
* **实体 B (分割机)**: 输入 `ITEM_DEBARKED`,耗时 $T_2$,产出 `ITEM_PLANK`。
* **逻辑**: 若 `Output_Slot` 达到上限(堆叠高度),机器进入 `PAUSE` 状态,上方显示红色气泡。
### 3.3 实体:AI 搬运工 (Logistics Unit)
* **行为决策树 (Behavior Tree)**:
1. 检查 `Destination` (目标仓库/机器输入) 是否有空位。
2. 寻找最近的 `Source` (掉落物/机器输出) 获取资源。
3. **物理堆叠逻辑**: 获取物品时,物品 Y 轴坐标递增,挂载在搬运工背部的 `Stack_Container` 节点。
4. 负重上限触发:达到 `Max_Carry` 后,路径寻路至交付点。
---
## 4. 系统功能模块
### 4.1 订单系统 (Order System)
* **触发器**: 卡车每 60s 抵达车站(若前一单已完成)。
* **订单生成**: 随机需求 (A 数量 * ITEM_LOG + B 数量 * ITEM_PLANK)。
* **奖励逻辑**: 金币 + **比兹点数 (Biz Points)**。比兹点数用于 `META_STORE` 永久升级。
### 4.2 第一张地图:任务节点 (Milestones)
| 节点 | 任务目标 | 奖励内容 | 引导点击气泡 |
| :--- | :--- | :--- | :--- |
| 1 | 手动收集 5 根原木 | $20 | "点我砍树!🪓" |
| 2 | 雇佣 1 名伐木工 | 解锁去皮机位 | "雇人砍树 ($20) 👷" |
| 3 | 解锁分割机 | $200 | "致富终点站!💎 ($500)" |
| 4 | 余额达到 $5,000 | 地图 2 门票 | "购买新工厂" |
---
## 5. UI/UX 与视觉表现 (AI 特效指令)
### 5.1 组件层级
1. **HUD 层**: 顶部金币/比兹余额(带缩放动效)、任务指示器。
2. **交互层**: 机器上方的“升级/购买”气泡按钮(半透明,呼吸灯效果)。
3. **浮动通知**: 金币弹出 (+10) 伴随向上漂移及淡出。
### 5.2 金币飞入特效 (VFX Logic)
* **发射点**: 车站卡车位置。
* **路径**: 贝塞尔曲线 (Bezier Curve),带 0.2s 随机延迟分散发射。
* **终点**: 顶部金币图标。
* **碰撞反馈**: 金币触碰图标瞬间,图标触发 `Scale(1.2, 1.2)` 震动并播放“叮”音效。
---
## 6. 混合变现逻辑 (Ad Triggers)
* **双倍利润**: 订单交付时,弹窗调用 `showRewardedVideo()`,成功后 `Reward * 2`。
* **狂暴砍伐**: 点击林区随机出现的“电锯”图标,看广告获得 60s 全员 3 倍速度。
* **缺口补齐**: `Current_Money < Upgrade_Cost` 且 差距 < 20% 时,升级按钮变更为“看广告补齐”。
---
## 7. H5 性能优化指令 (Technical Checklist)
* **合图处理**: 所有 2.5D 模型贴图合并为单张 `Atlas_Map1.webp` [来源:性能检查表]。
* **对象池 (Object Pooling)**: 金币特效、木屑粒子、掉落木材必须循环使用 `Pool` 容器,严禁动态 `Destroy`。
* **渲染排序**: 使用 `Order by Y-coordinate` 动态处理角色穿过机器前后的显示层级。
---
**AI 开发提示**:请优先实现 `Behavior Tree` 搬运逻辑与 `Numerical Controller` 数值控制器,地图 1 初始数据参考 `2.1 资源价值表`。 这是我跟 AI 聊的 GDD 文档,是不是太简略,每一个点应该细化成一个文档?
