V2EX Keppel
 Keppel 最近的时间轴更新
Keppel

Keppel

V2EX 第 372959 号会员,加入于 2018-12-26 11:41:07 +08:00
根据 Keppel 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
Keppel 最近回复了
做的这些应用是自己的想法,还是借鉴的?
@ybbfie 这个报名了
@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 文档,是不是太简略,每一个点应该细化成一个文档?
@kuhung 美术资源之类的非代码相关的是生成的,还是去开源资源站找的?
@NoobNoob030 像美术资源之类的也是 AI 生成的吗?
@jackOff 目前尝试了几次感觉是的, 我对游戏开发流程一窍不通,体验下来加上搜索一些内容才知道一点大概内容,有点难
@yvyvyv 比如微信小游戏那种,放置类的,这种量级的
感谢,bHVrYW55eHRAZ21haWwuY29t
3 月 25 日
回复了 Keppel 创建的主题 生活 怎样才能彻底戒烟?
@yungyu 彻底不抽了
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1599 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 11ms UTC 16:30 PVG 00:30 LAX 09:30 JFK 12:30
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86