最近我非常关注敏捷方法论。我在Martin Fowler的网站上读到的一些文章至少给我的印象是无可挑剔的,所以我想知道哪些敏捷实践最适合游戏开发,尤其是对于预算小、规模小且经验不足的团队项目(这里加粗是因为它真的很重要)。
像重构这样的概念看起来可以与小而经验不足的团队完美结合。"拥抱变化"的想法也与那些思路不断变化的经验不足的团队相融合。但是TDD等东西会有些棘手。
例如测试与Direct3D互动的类很难且不太优秀。这没有多大意义。
如果您能列出一些在游戏开发中有意义的实践,我将不胜感激,尤其是那些有助于艺术制作组织的实践。现实案例的引用也是另一个加分项。
提前感谢您。
编辑--
此外,我的团队由3个人组成:一名程序员、一名图形设计师和一名程序员/图形设计师的组合。我们没有客户,所以必须自己做出所有决策。
我在Fowler的一篇文章中读到,敏捷有点依赖于开发人员与客户之间的互动,但他还提到,不愿意遵循敏捷方法论的客户仍然可以通过敏捷开发得到良好的服务(这篇文章叫新方法论)。那么,这如何适用于我的情况呢?
结论--
我认为StackOverflow上的问题也可以帮助其他人,因此我会在这里总结一下我的想法。
通过使用模拟对象,即使是难以测试的元素,例如图形界面及其与客户端类的关系,也可能是可管理的。
例如,不是让接口的每个客户端在许多条件下真正测试其使用(例如全屏/窗口模式切换,几乎影响游戏中的所有内容),而是可以针对一个看起来与原始类别行为相同的模拟进行测试,并额外测试该模拟对象与原始对象的一致性。
这样,慢部分(实际上打开窗口和其他东西)只在检查模拟对象的实现一致性时执行一次,其他所有操作都在模拟器上平稳运行。【感谢 Cameron】
采用 BDD 思维方式 有助于缓解对单元完整测试的偏执追求,“取代”测试并规范化实际行为,而不是测试被挤压的单元,在许多情况下,让它们不经过测试(或者您更喜欢间接测试),以避免过多的一对一测试与单位(类,方法,变量等)的匹配,这会增加测试(现在是“规范化”)的脆弱性。【感谢 Kludge】