首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪些敏捷实践与游戏开发兼容?

哪些敏捷实践与游戏开发兼容?
EN

Stack Overflow用户
提问于 2010-10-14 03:55:13
回答 6查看 474关注 0票数 10

最近我对敏捷方法有了很大的兴趣。我在马丁·福勒( Martin )的网站上看到的一些论文,至少在我看来毫无瑕疵,我想知道哪些敏捷实践最适合于游戏开发,尤其是对于小预算、小规模和缺乏经验的团队项目(大胆因为它非常重要)。

像重构这样的概念看起来完全可以与一个小而缺乏经验的团队结合在一起。“拥抱改变”的理念也与经验不足的团队结合在一起,他们的想法一直在扭曲和转变。但是,像TDD这样的事情是相当有问题的。

例如,测试一个与Direct3D交互的类是困难的,也是次优的。这没什么意义。

如果你能列举一些对游戏开发有意义的实践,我会非常感激的。协助组织艺术作品者优先。引用真实世界的案例是另一个好处。

提前谢谢。

编辑--

另外,我的团队由3人组成:一名程序员、一名图形设计师和一名程序员/图形设计师组合。我们没有客户,所以我们必须独自做所有的决定。

我在福勒的一篇文章中读到,敏捷某种程度上取决于开发人员与客户之间的交互,但他也提到,敏捷开发仍然可以很好地服务于不愿意坚持敏捷的客户(这篇文章被称为新方法)。这怎么适用于我的案子?

结论-

我认为在StackOverflow的问题也可以帮助其他人,所以我将尝试在这里总结我的想法。

  • 通过使用模拟对象,即使是难以测试的元素,如图形接口及其与客户端类的关系,也是可以管理的。 例如,与其让界面的每个客户端在许多条件下真正测试其使用情况(例如,全屏/窗口模式切换,这几乎影响到游戏中的所有内容),还可以在对它们来说似乎与原始类的行为相同的模拟上进行测试,另外还可以测试模拟对原始对象的保真度。 这样,慢的部分(实际上是打开窗口和其他东西)只在检查模拟对实现的保真度时完成一次,其他的一切都在模拟上平滑地运行。[感谢卡梅伦]
  • BDD心态有助于缓解偏执倾向,用实际行为规范代替“测试”,而不是压缩单元,在许多情况下,这些单元最好让未经测试(或者只是间接测试,如果你喜欢这样的话)来避免过多的一对一测试与单元(类、方法、变量等)奇偶性,这增加了测试(现在的“规范”)的脆弱性。[感谢传说]
EN

回答 6

Stack Overflow用户

发布于 2010-10-14 04:17:49

我建议您试用VersionOne (www.versionone.com)。对于在单个项目上工作的小型团队来说,VersionOne是免费的,并且有用于敏捷状态跟踪和项目规划的易于使用的工具。他们的网站还链接到对各种敏捷开发方法的解释。

敏捷开发有不同的风格;我建议看看极限编程(XP)模型,作为一个很好的例子:http://www.extremeprogramming.org/map/project.html

敏捷开发与实际编程实践一样关注项目规划和需求跟踪。

这样做的目的是确保您记录需要开发的游戏功能(作为“用户故事”),给出一个(非常粗略的)估计每个功能将花费多长时间,并确定哪些是重要的。为每个版本列出一小部分时间,并安排您可以在这段时间内发布的最重要、最便宜的功能。该系统确保稳步向前发展,保护您不受不断、不可预测的优先级更改的影响,并确保您不会开发出无法工作的庞大的单块代码库。

关于测试驱动的开发,我认为Cameron和Andrew的评论都是正确的。如果抽象出图形API调用之类的内容,则可以进行更多的单元测试。

票数 2
EN

Stack Overflow用户

发布于 2010-10-14 04:45:27

你肯定想看看极限编程(XP),看看肯特贝克的https://rads.stackoverflow.com/amzn/click/com/0321278658

但是,您可以做的最有用的事情是对行为驱动发展进行一些研究,这基本上是测试驱动开发所做的。它将重点从测试转移到规范上。你不用担心你的程序会表现出什么样的行为。

所以说你不打算使用TDD,或者BDD,这完全是疯狂的说法。敏捷开发的核心概念之一是通过测试/规范开发您的软件。您必须摆脱测试/规范正在测试您的类的思维方式。这不是真正的目的。它们用于描述应用程序应该展示的行为,然后使用该测试/规范将行为写入应用程序。

你可能会写这样的东西

代码语言:javascript
运行
复制
Describe Startup
  it "should display a welcome screen" do
    game = Game.new
    game.start
    game.output_buffer.should match("Welcome")
  end
end

然后你去写代码来实现它。你描述你想要的代码,然后你去写它。它允许您以小块的方式编写代码,最重要的是,当其他人捡起您的代码时,他们可以运行测试,并确保一切正常运行。当他们想要添加新的功能时,他们使用相同的过程,所以现在当您返回到代码时,您可以相信他们的代码也能工作。

票数 1
EN

Stack Overflow用户

发布于 2010-10-17 15:42:56

敏捷/精益方法(如Scrum、XP和Kanban )自2003年以来已成功地应用于游戏开发。

有许多博客,包括:http://blog.agilegamedevelopment.com/

还有一本书。请参阅上面博客中的图书链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3929962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档