# 魔法工匠:开发使用手册 (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)` |