type
status
date
category
summary
language
面向群体
游戏品类
资料类型
平台
tags
password
Sub-项目
作者
文章链接
来源
标签
Parent 项目
发布时间
slug
icon
等你点关注都等得长猫了
欢迎关注“游戏寿司”
本公众号的主旨是发布游戏深度研究和日本游戏市场分析的原创文章,欢迎关注~
微博名称:游戏寿司
微信公众号ID:gamesushi
微信号ID:hebeihang
知乎ID:寿司君
上一篇文章笔者介绍了任天堂是如何以工业化流程开发《塞尔达传说:荒野之息》这款巨作,下面接着介绍任天堂是如何利用自动化管线应对开放世界带来的庞大工作量。
本文译自“《塞尔达传说:荒野之息》是如何应对效果“表现目标”和“庞大数量”之间的矛盾”演讲,这场演讲因为内容比较专业,只有一篇报道记载,如有疏漏敬请谅解。
由于本人学识有限,有些记载不清的地方咨询了多位专业人士,感谢pro、Hirakawa、#某一口井#等业内人士的指正,这次翻译对我来说更像是一次学习,特此鸣谢!
演讲者介绍
演讲者是来自任天堂企划制作部的两位开发者,洲卷和也和泽田佳之。
洲卷和也,2005年加入任天堂,曾负责《马里奥银河2》等热门游戏的程序开发工作,现任《荒野之息》工具链开发工程师。
>
洲卷和也
2005年毕业后加入任天堂情报开发本部负责程序开发工作,近年来主要负责开发环境相关工作,为《荒野之息》工具链开发工程师。
泽田佳之,曾在Namco等公司负责美术和技术美术相关工作,加入任天堂后主要负责DCC(数字内容创作)工具开发,在《荒野之息》负责美术资源管线构建。
>
泽田佳之
庆应义塾大学毕业后曾入职Artdink、Namco和Square负责美术和技术美术工作,2011年加入任天堂情报开发本部,负责《荒野之息》美术资源制作管线构建工作。
任天堂理念与开放世界的矛盾
洲卷和也介绍,任天堂的游戏制作理念是始终把游戏体验放在第一位。
游戏之所以被称为互动娱乐,是因为它相比电影等其他艺术形式,更重视玩家与游戏交流互动时所获得的反馈和感受,这种反馈和感受组成了游戏体验。
观众通常只能被动地接受电影的信息输入,而玩家则可以对游戏施加影响并得到反馈。
这其中包括,玩家与游戏世界互动时的视觉效果和音效,比如时间停止技能的金色锁链和“叮叮叮”的声音。
将游戏元素自由组合的能力,比如魔物气球与道具的组合,以及《王国之泪》的余料建造。
采用不同武器、战术战胜敌人的成就感。
以及观察虚拟世界的变化,比如行商会在树下避雨。
这种植根于交互反馈的游戏体验,就是游戏最大的魅力。
这里说一个反例,《黑手党2》同样是一个开放世界游戏,画面和剧情也非常不错,但这个开放世界非常空洞,玩家与游戏世界的互动少之又少,玩家评价较低。
《黑手党2》的问题不是个例,在《真三国无双8》、《光环:无限》等开放世界游戏也出现了游戏世界过于空洞的问题。
如果说这三个游戏是因为开发团队缺乏开放世界游戏经验所致,那为什么任天堂首次尝试制作《荒野之息》这样的开放世界游戏却没出现这些问题呢?
答案就在这次演讲中,如洲卷先生所言,任天堂所有员工,都要拥有“从游戏的角度审视自己所制作内容有没有被精心制作”的意识。
也就是说,这些数不胜数的游戏细节,并非全部是自上而下的指示,而是开发一线成员自发对游戏不断打磨的结果。这点,在任天堂员工相关的访谈中常有体现。
比如在岩田聪和宫本茂的一次对谈中提到,游戏延期对玩家可能是坏事,但是对开发者来说是有充足的时间来好好打磨游戏。
也正是这份对游戏的热爱和坚持,才使得任天堂的游戏品质受到广大玩家的认可。
但是问题来了:正因为任天堂对游戏体验的坚持,游戏要填充大量的玩法和细节,但是《荒野之息》的开发世界的丰富玩法带来了巨大的工作量,为此需要在共享游戏整体开发进度的同时提高生产效率,为了保证游戏稳健有序地开发需要保持团队之间的顺畅沟通与合作,即使在不断返工中也能保证游戏质量不断提高,诸如此类的矛盾给团队带来了巨大的挑战。
因此,作为工具链开发工程师的洲卷和也,与作为技术美术(后文简称TA)的泽田佳之,希望在保持任天堂理念的前提下,去接受制作开放世界的挑战。
构建稳定的开发环境
洲卷先生提到,填充广阔的开放世界需要大量的游戏资源,如果坚持游戏体验为重的游戏理念,这要求开发团队在保证数量和质量的前提下,对资源不断重做不断打磨。
但是这样会带来巨大的制作成本,而开发团队的人力和时间是有限的,这个矛盾怎么解决?
其实这个矛盾是开放世界品类面临的最大问题,很多开放世界团队都把人力和时间耗费在构建庞大开放世界上,没有资源去填充并打磨玩法,导致开放世界显得空洞无物,比如《真三国无双8》。
而《荒野之息》团队的工具链开发工程师洲卷和也先生为了解决这个矛盾,提出了让设计师的游戏资源制作流程顺畅运转,发挥他们个人的最大潜力的目标。
为了实现这一目标,要确保DCC(数字内容创建)工具环境的稳定性。
《荒野之息》的资源以配有大量的插件的Maya和Photoshop CC进行开发,参与开发的设计师人数也很多。
在这种情况下,容易出现因开发环境不一致导致依赖冲突,一旦出现冲突,项目不得不停工,从而造成人力和时间的损失。
因此,DCC工具的稳定性是首要任务。
为了统一员工的DCC工具的运行环境,开发工具使用专用的启动器启动,专用启动器可以自动获取最新的插件和环境参数设定,还能自动对工具进行测试,防止出现冲突。
此外,设计师在使用程序时如果报错,会自动生成错误日志,异常处理hook会把错误信息自动发送到数据库,便于程序员能够在工具发布后快速修正BUG。
自动化让设计师集中于创意工作
由于本作采用Havok物理引擎,将时间停滞、磁力、漂浮等物理机制引入游戏,物理数据的质量与游戏质量直接挂钩。
另一方面,为了让开放世界活灵活现需要填充大量的物理数据,因此,公司决定不设置专职的物理数据工程师岗位,而是由工具链开发工程师创造一个能够让设计师轻松制作物理数据的开发环境。
为此团队采取的措施是,不让设计师直接使用Havok,而是将Havok集成在MAYA等DCC工具的插件中,简化物理数据制作流程。
为了提高物理数据的稳定性,对危险的物理数据进行了事前检查,以确保它们不会被写入ROM。
即使写入ROM,团队也会对数据定期检查,一旦规格变动及时调整,由软件自动检测危险数据并发布任务,交给地形负责人来修正。
通过这些措施,设计师能够稳定地制作物理数据。
在制作过程中,考虑到可能会出现大量的返工重做,为了减轻设计师的负担,引入LOD模型(不同细节层次的模型,如下图)自动生成技术。LOD模型仅通过生成参数进行控制,并由程序员和TA进行管理。这样一来,设计师就可以专注于基础模型的制作。
得益于工具链开发工程师支持,设计师可以把精力集中在创作上,减少无意义的工作量,让游戏的模型质量得到提高。
下面,以“试炼之祠”为例进行讲解。在这里,为了合并设计师、策划和程序员的工作流程,把部件模型制作和部件组合的工作全部自动化。通过优化开发流程,最终能够深入探索“试炼之祠”的游戏性。
这里的部件应该是前文展示的这张图片(下图),这张图片介绍了部件制作规格,在程序员的技术支持下,把设计师制作的资源自动生成部件模型。
另一方面,策划可以通过类似Zelda Editor和《马里奥制造》的工具自行对部件进行配置并调试,这样,通过构建完善的开发环境,让设计师和策划专注于自己擅长的领域,来提高员工的工作效率。
这样的开发流程不只是《塞尔达传说:荒野之息》有采用,据笔者在FromSoftware的朋友介绍,他们也是采用类似的设计:程序员只负责开发引擎工具制作,由策划使用这些工具直接做游戏。
不仅是部件制作和策划,在动画数据制作方面,模型制作、骨骼制作和动画制作等各个阶段进行版本更新时,也能自动更新数据。
不仅如此,通过设置高度、倾斜程度、摩擦力等游戏角色与游戏世界之间的交互参数来自动生成数据,即使之后发生更改,也能马上获得最新的数据而不必重做。
这样一来,游戏开发中的所有非创意工作都自动化了。设计师可以专注于创作,从而提升整个游戏资源的质量,用现在流行的话来说就是,让AI来完成一切不需要创意的工作。
快捷稳健的版本管理
然后是《荒野之息》版本和可执行打包的管理系统。
将设计师制作的DCC中间文件压缩为源文件,与程序员准备的源代码结合起来,构建出可执行的文件。每几次数据更新就打出的可执行包,可以作为成果展示给其他员工。换句话说,为了开发顺畅进行,需要一个稳定、快速、高频率运行的打包管线。
在这种情况下,版本管理非常重要。
首先,由于打包十分耗时,在打包后数据变更的话,容易因为数据不匹配导致执行时发生错误。
其次,本次游戏开发是内部团队与外部公司共同开发的形式,出包流程需要支持多个开发基地。因此,我们设置了能使下资源保持版本更新至和下载可执行文件一致的机制。在本地正在制作的资源例外,可以自行选择保留或回滚。
此外,还允许开发者从多个可执行文件版本中进行选择,这样在出现故障时只需同步别的版本即可恢复。
然后是资源管线。
在这里,为了避免不必要的额外工作,使资源能够立即交给下一个人,复合资源必须一直保持准确无误。在加载复合资源的补丁时,允许临时使用开发中的资源;这些开发中的资源会在Jenkins的定时打包中被自动清理。
对于成包的资源,虽然可以通过版本管理来加载不同版本的资源包,但这样有时个别资源就会刚好错过版本。为此,团队准备了差异表,可以让个别资源使用其他版本。这种情况下,美术只上传有差异的单个资源就可以了。
为了兼顾立即交付和持续稳定,引入了自动化机制。不但为此引入Jenkins打包,还确保不管版本更新了哪个资源,都会将所有资源打包。我们的方针是一时的故障也没关系,只要最后会收束为可用版本就好。
在构建管线中,需要实现的是高速、高频率和稳定地创建可执行文件。为了实现高速创建,资源直接从PC导入,而执行文件仅需复制即可,并且只需在构建时记录版本号。
为实现高频率构建,主要使用的可执行文件是每5分钟构建一次。此外,根据平台和构建目标,也会更改构建频率。其中,在开发中最常用的“Debug调试版”等将以高频率构建。
为了确保稳定性,构建报错的通知会明确的通知到相关责任人,而不是发出“来个人修一下”这样不明确的信息,这样就能以最高优先级修复问题。此外,为确保可执行文件的稳定性,还会在实机上进行简单的冒烟测试。如果测试失败,则删除可执行文件,并在聊天频道中点名指定人员修复。
在打包管线与任务联动时,需要打包管线确定“包体包含了任务的工作内容”,并且确保“这个包被打好的信息通知到位”。为了确定包含新增修改,包体按照版本进行编号,以便通过数字大小进行确认。然后,将Jenkins配置为自动更新任务状态,通过任务来通知验证包体的就位。
通过完成这些工作,我们成功地做到了新包随时有,新包随时玩。这样,基本上可以让全体员工在了解游戏全貌的情况下推进开发。因为能够高频的推进开发周期,通过试玩进行的迭代也能持续进行。把创造性的部分交给人类,常规的、确定的和稳定的部分交给自动化后,最终提交中只有52%是由工作人员提交,Jenkins负责的比例高达48%。
结语
其实写到这里,再去回答“任天堂如何多快好省地制作开放世界”这个问题,答案就是“自动化”,或者用现在流行的话来说,是一种AI。
创意的部分交给人类,大量的、重复的、非创意的工作交给电脑,再加上良好的管理,这可能就是《塞尔达传说:荒野之息》成功的秘诀。
很多人说起任天堂都会说起它历史悠久,是一家“老铺”,但通过这些演讲我们发现,这家拥有悠久历史的游戏公司,无论是在创新还是在工业化领域,一直走在时代的前面。
- 作者:何北航
- 链接:http://gamesushi.cn/article/e5454c2f-ec12-4e20-874a-bd0fd241ff31
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。