- 将开发过程/归档文档迁至 docs_dev/(development_plan、certification_checklist、 已废弃的 Cocos 架构草案 archived_cocos_architecture_draft),并修正全部跨引用 - 新增根 README.md(项目介绍,暂定名 Spellforge)与 docs_dev/README.md 索引 - 新增 docs_dev/doc_code_audit_2026-07-20.md:文档 vs 代码交叉审计报告(经 6 路对抗性复核,零证伪),含「代码更优 / 文档更优 / 中性」判定汇总 - 在 docs/ 各设计·技术·机制文档就地加「实现现状 (2026-07-20)」callout: 追认代码更优实现(纯 JSON 数据驱动、SpatialGrid-only 碰撞、MultiMesh 单档、 存档选最新槽等),订正陈旧/矛盾内容(.tres→JSON、Boss HP/阈值/波次、EventID、 StatusManager.apply 签名等),标记未实现功能(C# 热路径、Mana、元进展、 Boss 阶段/抗性、Tutorial、轨迹/连锁/催化等)与 latent bug(CoreFeatureTag 位运算、 pierce 空操作、MAX_OPS 不读 cpu_limit) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
魔法工匠:开发使用手册 (Developer & Designer Handbook)
适用人群:策划、美术、程序、QA
引擎版本:Godot 4.6 (Mono)
最后更新:2026-06-05
目录
| 文档 | 适合 | 内容 |
|---|---|---|
| 01 快速上手 | 全员 | 克隆→启动→首次运行 |
| 02 内容创作指南 | 策划 / 程序 | 法术 / 敌人 / 波次 / Boss / 共鸣 |
| 03 资源替换指南 | 美术 / 程序 | 特效 / 精灵 / 音效 / UI 图片 |
| 04 本地化工作流 | 本地化 / 策划 | .po 维护、新增语言、字符串规范 |
| 05 发布标准清单 | 全员 / PM | Steam / Switch 认证、发布流程 |
| 06 法术编辑器 | 策划 / 开发 | 法术编辑器 meta 字段速查 |
| 07 游戏设计器 | 策划 / 美术 / 开发 | ⭐ 一站式可视化工具:法术/敌人/波次/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/ ← 架构 / 实现方案
│ └── handbook/ ← 本手册(你在这里)
└── docs_dev/ ← 开发计划 / 认证清单 / 归档草案
关键 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) |