最近我对敏捷方法有了很大的兴趣。我在马丁·福勒( Martin )的网站上看到的一些论文,至少在我看来毫无瑕疵,我想知道哪些敏捷实践最适合于游戏开发,尤其是对于小预算、小规模和缺乏经验的团队项目(大胆因为它非常重要)。
像重构这样的概念看起来完全可以与一个小而缺乏经验的团队结合在一起。“拥抱改变”的理念也与经验不足的团队结合在一起,他们的想法一直在扭曲和转变。但是,像TDD这样的事情是相当有问题的。
例如,测试一个与Direct3D交互的类是困难的,也是次优的。这没什么意义。
如果你能列举一些对游戏开发有意义的实践,我会非常感激的。协助组织艺术作品者优先。引用真实世界的案例是另一个好处。
提前谢谢。
编辑--
另外,我的团队由3人组成:一名程序员、一名图形设计师和一名程序员/图形设计师组合。我们没有客户,所以我们必须独自做所有的决定。
我在福勒的一篇文章中读到,敏捷某种程度上取决于开发人员与客户之间的交互,但他也提到,敏捷开发仍然可以很好地服务于不愿意坚持敏捷的客户(这篇文章被称为新方法)。这怎么适用于我的案子?
结论-
我认为在StackOverflow的问题也可以帮助其他人,所以我将尝试在这里总结我的想法。
发布于 2010-10-14 04:17:49
我建议您试用VersionOne (www.versionone.com)。对于在单个项目上工作的小型团队来说,VersionOne是免费的,并且有用于敏捷状态跟踪和项目规划的易于使用的工具。他们的网站还链接到对各种敏捷开发方法的解释。
敏捷开发有不同的风格;我建议看看极限编程(XP)模型,作为一个很好的例子:http://www.extremeprogramming.org/map/project.html
敏捷开发与实际编程实践一样关注项目规划和需求跟踪。
这样做的目的是确保您记录需要开发的游戏功能(作为“用户故事”),给出一个(非常粗略的)估计每个功能将花费多长时间,并确定哪些是重要的。为每个版本列出一小部分时间,并安排您可以在这段时间内发布的最重要、最便宜的功能。该系统确保稳步向前发展,保护您不受不断、不可预测的优先级更改的影响,并确保您不会开发出无法工作的庞大的单块代码库。
关于测试驱动的开发,我认为Cameron和Andrew的评论都是正确的。如果抽象出图形API调用之类的内容,则可以进行更多的单元测试。
发布于 2010-10-14 04:45:27
你肯定想看看极限编程(XP),看看肯特贝克的https://rads.stackoverflow.com/amzn/click/com/0321278658
但是,您可以做的最有用的事情是对行为驱动发展进行一些研究,这基本上是测试驱动开发所做的。它将重点从测试转移到规范上。你不用担心你的程序会表现出什么样的行为。
所以说你不打算使用TDD,或者BDD,这完全是疯狂的说法。敏捷开发的核心概念之一是通过测试/规范开发您的软件。您必须摆脱测试/规范正在测试您的类的思维方式。这不是真正的目的。它们用于描述应用程序应该展示的行为,然后使用该测试/规范将行为写入应用程序。
你可能会写这样的东西
Describe Startup
it "should display a welcome screen" do
game = Game.new
game.start
game.output_buffer.should match("Welcome")
end
end
然后你去写代码来实现它。你描述你想要的代码,然后你去写它。它允许您以小块的方式编写代码,最重要的是,当其他人捡起您的代码时,他们可以运行测试,并确保一切正常运行。当他们想要添加新的功能时,他们使用相同的过程,所以现在当您返回到代码时,您可以相信他们的代码也能工作。
发布于 2010-10-17 15:42:56
敏捷/精益方法(如Scrum、XP和Kanban )自2003年以来已成功地应用于游戏开发。
有许多博客,包括:http://blog.agilegamedevelopment.com/
还有一本书。请参阅上面博客中的图书链接。
https://stackoverflow.com/questions/3929962
复制相似问题