Godot 编辑器内容校验插件:把错误挡在提交之前
很多 Godot 项目的第一个内容质量问题,不是代码崩溃,而是资源和场景悄悄变脏。比如一个怪物场景忘了挂碰撞层,一个 UI 场景里按钮没有命名,一个角色 Resource 的技能 id 填错,编辑器里看起来只是“小问题”,但进入内测包后会变成无法复现的线上缺陷。
tag
很多 Godot 项目的第一个内容质量问题,不是代码崩溃,而是资源和场景悄悄变脏。比如一个怪物场景忘了挂碰撞层,一个 UI 场景里按钮没有命名,一个角色 Resource 的技能 id 填错,编辑器里看起来只是“小问题”,但进入内测包后会变成无法复现的线上缺陷。
存档问题通常不是写文件,而是几年后还能读 Godot 做单机、买断制、轻联网项目时,本地存档非常关键。很多原型直接把字典转 JSON 写进 ,能存能读,看起来就完成了。真正上线后,问题会变复杂:版本更新后字段变了怎么办,写到一半断电怎么办,玩家改文件怎么办,云存档冲突怎么办,多角色 profile 怎么隔离,调试...
配置表是客户端和内容团队的接口 游戏客户端离不开配置表:道具、技能、怪物、关卡、任务、商店、掉落、文本。Godot 项目早期可能直接用 Resource 手填,或读一个 JSON。内容多起来后,策划更习惯 CSV、Excel 或在线表格。如何把这些表稳定导入 Godot,并在运行时安全使用,是客户端工程的重要部分。
任务不是一条数组,而是一张状态图 简单任务可以是“接取、完成、领奖”。项目复杂后,任务会有前置条件、分支对话、收集目标、击败目标、区域触发、限时阶段、奖励选择、后续任务。用一条数组或几个布尔值很快会不够。Godot 项目可以用 Resource 表达任务节点,用编辑器工具或 GraphEdit 做任务图编辑。
技能系统不要只写在角色脚本里 Godot 做动作、RPG、肉鸽或战术游戏时,技能系统很快会膨胀。一个技能要处理输入、冷却、资源消耗、目标选择、施法条件、命中效果、Buff、投射物、动画、音效、特效和 UI。原型里把这些都写在角色脚本里,前几个技能很快;到了几十个技能,角色脚本会变成不可维护的巨大文件。
路径引用很方便,也很脆弱 Godot 场景和 Resource 天然使用路径引用。很直观,编辑器移动文件时也能更新一部分引用。但游戏业务数据里,如果所有道具、技能、任务都用路径当 ID,后期会遇到麻烦:文件改名导致存档找不到,配置表引用路径太长,热更新包路径变化,内容人员复制资源忘记改引用。