教父的告白
一切都是纸老虎
posts - 82,  comments - 7,  trackbacks - 0

[如果你在做游戏时已发现Scrum敏捷开发的价值,专家Clinto Keith向你概述精益和看板,使你在所有游戏开发阶段变得敏捷的两种方法.]

 

许多游戏团队发现Scrum的价值后就迅速采用.引入的价值是提高了速度,游戏以一个经常反复的速度提示项目主题.并让团队和用户频繁地通过改善游戏来相互反应.然而当团队进入制作阶段,发现Scrum的价值减少了.

 

许多团队在项目生命周期的晚期放弃了一些Scrum实践又回到传统的瀑布实践方式.他们称这种方法为”Scrum和瀑布的混合”.这篇文章将解释背后的原因及引入一些精益制作及看板的概念作为采用瀑布实践的替代方法.

 

精益和看板可以回答许多团队使用Scrum面临的问题,而且它们不需要团队放弃敏捷的方法.这些实践方法基于真实世界的产品制作经验,它们改进了56%的关卡制作成本.

 

在游戏业以外的大部分敏捷项目中,没有开发阶段.没有概念(concept)阶段,没有预制作(pre-production)阶段或制作(production)阶段.这些项目从发行(release)开始,每个发行发布一个新版本给客户,比如Firefox这样的应用程序每一个月左右发行一个新版本。而大部分游戏需要几年后才拿到一个发行版本。

 

消除(Eliminating)阶段是一个很大的敏捷好处;瀑布阶段比如测试阶段强迫测试关键活动被推迟到项目最后的话,这样修复臭虫(fixing bugs)的成本会很高。在项目开始的规划(planning)阶段尝试创建关于什么功能是有趣的及创建关联工作的详细知识。不幸的是最好的知识来自于执行,这就是为什么非常详细的预先规划(pre-planning)会失败。

 

对于许多游戏,在游戏制作过程中仍然需要分不同阶段。有两大原因:

 

被交付的无论什么质量的内容有个起码的底线。 60美元的游戏必须提供8至12小时的游戏。这代表了大部分的开发成本和由游戏性产生的时间。这需要一个预制作阶段(pre-production phase )用于发现游戏乐趣及一个制作阶段(production phase)用于大规模制作内容,为了8到12个小时的游戏体验。

 

发行商有一个投资组合驱动的市场模型。他们的投资制约了游戏的目标.为了获得发行商的审批(其中包括市场及特许经营/知识产权所有权的审批),开发商在项目开始的概念阶段(concept phase)需要创建一个详细的概念论述。之后开发商不能太偏离整个项目的设想。

 

预制作可更自由地反复进行创意设计及探索各种可能性。制作期间,我们创建数以千计的资产依赖于我们在预制作阶段所发现的经验教训。这些资产在制作阶段变更会发生成本障碍。

 

例如,考虑一个团队在制作一个平台类型的游戏。平台游戏(如任天堂的马里奥系列)挑战玩家用于开发在变化莫测的环境中的导航技能。制作团队将创建数以百计的资产取决于角色移动指标,如“角色能跳多高”或“玩家能抓取的最低高度”。制作资产取决于这些指标。

 

如果这些指标在制作中期被变更,它可能会造成严重破坏。例如,如果设计人员变更了角色跳跃高度,数以百计的暗礁或障碍不得不被修改。这可能使在最昂贵的开发阶段创建了大量的无用付出。

 

在预制作阶段发现和锁定这些指标是很关键的。这并不意味着我们不能在制作过程中使用敏捷。我们如何才能不改变敏捷。用更适用更渐进式的流程(如精益)代替使用迭代和渐进的流程(如Scrum)

 

冲刺和制作

 

资产创造的确定性和顺序工作,也不符合冲刺迭代周期。如果我们把制作想象成工厂组装生产线,那么2到4周迭代周期是没有意义的。工厂不会每隔四周后空下来再决定将来构建什么东西。

 

组装生产线更频繁的复制产品需要即时逐步改进。完成资产复制的生产线时间成为制作团队的新节拍.

 

Scrum任务公告板及制作团队

 

冲刺开始时,Scrum团队将提交一份由他们预估的完整任务集。这些任务集被放在任务公告板上,供每人每天复查。许多任务可以顺序工作或并行工作。

 

如果一个任务在等另一个任务,就可以继续做其他的任务。有组织的任务执行流程将促进团队沟通并防止他们停滞。Scrum任务公告板正很好地表示了为了各个冲刺目标,大量在被顺序执行的任务。

 

然而当我们有一长串序列的任务必须按顺序完成那么我们失去一些并行执行任务的好处。任务必须按顺序完成,工作必须经一个可预见方式的流动,用于确保制作团队中的许多专家不在等待工作。Scrum任务公告板不能用于表示很长制作流水线的工作流。

 

 

Scrum任务公告板用3到4个任务状态表示

- 还未开始(Not started yet)
- 进行中(In progress) 
- 需要审批(Needs approval) 
- 完成(Done) 

 

这些在预制作阶段足够了。在任务进行中实际上在不同工种间有许多来回,这是正常的。然而当我们进入制作阶段,在游戏中看到一些制作完成的资产之前可能有一个长的任务链。例如,出现在游戏中的一个单一关卡需要发生如下的步骤。

 

 

 


这是一个大量任务的简化及发生在每个游戏关卡制作中的递交(hand-offs)过程。这个流程中的每个任务在它递交给下一个前必须发生。

 

如果在工作流中有一个步骤失败或延误,将影响到整个工作流中剩下的其他几个步骤。让我们套用一个任务公告板为一组任务:

 

 

以上任务公告板告诉我们剧本(script)完成后概念美术(concept art)要在关卡设计前完成审批。立即显现出一个问题—整个工作流交叉依赖的可见性没有在任务公告板上被表示出来。也许概念美术审批已被停滞了。

 

对其它任务这意味着什么?这意味着它们都被延迟了!谁来为延迟买单?正在做调整的人,或许甚至是音频设计的人。任务公告板主要的好处是给团队提供他们正在操刀的任务的可见度。在这个案例中工作流因为内部依赖性而失去了可见度。

 

Scrum任务公告板上表示工作流的另一个问题是:

当第一组任务正在被执行时,后续的工作是什么?音频设计者在概念美术等待审批时在做什么?

他们可以创造环境的声音或者一些填充者工作,但这没有最有效地使用他们的时间。Scrum任务公告板在每个冲刺(Sprint)结束时被清空。制作中,我们不想清空制作线。我们希望能持续地填充,使工作流中的每个人每天有工作做。

 

那如何在制作阶段使用敏捷?

 

我们需要删除一些迭代开发特征并在制作期间变得更规范。但我们不想放弃对变更的反应能力,制作从来没有100%的效率。

我们永远不能预测每一个潜在的问题。我们有找到大量改善产品的权力直到游戏发卖。因此我们不想完全放弃敏捷。

 

如果我们设定了固定时间表(schedules)和最后期限(deadlines)。我们希望的最好结果是匹配时间表。无计划的问题将继续出现并威胁这些时间表。我们需要的仍然是敏捷实践;实践的期望不仅关注变更而且把注意力集中在不断提高我们制作的资产品质。

 

精益制作及如何应用

 

精益开发与制作的根源可追溯到20世纪40年代的丰田(Toyota)。在20世纪90年代,许多汽车制作商和其他制造行业都采用了精益原则的思想。

 

过去十年中,在不被考虑的传统制造行业领域,包括软件开发的许多行业中都看到了它的运用。精益原则集中精力消除浪费,快速发布,增强团队及全局控制(其他好处—见文章结尾的参考书籍)

 

我们也可以把这些原则应用到游戏开发。像汽车制造业一样,在制作中我们有一个长长的工作链或工作流,需要一些专家按顺序工作。

 

像汽车制作也一样,劳动力成本及错误是迄今为止最大的成本。我们需要录用覆盖”制造线上”所需技能的每个人来提高我们制作及设计能力。汽车业几十年前发现的,指派生产线上每个人以完成一套固定的任务并没有达到最好的效果。

 

平整制作

 

平整制作是一种精益技术用于减少浪费及理顺制作中的波动。这使我们以恒定可预见的节拍创建制作资产。

制作中我们花的大部分时间是无用工(或活动),这些成果不会添加到最终产品。通过我们的努力专注减少这些无用工,我们可以得到一个巨大的生产力的提高。

 

看板

 

凡使用Scrum的会使用一个简单的看板系统。日语中单词Kan意思是“信号”,ban意思是“卡片”。因此kanban是指“信号卡片”。看板是工作的“牵引系统”。

 

一张看板卡片是一个触发行动的信号。看板随处可见。当你下一次在星巴克喝咖啡时你可以看到一个适当的看板系统!

在Scrum中,每个团队成员每天基于完成工作在板上“推拉”一张卡片。没有人在按预定义的节拍推动工作。

 

我们可以选用一些看板实践方法,这些用来可视化一个复杂制作流程并让我们运用精益原则使制作流程尽可能有效率。

 

平准化(均衡化)公告板

 

一个平准化公告板是使用卡片来表示工作能力及整个工作流程的价值流的看板系统。

 

如上所述,当你使用Scrum任务公告板时,你正在使用一个非常简化的平准化公告板来表示一个3到4个阶段的价值流。我们可以通过增加步骤来扩大制作规模,以我们关卡制作的价值流为例:

 

 


现在我们有8个状态用于每个关卡,它们代表了价值流的6个阶段及在两端关卡制作没有开始和关卡制作完成的两个状态。在平准化公告板上旋转典型的任务流程使之变为状态。

 

该公告板在关卡制作中对于工作流程的沟通比Scrum任务公告板更清晰。

 

应用精益原则

 

现在我们已经展现了关卡制作的价值流,我们可以开始应用一些精益原则来逐步提高关卡制作。第一步我们需要审视价值流的周期时间。

 

周期时间是从左边剧本(script)作业开始到调整阶段(Tuning Pass)完成的总共时间。我们的例子,以上一个关卡需要16周的周期时间。通过减少周期时间使我们可以更有效率。

-更快的周期时间意味着更高的生产力。 
-东西下线越频繁,我们就越能解决制作生产线的问题。 

-我们可以更容易地找出浪费(无用工)及解决这些问题。 

 

有许多方法用来减少周期时间。第一个方法是通过缩小工作流中工作项规模。对于我们关卡制作的例子来说,我们可以通过把关卡分割成部分或区域。

 

每个区域大约花12天才能通过价值流—而不是每个关卡16周。因此,我们平准化公告板看上去像以下这样:

 


一个平准化公告板显示了一个区域通过价值流每个阶段的过程。在上面的例子中,区域1通过了每个阶段并被转交到结束时最后调整阶段。该公告板表现了完美地平衡跨越价值流每一步的工作流。

 

最初它不会以这种方式发生。在某些列中会出现断层而在其它列中出现工作堆积,但这样做:这些问题一旦发生能马上可见,当我们发现了问题的本质后,就可以开始修复清楚地看到的问题。

 

如何改善流程

 

现在我们有一个看板并在运行中,我们必须努力使其尽可能有效。平准化公告板将每天告诉我们,在我们的工作流程中哪里有断层哪里有工作堆积。我们不仅希望保持平衡而且希望工作流动尽可能迅速。

 

我们的例子中,如果每个区域需要12天才能通过整个价值流,我们要想方设法减少周期时间直到我们在不牺牲用户可接受最低水平的品质。

 

我们有一些工具来改善流程:

    - 时间盒      
    - 平整工作流 
    - 减少浪费  

 

时间盒

 

时间盒是每个使用Scrum的开发者工具,一次冲刺是一个2到4周的时间盒。在一次冲刺中我们坚持并且只有我们能提供的功能。这样的好处是创建一个价值能被加入游戏的可预见的节拍。

 

在制作中,我们借此又向前迈进了一步。我们在价值流每个阶段启动时间盒。例如,我们可能给音频设计师10天给一个特定区域添加声音。这和Scrum任务中不同之处在于音频设计人员将预估自己的工作并告诉客户他们愿意的承诺。

 

在制作中这种变化,因为我们在预制作中了解了给一个区域音频设计应该需要多少时间。品质变成了你用时间盒资产控制的变量。我们不强迫美术在一个规定时间内满足一套质量。

 

输入是时间盒(我们愿意为这些资产支付的成本),输出是品质,这是美术在一个限定时间内能提供的。

 

时间盒资产的关键是找到一个正确的时间盒大小。如果你选了一个太短的时间盒,那么品质会有问题。例如,如果高解像度关卡几何的时间盒设定为一天,那美术将给我们一个用没有贴图的方块填充的关卡!这肯定比用户想要的品质低。

 

另一方面,如果给区域的时间盒是2个月,我们最终可能会是一个到处错综复杂的详细几何区域。这绝对是漂亮的,但对用户来说带来的成本太高了。这是用户(Scrum中产品拥有者)的工作以创建的制作资产来对投资回报率(ROI)负责。

 

产品拥有者必须考虑玩家对游戏资产的期望。当我工作在一个开车游戏时,我会告诉我们的美术要把重点放在决策“90英里每小时的艺术”。质量条应基于玩家在全速驾驶看到的设置。如果我们陷入40小时创建一个完美的灭火器,这额外的成本将在玩家以90英里每小时穿过时被浪费!

 

产品拥有者必须始终在他脑子里保持成本/价值曲线。

 

以上表示用户价值不是直接反映创建资产的成本.当你在资产(如方块堆成的城市)上花太少投入,用户价值就会太低.玩家可能会注意到路边假装消防栓的黄色方块.

 

超过一定成本,投资回报也将会减少(如在一个开车游戏做一个1000面的消防栓).我们不是把品质关联到成本.而是用户价值关联到我们付出的努力.我们不想”给想要巨无霸的用户提供鱼子酱”.

 


 

平整工作流

 

时间盒使我们录用一个非常强大的看板.每列的卡片表示价值流每个阶段的工作能力.正如我们以上所看到的,每个阶段一次只能处理一个区域.这就是每个阶段的工作能力,如果我们在每个阶段只有一个人在工作.

 

时间盒是为价值流开始寻找平衡的工作流程的第一步.然而存在一个问题,在这个流程中每个阶段的付出需要是不同长度的时间盒.这可能导致工作断层和堆积.

 

例如,如果我们的关卡设计师一周内布局了一个关卡,但高解析度美术师需要两周,那么对高解像度美术可能有许多工作堆积.反之,如果原画设计师需要2周完成每个区域的原画美术,那关卡设计师可能正在等工作,无事可做:

 


我们必须找到方法来平衡工作流,使每个人每天有事可做.一个方法是平衡每个阶段的付出以实现整个系统同样的工作流程.

例如,如果我们想使一个区域在10天内通过工作流程,我们开始寻找团队每个成员工作每个阶段的时间盒的付出

阶段(Stage)
 每区域人天(People days per zone)
 
剧本(Script)
 5 days
 
概念(Concept)
 10 days
 
关卡设计(Level design)
 20 days
 
高解像度美术(Hi-res art)
 30 days
 
音频设计(Audio design)
 10 days
 
调整阶段(Tuning pass)
 7 days
 

 

概念美术师和音频设计师需要10天,每区域10天很符合我们的周期时间.然而其它几个阶段需要的时间是不同的.剧本和调整要低于每阶段10天.剧本作家也许必须帮助两个团队.在调整阶段的设计人员可以帮助关卡设计或甚至测试.

 

对那些超过每区域10天的阶段,我们需要开始加人用并行来缩短时间.例如,我们可以增加第二个关卡设计师.两个关卡设计师可能有效地在10天内完成一个区域.

 

由于高解像度美术师需要每区域30天,我们也许必须用3个高解像度来平衡我们的工作流.有三种不同方法用于加人来解决问题

1.    多个高解像度美术师可以同时工作在同一个区域.

2.    细分高解像度阶段为更详细的特定工作流程(如贴图美术,道具美术,静态几何美术)

3.    多个高解像度美术师并行工作在不同区域.

所有这些方案工作在不同情况下的.方案1不是最好的因为我们的关卡编辑工具不支持同时在一个区域编辑.方案2不是最好的是因为这个特定的工作流也不是平衡的.

 

而且我们已经完成大部分贴图和道具.我们选择方案3.每个高解像度美术师仍然需要每区域30天,但工作被错开使整个高解像度工作在每10天完成.

 

我们的平准化公告板看上去如下:

 


每个人有一个区域的制作能力.通过增加关卡设计师和高解像度美术师,我们可以在每个阶段添加更多的卡片,因为我们需要加更多的制作能力.

 

我们现在设立了一个时钟频率,它是对关卡制作的每个阶段是相同的.这个时钟频率(我们的例子中是10天)被称为”节拍时间”.通过维护甚至改善整个价值流的节拍时间,我们平整制作及真正有效改善我们解决的浪费.

 

减少浪费

 

我们可能很高兴地在这里止步了.我们已经有一个适度平衡及可预见的制作流水线.许多开发商将满足现状.然而精益制作的工具使我们可以走得更远!

 

首先精益的原则是减少浪费.我们已解决许多在设立平准化公告板后标记出来的浪费,但我想强调一些其它特别针对游戏制作的方面.

 

许多这些浪费可以被团队自己标记和纠正.这是理想的消除浪费方法.主要的工具是时间盒.时间盒在团队找方法使其更有效时将产生微妙的压力.在我们上述例子中,我们确定一个周期时间是10天及平衡整个工作流来改善效率.

 

当产品所有者要求团队减少周期时间到9天会发生什么事?我们将失去10%的资产价值.令人惊讶的是我们不.第一反应是紧缩周期时间,如果对团队来说消除效率低下的工作方法.

 

让我们使用一个真实的例子.一个制作项目,在关卡制作中区域制作的周期时间是10天.当他们想减少20%的周期时间,他们面临了一些瓶颈.

 

最大的瓶颈是概念设计阶段.他们只有一个可用的原画美树师,并且该原画美术师和其它原画美术师坐在一起.该原画美术师花10天来给每个区域创建十来个图纸.没有其它方法使更快地获得这些原画图纸.

 

在小组讨论中抖出关卡设计师和高解像度美术师并没有真的需要所有这些图纸.因为原画设计师是个分离的团队,许多概念设计是基于错误的假设.概念美术师不喜欢听到他大部分工作被忽略.

 

方案是把这个概念美术师移到关卡设计师和高解像度美术师的旁边.这样让他们讨论设计图及正在完成工作的质量条.因此,少得多的图纸,这需要加以创造及实际改善最终产品.

 

这是一个工作递交产生浪费的例子(由精益原则定义的7个浪费之一).文档是一个移交浪费主要源头.文档的作用是记录知识.但它不能代替面对面的交谈.通过在工作流每个移交处使用这种方法,该团队在跨越每个阶段时同样可以节省时间.团队座位区应根据平准化公告板本身重新安排.

 

在上述例子中,团队从16周制作一个关卡变为每周制作一个区域,每个关卡7个区域,最终的改善是关卡制作的成本改进了56%.

 

改善品质

 

注重品质是精益制作的原则.精益制作是最大限度地减少价值流中每个阶段无需完成的工作.这使得变更被引入的更频繁,因为这将无用组件的债务保持很低.

 

这是丰田等汽车公司提高汽车品质并主导市场的关键.如果你在汽车生产部分发现一个缺陷,它将很容易引入一个改进部分当没有大量旧零件在库存时.

 

这个理念也可以转化到装配线.在丰田工厂车间,如果任何一个装配线工人看到有缺陷的车他就会按下附近的一个大按钮.如果那个问题不能在随后的20分钟内修复的话,整个工厂装配线马上停止直到问题被修复.这对品质的贡献是其它公司所不能比拟的,通过使用精益制作原则使之成为可能.

 

此外,我们通过整理完成制作的批次来减少周期时间.我们改进了迭代的周期.用我们的例子,我们可以每周玩到完成的区域像他们”复制出制作流水线”

 

我们不必等16周,整个关卡完成后才能玩.这一周的循环使我们更快地体验关卡并在我们决定花许多时间来创建关卡区域的剩余工作前引入变更.

 

如果我们并行建造所有的关卡而且直到工作完成了90%后才发现问题(如渲染或内存预算或游戏性品质)我们将要面对不得不抛弃已完成的大量工作或者发卖低品质的工作以满足最后期限.汽车企业当它们决定扔掉库存中大量有缺陷的部件,也是同样的问题.

 

外包

 

外包在资产制作中有其好处和地位.然而许多工作室已发现外包限制了迭代的次数,这些发生在创建大量资产如关键角色或关卡.有限迭代会影响到品质或引入昂贵的返工,这些限制了外包的成本收益.

 

精益制作方式演变成和外部供应商一起工作.这些对制造业如汽车制造都是必不可少的.供应商成为精益制作公司必须要自己变得精益.和精益供应商不同的关键是他们给主要制作线提供小批量零件.这样做是为了以较低成本提高品质

 

如何转化到游戏制作?我们的例子,我们不想外包整个价值流.关键是外包整个价值流中不需要高技能的部分,高技能部分就留给自己做.一般在关卡制作中,你想在工作室内能够保持大的任务布局而且外包也是被用于布局中的几个部分.

 

这个例子是一般整个关卡的环境集或资产集合.如果你在创建一个大城市的关卡,你将外包所有的小物如灯箱海报,油箱,车辆,建筑构件,背景音乐等等.这些环境集将被带进设计图阶段(高解像度美术和音频设计).这可以让他们在自己的工作室继续设计图迭代.

我们外包的关卡制作价值流如下:

 


外包资产在早期关卡概念开发阶段被确定给外包足够的交货期.许多设计工具支持异步引入外包组件.一个例子是Unreal Engine 3编辑器.数据包系统可以用代理资产,这些可以被一次自动替换整个游戏资产的所有实例.

 

如果其他团队仍在使用Scrum?

 

制作期间,不是所有的迭代都没有用.团队仍然在不影响制作的领域进行游戏创新.对这些团队冲刺仍然是有价值的.这些组如何和使用看板的组一起工作?

 

Scrum团队仍然可以使用看板驱动制作.如果我们在一个4周冲刺内有一周的周期时间,制作团队仍然可以显示每冲刺4个周期的审查结果.制作团队不必作冲刺计划,但他们仍然需要定期回顾.另外每日Scrum对制作队员仍然是个有用的实践.仍然会出现障碍这需要由团队解决.

 

结论

 

逐步地使用这些实践方法来创建关卡资产.制作一个简单游戏关卡的成本从16周变成了7周(7个区域*1周/区域).这表示改进了创建一个关卡成本的56%并且只需非常简单的工具或技术就能达到.

 

这只是一个开始.精益制作表明改进可以用外包代替或扩充工作室可能想自己做的大量关键资产工作的外包需求。

 

像Scrum一样,采用并精益实践要根据你自己的环境进行调整.关键是获取过程的可见度并创建有意义的指标.时间盒资产创建是有挑战的.大部分美术人员在工作中没有把品质作为一个变量考虑.产品所有者的关键作用将其远景不仅是最终的产品也要有责任控制投资回报率.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Guo_zanhua/archive/2008/11/17/3321368.aspx

posted on 2009-09-09 10:30 暗夜教父 阅读(406) 评论(0)  编辑 收藏 引用 所属分类: Scrum

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜