Files
spellforge/docs/handbook/README.md
T
2026-07-20 10:56:52 +08:00

66 lines
3.2 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.
# 魔法工匠:开发使用手册 (Developer & Designer Handbook)
> **适用人群**:策划、美术、程序、QA
> **引擎版本**Godot 4.6 (Mono)
> **最后更新**2026-06-05
---
## 目录
| 文档 | 适合 | 内容 |
|:---|:---|:---|
| [01 快速上手](01_quickstart.md) | 全员 | 克隆→启动→首次运行 |
| [02 内容创作指南](02_content_authoring.md) | 策划 / 程序 | 法术 / 敌人 / 波次 / Boss / 共鸣 |
| [03 资源替换指南](03_asset_replacement.md) | 美术 / 程序 | 特效 / 精灵 / 音效 / UI 图片 |
| [04 本地化工作流](04_localization.md) | 本地化 / 策划 | `.po` 维护、新增语言、字符串规范 |
| [05 发布标准清单](05_release_guide.md) | 全员 / PM | Steam / Switch 认证、发布流程 |
| [06 法术编辑器](06_spell_editor.md) | 策划 / 开发 | 法术编辑器 meta 字段速查 |
| [07 游戏设计器](07_game_designer.md) | 策划 / 美术 / 开发 | **⭐ 一站式可视化工具**:法术/敌人/波次/Core/平衡全部表单配置,零代码 |
---
## 项目目录快览
```
daihaoRogue/
├── scenes/
│ └── main/combat_s2.tscn ← 主场景(唯一可玩入口)
├── scripts/
│ ├── autoloads/ ← 全局单例(30+ Autoload
│ └── domain/
│ ├── spell_system/ ← 法术虚拟机
│ └── combat/ ← 游戏循环状态机
├── translations/ ← zh_CN / zh_TW / en / ja .po
├── audio/sfx/ ← 音效放这里(目前占位蜂鸣)
├── assets/sprites/ ← 精灵图放这里(目前几何占位)
└── docs/
├── design/ ← 游戏设计文档
├── mechanics/ ← 机制深度文档
├── technical/ ← 架构 / 实现方案
├── plan/ ← 开发计划 / 认证清单
└── handbook/ ← 本手册(你在这里)
```
---
## 关键 Autoload 速查
| Autoload | 职责 | 常用入口 |
|:---|:---|:---|
| `WandPreset` | 法术/Core 内置预设 | `make_spark_bolt()`, `make_wand_basic()` |
| `SpellEvaluator` | 法术虚拟机(编译+执行) | `compile_wand(core, nodes)`, `execute_compiled(compiled, caster_id, pos)` |
| `SpellRegistry` | 法术查询表 | `get_spell("action_fire_bolt")` |
| `WaveManager` | 波次生成/配置 | `WAVE_CONFIG[0..19]` |
| `EnemyManager` | 敌人 SoA 管理 | `spawn_enemy(pos, hp, type)` |
| `BulletManager` | 子弹 SoA 管理 | `spawn_bullet(...)` |
| `VFXManager` | 特效池 | `play("hit_spark", pos)` |
| `AudioManager` | 音效池 | `play("hit", pos)` |
| `SettingsManager` | 难度 / 音量 / 语言 | `difficulty_name()`, `enemy_hp_mult()` |
| `EndlessRecords` | 本地排行榜 | `add_record(wave, elapsed, kills)` |
| `ProfileManager` | A/B 槽局内存档 | `save_run()`, `load_run()` |
| `Locale` | 语言切换 | `set_locale("en")` |
| `StatusManager` | 状态效果(DoT 等) | `apply(entity_id, StatusID.BURN, 2)` |
| `ZoneManager` | 地面效果区域 | `spawn_zone(cx, cy, r, status_id, dur, tick, owner)` |
| `MinionManager` | 召唤物 | `spawn_minion(def_dict, owner_id, pos)` |