大家好,

我已经花了十年时间在 Unity 大型项目和多人架构上工作,现在我想要分享在最近一段时间里我通过的工作流转变,它让我避免了一些麻烦。无论项目从什么样的开始,每个项目都会变成一个复杂的依赖关系网络。我之前一直认为,一个良好的设计文档能避免这一问题,但是只有一份设计文档是不够的。它只是写了一份功能性需求列表,但它没有指明代码应该如何结构化。

最近我改用 Spec-Driven Development,这简化了我代码的质量,特别是当项目规模较小的时候。虽然它会在初期阶段造成一些后果,但是它确实避免了许多因“欠款”而产生的问题。下面是我的 Spec-Driven Development 在 Unity 中的实践方法:

  1. Specc 是源代码的绝对真实性 Specc 写好之前,不允许写一行 Unity 脚本。如果我正在构建一个物品系统,Specc 将列明精确的输入、输出和状态修改。不允许直到 Specc 合理的写好为止。
  2. Unity 如同 View处理的最大问题在于把核心的业务逻辑写进 Unity 组件了。现在,如果 Specc 决定非玩家角色状态机,那么我会用纯 C# 完全独立于 Unity 引擎完成。Unity 只需要完成这几个步骤:读取状态和渲染正确的动画或位置。这使得单元 测试非常容易。
  3. 用 AI 检查架构验证使用 AI 来写代码确实是有问题的,而不是让 AI 来直接写代码,我会用我写好的 Specc 和代码结构喂给 AI 并问它: Specc 是否有任何被违反,是否存在潜在的依赖关系?使用它作为一个自动架构检查器,对我来说节省了无数麻烦。

结果:通过 Specc 的约束,我新增的功能不再会对老的功能造成影响,因为核心的逻辑完全独立于引擎循环。

我已经写了更多有关此主题的技术报告,包括我使用的具体模式和 AI 流程,请访问我的工程博客:https://tanujarora.in/blog/2026-04-15-spec-driven-development-in-game-dev-a-complete-guide/

我想听听以下中到大型项目的开发者如何确保好代码的质量?你们是使用严格的测试驱动开发方法?还是某些代码模式?甚至是完全不同的方法?我们应该开始互相学习。