# 02 GDD（游戏设计总文档）

## 2.1 产品概述

- 类型：废土生存 / 放置式资源管理 / 轻探索 / 文字叙事
- 视角与表现：以 UI 与文本驱动为主，辅以轻量图标与状态反馈
- 核心差异点：
  - “时间推进 + 状态压力”让所有决策可量化
  - “地点 = 内容容器”，不同地点有独立的资源结构/事件池/敌人池/任务触发
  - 数据驱动内容体系，便于持续运营式更新（即使是单机）

## 2.2 设计原则（约束全项目）

- 数据驱动优先：内容（物品/配方/地点/敌人/事件/任务）尽量不写死在逻辑层
- 边界清晰：系统之间通过统一的“消耗/产出/条件/结果”接口组合
- 可解释：数值与概率尽量可在 UI 上给到提示（风险等级、预期收益范围、影响因素）
- 可扩展：新增内容不应引发代码级联改动，最多新增配置与少量通用规则
- 可测试：每个系统都应提供可验证的输入输出与可重放的随机种子

## 2.3 核心循环（系统级）

```mermaid
sequenceDiagram
  participant P as 玩家
  participant UI as 客户端UI
  participant SIM as Simulation(时间/状态)
  participant CT as Content(配置与表)
  participant EVT as Event(事件引擎)
  participant CMB as Combat(战斗引擎)
  participant SAV as Save(存档)

  P->>UI: 选择地点/动作
  UI->>SIM: 请求推进时间(Δt)
  SIM->>CT: 读取状态消耗/刷新规则
  SIM->>EVT: 抽取事件(按地点/权重/条件)
  EVT-->>UI: 返回事件(文本/选项/结果预览)
  alt 触发战斗
    UI->>CMB: 初始化战斗(玩家/敌人/距离/武器)
    CMB-->>UI: 回合结果/日志
  end
  UI->>SAV: 自动存档/快速保存
```

对应源文件：[architecture-core-loop.mmd](./diagrams/architecture-core-loop.mmd)

## 2.4 时间与节奏

### 2.4.1 时间粒度

- 基础粒度：分钟（UI 显示到分钟）
- 推进来源：
  - 被动流逝：玩家停留、整理、观察等
  - 行为消耗：制作、采集、移动、休息、战斗
  - 加速：长行为用“进度条 + 快速推进”呈现，避免等待

### 2.4.2 节奏设计（建议）

- 早期（0–3 天）：生存建立期，强调“水/食物/基础工具”
- 中期（3–15 天）：系统展开期，强调“制作链与地图推进”
- 后期（15+ 天）：挑战与叙事收束，强调“灾害、精英敌人、关键任务抉择”

## 2.5 玩家状态系统（总览）

状态分三类：

- 生存状态：饥饿、口渴、精力、生命、体温/感染（可选）
- 精神与污染：理智、辐射（或污染值）
- 成长属性：力量/敏捷/智力/感知/幸运等（决定阈值、战斗与事件成功率）

关键要求：

- 状态都有“自然消耗曲线”
- 状态变化会触发“阈值效果”（软惩罚优先，硬惩罚谨慎）
- 状态变化必须能被日志/提示解释（为什么掉这么快、怎么恢复）

## 2.6 物品与背包（总览）

- 物品分类：食物、材料、工具、武器、护甲、弹药、任务物品、消耗品
- 容量设计：以“格子/体积/重量”三者之一为主（建议体积），并提供容器（箱子/基地仓库）
- 耐久：工具/武器/护甲具备耐久；耐久影响效率或失效
- 可堆叠：材料、弹药、部分消耗品可堆叠；任务物品通常不可堆叠

## 2.7 制作与科技树（总览）

### 2.7.1 制作台与技能域

- 制作台类别：手工、工坊、锻造、烹饪、过滤/净水、医疗、科研
- 制作输出：新物品、设施升级、配方解锁、状态变化（如烹饪恢复）

### 2.7.2 科技树原则

- 以“能力解锁”为主，不以“数值膨胀”为主
- 每条科技都明确：
  - 解锁哪些配方/地点能力/装备槽
  - 降低哪些成本（时间/材料/损耗）
  - 带来哪些新风险（辐射副作用/更高敌人强度）

## 2.8 地图与地点（总览）

地图是“地点图（Graph）”，地点之间通过路径连接：

- 路径属性：距离/时间成本、风险等级、可用交通方式（步行/车/地铁隧道等）
- 地点属性：
  - 资源点：可采集资源与刷新规则
  - 垃圾点：高随机、偏材料
  - 敌人池：按权重与条件刷新
  - 事件池：通用+地点专属+任务事件
  - 设施：交易/休息/制作/治疗/情报

## 2.9 事件系统（总览）

事件是叙事与玩法的粘合剂，要求可配置、可组合、可追踪：

- 触发方式：进入地点/停留时间/状态阈值/拥有物品/完成任务
- 表现：文本 + 选项（0–4 个）
- 结果：消耗/获得/状态变化/战斗/解锁/标记
- 结果应支持：
  - 固定结果
  - 概率结果（基于属性/装备修正）
  - 延迟结果（标记到未来某天或下一次进入）

## 2.10 战斗系统（总览）

定位：轻量战斗，不喧宾夺主；战斗是“风险的一种表现形式”。

建议采用“距离 + 回合选项”的战斗模型：

- 关键变量：距离、武器射程、命中率、护甲减伤、体力/精力消耗、逃跑概率
- 玩家选项：攻击、防御、前进、后退、逃跑、技能（可选）
- 结果反馈：清晰的战斗日志 + 对状态与耐久的影响解释

## 2.11 任务与叙事（总览）

任务系统用于：

- 引导玩家穿过系统学习曲线
- 解锁新区域/新系统
- 提供长期目标与世界观信息

任务类型：

- 主线：推动核心区域与关键真相
- 支线：地点故事、NPC 委托、资源链解锁
- 动态任务：基于当前状态（缺水/高辐射/缺弹药）生成的生存委托（可选）

## 2.12 灾害与世界压力（总览）

灾害是“节奏调节器”：

- 类型：沙尘暴、酸雨、辐射风暴、虫潮、断水期等
- 作用方式：
  - 改变某段时间的消耗曲线（更渴/更冷）
  - 改变地点风险与收益（资源更少、敌人更强）
  - 提供临时奖励窗口（例如灾后遗留物）

## 2.13 存档与可重玩

- 自动存档：关键节点（回基地、完成任务、重大事件后）
- 快速保存：手动触发（用于策略试错）
- 多档位：支持本地多槽与云端绑定（可选）
- 可重玩策略：事件池权重、遭遇表、探索地图使用随机种子，保证“可控随机”

## 2.14 UI/UX 总原则

- 始终告诉玩家“为什么”：状态变化、失败原因、事件概率来源
- 重要信息常驻：核心生存状态、背包容量、当前地点风险提示
- 复杂信息分层：高级计算放在悬浮/详情面板，不挤占主界面
- 对移动端友好：触控目标足够大，避免长列表滚动卡死

