VR游戏开发太艰难?国外开发者分享VR游戏场景构建与开发流程心得

2017-10-20 13:44:06
开发者 游戏开发
开发者心得分享:VR游戏场景构建要注意哪些地方?如何利用资源快速完成短期目标?如何达到性能平衡,尽量保持帧率?如何优化团队效率?

Jim Ivon是纽约游戏工作室Labrodex的CEO,这个工作室成立于2016年,从成立之初就决定投身于VR游戏的研发之中。目前,Labrodex正致力于开发一款包含RPG探险元素的VR科幻射击游戏。在制作这款游戏的过程中,Labrodex遇到了许多VR游戏开发者遇到过的共同问题,这支团队是怎样处理这些问题的呢?Ivon在游戏网站80lv撰文分享了Labrodex团队在VR游戏开发中的心得,尤其是在游戏中的环境构造这方面,如何利用现有资源快速完成短期目标?如何达到性能平衡,尽量保持帧率?如何优化团队效率?Labrodex的经验或许能为后来的开发者提供一些帮助。

一试霜刃:结合3A级的游戏元素和独立游戏工作室的创造力

Labrodex工作室现在正在同时进行几个项目,其中最重要的是一个RPG和探险元素的VR科幻射击游戏。我们目前还没有向公众正式发布关于这个游戏的消息,不过近期会放出一些细节宣传。我们对于Labrodex内部项目的目标一直都是,不仅是要创作好游戏,而且是要围绕有深度的原创IP创造全新的游戏宇宙。

在工作室创立之初,我们就希望能够结合3A工作室的优点和小而美的独立工作室特有的创造力、灵活度和速度。所以,在我们第一个项目的计划中,我希望能够纳入3A级的元素,包括聘请知名的获奖作曲家为游戏创作独特的音乐,我们还聘请了《纽约时报》畅销科幻作家来为游戏撰写前传小说。小说的结尾就是游戏剧情开始的地方,小说将会在今年秋天发行,这能给游戏打下优秀的故事基础。

VR游戏开发太艰难?国外开发者分享VR游戏场景构建与开发流程心得 - 蜜蜂网 - www.meafun.com

在我们的游戏中,作为发生地的城市本身也是一个核心要素。我们聘请了世界知名的建筑概念艺术家来设计主要建筑和城市标志。我们将他的设计在VR中重现出来,最后的效果非常好。

遭遇挑战:性能,最基础也是最艰难的部分

最大的挑战是如何在拟真游戏表现与显示性能上达到平衡。最开始的时候,我们团队想创造一个尽量真实、身临其境的可交互VR世界。这给游戏开发带来了难以想象的困难,因为要达到足够拟真的世界,对物品的品质、材质、材料和光照都有相当的要求。这些要求和VR所需求的性能要求结合起来,让开发环境变得十分艰难。

VR游戏开发太艰难?国外开发者分享VR游戏场景构建与开发流程心得 - 蜜蜂网 - www.meafun.com

现在,已经有了很多非常不错的VR作品,我们希望能够在这些作品的经验之上进行开发。我们的目标是做出一个真实可信、内容丰富的故事,能够将玩家引入故事之中,我们希望我们的作品能够推动VR的发展再向前迈进一步。我现在能够透露的一点是,在我们的游戏里,玩家不需要通过传送或者按键、点击这样的操作,也能够进行长距离的移动。我们创造了一种我们觉得很有趣也很自然的移动方式。

提升复杂度:将剧情和关卡设计相结合

在我们的游戏中,故事深度是一个重要的因素,所以VR正是这款游戏的绝佳体裁。当你看着这些建筑,这些机械,甚至是游戏里的boss时,VR能够给你无与伦比的真实感。从一开始我们的剧情团队和游戏设计团队就是同步的,我们做每一件事都是双管齐下,这不仅非常有趣、令人激动,而且无疑对关卡设计在剧情上的流畅度有很大帮助。每个关卡都是根据当前的任务和那一关的外观来规划的。

不过,我们也发现了一个问题,就是VR会把设计中的瑕疵更突出地表现出来。在显示器上可能根本看不出来的问题在VR上明显得让人头痛。我们花了一些时间才调整好总体的关卡设计指导。我们做了无数个测试关卡,试用了各种外观、高度、关卡规模,来测试怎么样能使内容更有可信度。不知多少次,一个场景在屏幕上看着很完美,但到了VR里就不一样了。

后来我们采取了这样的做法:对于那些关键物品,做好最基础的模型后就放到VR环境检查,然后再进行下一步的制做。由于VR目前的性能要求,这意味着在设计之初就要考虑好物品的材质、物品在远处和近处观呈现的不同外观。比如说,人物角色在屏幕上和在VR中就有所不同。为了避免重新调整的潜在麻烦,我们在VR环境中检查模型之后才会进行接下来的进一步工作,这样一来开发进度得以加快。毕竟,当模型在VR里显示和屏幕上完全不同,没有什么比不得不从头返工更糟心的了。

我们也仍然在继续进化,继续学习。每天我们都会遇到新的挑战,忙得不可开交,我们想要保留那些让人惊艳的元素,思考哪些部分是重要的,哪些部分是多余的。甚至一些很小的变化,比如增加一个静态光源,就可能改变最终的表现。

合理利用付费资源,优化团队效率

我们在2016年十二月和2017年一月花了很多精力做第一个demo,那时我们对这款游戏还只有一个比较粗糙的想法。一月初我们聘请了我们的执行出品人,他有超过20年的3A作品开发经验。他看了我们当时的进度后,我们商量,想在GDC(Game Developers Conference,游戏开发者大会)上展示游戏的一个片段。当时人员已经到齐了,那是我们作为一个新团队面临的第一个挑战,我们能够在两个半月的开发时间内做出游戏的基本原型,并且表达出我们想要的感觉吗?

GDC上的这个demo是用Unity做的,我们设定了一个非常紧张的日程,希望能够按时完成。这个demo是一个室外游戏关卡,要表现移动机制和沉浸感等这个游戏独特的一些元素。这个demo有配音、有复杂的动画、特效、任务和很酷的AI,从我们遇到的一些企业方的反馈来看,评价非常正面,这些企业包括微软、索尼、Valve和Twitch等等。可以说,每次有人来体验我们的游戏,从他戴上头盔的那一刻起,我就会在心中默默祈祷,希望他玩得开心。

GDC之后,我们当然还有非常多的工作要完成。我们完成了GDC之前的计划,也就是完成一个能够表达我们游戏精髓的游戏片段。

为了赶上GDC,我们需要团队专注在游戏的核心内容上,那么那些次要的内容就要寻找别的方式来完成。当时很大的一个障碍就是,我们设置的玩家出生点是一个屋顶,在这个屋顶的四周,我们需要一个搭建好的城市模型。但在那个时候,我们还只有十个人。我不能把这些人手都拿去做这个城市模型,我决定去找找TurboSquid(一个3D模型库)里有没有现成的可以用到游戏里的模型。

由于我们是一个VR游戏,所以我们要确定使用的模型足够精细,要达到相应的材质和材料要求,即使在VR头显里看也很合适。找了几个科幻主题的建筑模型包之后,我让我们的关卡设计师去看里面的细节,确定能不能使用。TurboSquid很好的一点就是你能看到他们提供的模型的很多细节,你能很清楚的看出它们是否适用你的游戏,模型的面数有多少,材质贴图贴好没,附带什么地图,是不是已经解包,有没有动画,包括什么格式的文件。我们付费买下了一部分内容,决定在游戏里试试看这个建筑包。只用了几个小时,我们就得到了计划中想要的城市背景,这省去了我们好几周的开发时间,帮我们按时赶上了GDC。

VR游戏开发太艰难?国外开发者分享VR游戏场景构建与开发流程心得 - 蜜蜂网 - www.meafun.com

从GDC回来之后,我们转向了虚幻引擎,重新制作游戏内容。在正式游戏里,我们还是希望我们的每一个模型都是独特的、原创的,是由我们团队组建创造的,包括demo里的那些建筑也是如此。

在VR中,我们测试了许多不同的想法,让关卡构造和游戏的视觉表现相和谐。比如说,我们想测试,当镜头和玩家绑定时,镜头在城市空间中移动的效果。这只是测试,没必要再搭建一个全新的城市,我们可以再利用当时在TurboSquid买的建筑模型,快速地搭建出一个城市背景。在这些小型的测试中,这个做法为我们节约了很多时间和成本。

确定适当的场景规模,用游戏人物做尺子

要保持合适的场景规模是我们从一开始就非常注意的事情。不同于一般的第一人称设计游戏,在VR中玩家会获得完全的环绕感。这就使得恰当的场景规模非常重要。我们发现的关键方法是根据现实世界的尺寸来设计游戏里的场景规模。这意味着要能够在游戏引擎里实际地测量物体。

用Unreal,你可以点击正视图图标来测量物体,选择合适的视角,放大或者缩小,按住鼠标中键拖动,就能看到Unreal单位的测量结果。我们用这个方法测量了所有的人物模型,确保他们和现实世界里保持相同的尺寸。这一步很简单,但却能使接下来的环境设计轻松很多。先测量你的游戏角色,保证他们和现实世界里尺寸相匹配,接下来就能用人物尺寸来估测游戏中的其他物品。这个在确定远处物体的真实度时特别好用。

提升优化效率:不要等到最后,做一步检查一步

这是我们目前为止经历最艰难的过程。在优化VR内容这方面,我们经历的试炼和挫折可以写好几篇文章了。我们最快学到的一课就是,随着进度要持续查看项目的VR适配情况、并且存档。可能有好几十次,一个模型、特效或者动画在屏幕上看着好好的,编辑器里跑得也很顺畅,但是一拿到VR上,完了,跑不动。

VR游戏开发太艰难?国外开发者分享VR游戏场景构建与开发流程心得 - 蜜蜂网 - www.meafun.com

现在,我们每做一个改动,或者增加一个新内容,我们都立刻存档。我们会检查新版本和之前版本的每一个参数变化。帧率,延迟,绘制调用(draw calls),光照密度(lightmap density),着色器复杂性(shader complexity),屏幕图像还有其他所有的东西。我们记录下这些结果,在测试新版本的时候对照这些参数。随着团队参与这个项目的人越来越多,我们发现记录这些关卡存档非常的有用,毕竟有时候,你只是调整一个简单的粒子特效,就会给VR里的显示性能带来灾难性的影响。

要让整个游戏在持续的90fps帧率下运行也带来了额外的挑战。在VR里设计一个关卡的时候,我们尽量考虑到方方面面。我们和关卡设计师讨论了无数次,关于怎么样设计特定的地形来最大化资源利用,减少调用,限制掉帧。我们花了非常多的时间和精力,深入地思考怎么样能够使游戏关卡和模型不仅“看上去很酷”,而且真正表现出VR的特性,我们应当如何以VR的思路来设计游戏。比如说,我们正在做基于地形的遮挡剔除(occlusion culling),会把故事意图也考虑在内,作为一种剧情和关卡结合的策略。

在设计VR游戏时,要尽可能地全面考虑。我们在所有特效上都考虑了LOD(Levels of Detail,多细节层次)吗?给所有的模型都设置了严格的LOD吗?有没有设置自定义碰撞匣来避免不必要的性能负担?是不是以模块化的方式来设计?但是也记得不要太模块化。我们有没有根据是否可见来合并特定的动作?也没有调整好光照密度?是否尽量避免了光源的移动?还有,当然了,存档,存档,存档。

我们能给VR开发者同行最重要的建议可能是,只要发现掉帧,立刻停下你在做的任何事情,去找出掉帧的原因。一旦开始二次映射,你会立刻从90fps降到45fps。可能有时候帧数只掉了一点点,但是为了避免帧数不稳,引擎可能会降低你的平均帧数来避免峰值。所以,只要帧数下降,立刻去找出原因。通常来说很大概率都是你最新加上去的那个东西导致的。

最开始我们喜欢先做着,等“最后再来一起优化!”。但这是个大错误,因为有几百件因素都在影响着性能。事实证明要从几百个部分中找出一个原因根本做不到,太可怕了。我们最后只好从零重建了整个关卡,把内容一个一个加回去,每加一个就存档一次,最后终于发现了问题区域。一旦你达到了90fps,尽一切努力保持住这个帧率。相信我,这个做法会让整个团队感谢你的。 


我有话说:

评论

最新评论

沪ICP备17029661号-1 文化部网络游戏举报和联系电子邮箱: wlyxjb@gmail.com

Copyright © 2016-2017 mefun.com All Rights Reserved.