Unity制作人专场 | 代号—S手游制作经验
2019年,Unity在北京、成都、深圳分别举办了三场制作人专场活动,搭建优秀游戏制作人与Unity官方面对面交流的桥梁,内容涵盖项目优化、技术美术与解决方案等多个方面。
本文为大家带来的是巨人网络、巨火工作室制作人姜海涛及引擎负责人张强的主题演讲—《代号—S手游制作经验》。你可以点击「阅读原文」下载本次演讲的PPT。
下面是本次演讲视频。
演讲内容
Part 1
大家好,我是姜海涛,是代号—S手游的制作人。今天我从制作人的角度介绍一下我们的项目。
这款手游目前是巨人网络最大的项目,也是一款战略级项目。主打开放世界MMO。游戏的核心内容包括三互动:场景互动、AI互动、天气互动;三自建:自建副本、自建剧情、自建城。
游戏制作的前半年是一段比较痛苦的时期。对于如何在手游上做开放世界,我们都一头雾水。半年中针对性能如何评估、效果如何平衡等方面,我们花了大量人力做了许多的尝试。前期筹备了将近7个月才最终敲定的东西,在后期也被部分推翻过。整个过程中,我们也寻求了一些外部帮助,其中值得一提的是我们是国内第一家跟Unity深度合作的项目组。
一路走来,我们遇到了如下的许多问题。
第一个困难是手机这个载体上如何实现开放大世界;第二点是美术效果和性能如何平衡;第三点是MMO的开放世界该如何做。虽然有很多开放世界的主机游戏,但实际上到目前为止,整个游戏行业内还没有一款真正的MMO开放世界。
第四点是人员多、难管控、难协调。因为项目参与的人数众多,每个人都有各自的想法,很多人认为「MMO开放世界」是个伪命题,如何让大家统一目标并朝着这个目标行动,我们采取了很多方式,时时刻刻去传递项目组的目标,但发现效果并不太理想。
难管控的意思是,做此类型游戏时,我发现这其中有很多水份,不过只要强管控一段时间,也会有很大改善。
在座的可能很多都是技术人员,给大家提一个醒,如果你们是技术总监的话,策划要什么,我们提供工具需求就可以了。因为只要提供可以迭代多次的工具,在游戏里面实现快速迭代的流程,大概率可以产出好的游戏作品。
针对美术效果和性能取舍的问题,给大家分享一个小案例—「乐高式开发」。这个名字可能大家都不陌生。开放世界是高消耗的,能否在各个方面节约性能,是这个项目能不能实现的一个重要因素。
我们从最开始进行制作时就规划了很多基础物件,利用基础物件去搭建更复杂的其他物件,就像乐高积木一样,包括贴图等都会考虑复用。
但这里面隐藏的问题是,如果在最开始的时候没有做到细致规划,没有确定制作流程,到后期很多基础物件可能会被浪费掉,以致没办法使用。
这是我们之前走过的弯路。我们一开始想这个很好,要做这个,但我们以前没有做过,只能边做边尝试、边探索,但最后发现有很多废弃的资源。所以,建议大家一定要在前期尽量想清楚:你要以什么方式进行制作,在具体制作的时候,各个细节点的规则和逻辑是什么,有什么流程、有什么规矩。如果前期这些问题没有想好的话,可能会浪费几千万。
还有就是在目标的追踪和管理上,也给大家分享一个心得。
这是一个很粗的表,我们最开始做开放世界的时候,整个项目组发散思维,一共发散出了八个大方面,这八个大方面几乎可以组成一个开放世界的游戏。但是,只有方向不行,每个人都有自己的想法,我们采取什么方式同步这个目标呢?
我们让大家提一下对这八大方面的理解,当时提了500多条,我们把这500多条进行去重和组合,筛选出了100条。之后,核心团队就对这100多条进行评估,考虑做什么实施方案。到了这一步,就会筛选很多更细的点,再把这些点进行拆分,衡量需要多少资源、多少人、多少天才能完成。
经过这样一步一步的细化,最终让项目组所有人清楚明白地知道针对开放世界要做哪个点,每个人负责哪个点。我们没有同步好的时候是非常痛苦的,策划团队会带着技术团队、美术团队瞎忙。
不管大家做什么项目,每一阶段最好做到目标明确,然后再进行拆分,考虑如何实现,能不能满足项目诉求。如果不能满足项目诉求的话,是不是考虑突破其他方面。我的建议是,如果你要做开放世界,这一轮的梳理一定要做,因为每个人的理解都是不一样的,如果不做,项目的进展速度就会很缓慢。
之前我们跟其他公司进行过比较紧密的配合,做过很多用户调研,开放世界的基础就是无缝大世界,要有无边界的世界感觉。这方面的实现,跟我们整个地图的制作方式也有关系。服务器方面我们已经实现了无缝大世界,而且可以做到相对比较高的同步。
这两个小视频相当于两个小展示,大家可以看一下,视频里有一些人在跑,头上有小球和没有小球,代表在不同的服务器里面。我觉得这是无缝大世界在服务器方面一个很要命的技术点,我们用了7到9个月的时候修改,然后再同步。
从我的角度来讲,这方面有比较高的致命风险,因为我们经历过服务器的推翻和重做,所以我觉得,如果要做这块的话,在服务器方面,前面这两个点如果不能很好解决的话,就不要盲目去立项。
再介绍一下AI。因为不管是真实世界里人与人之间的交互,还是游戏世界里人和动物的交互,玩家的感受都很重要。我们是基于一个模糊逻辑的决策系统,做到了支持NPC的听觉和视觉,使得NPC可以与自然环境进行交互,可以制定NPC的身份和性格,可以更真实的进行目标决策和技能决策。这是刚才所说的同步,其中经过一轮阵痛的推翻、重来,真的是惨痛的教训,希望各位技术大咖能够想清楚之后再做。
我就介绍到这里,下面请巨火工作室的引擎负责人张强给大家介绍引擎方面的技术应用,谢谢大家。
Part 2
大家好!我是工作室的引擎负责人张强。
我们整个项目是Physical Based Rendering,以开放大世界的方式去做,但是这当中我们遇到了很多问题。我们也与Unity进行了深度的技术合作。因为这个项目比较大,资源比较多,资源导入就会比较慢,所以导资源都是使用多台机器进行分布式导入,这样可以加快资源的导入时间。
Unity引擎也经过很多次的迭代,从Unity2017、Unity2018,到现在最新的Unity2019版本,渲染管线也从Builtin管线升级到SRP管线,并且重新把引擎的材质重做了一遍。我们项目的诉求是场景面积一定要大,可视距离要远,植被要很丰富,还要支持全场景阴影。在这方面,我们想了很多方法,也走了很多弯路,遇到了很多问题,比如加载问题、视距问题、性能问题等等。
接下来看一下大世界的大小。首先我想说,最开始大世界没有现在这么大,现在是32公里×32公里,陆地面积是16公里×16公里,周围有8公里是海洋的面积。不过,地图变大了、视距拉远了,也会出现很多问题,比如性能与效果如何去平衡。
关于大世界,采用Streaming+场景分层的方式。在大地图的设计分层方面,首先在场景内的静态内容分层上,我们把大地图分块,以8公里为一个大块,每个8公里又分成多个小块,然后去做Streaming加载。每一块上面的物件又分大、中、小物件,对每一层设置不同的加载距离和显示距离。然后使用多台机器对场景进行预计算,把数据提取处理,形成游戏数据,确保游戏运行时达到高效率。
除了整个场景的物件分了大、中、小物件外,地形、河流、植被等等都有自己单独的加载距离。这些都使用多台电脑去计算提取数据。这样做的一个好处是,把场景视距拉远的话,面数会比较好控制,从而达到我们的预期。
关于大世界视野距离,游戏第一个版本场景可视距离大概是800米,经过迭代以后达到了现在的4000米。可以对比这两张图,视觉效果上有很大差距。
这么远的视野距离,我们如何做优化呢?首先我们使用了HLOD系统,因为地形、静物比较多,我们采用了不同的加载距离与模型精度。对远处模型会进行三角面缩减,近处使用高精度模型。第二种方式是通过离线计算场景块与块之间的可视化关系,把块与块之间的可视化数据算出来,从而根据计算的数据减少加载的资源和物件的渲染数量。
除此之外,我们还通过遮挡体减少场景面数、Drawcall,这取决于场景里面大物件遮挡体的制作,这对游戏效能也有较大提升。
此外,对于远处的物件,其实我们不需要看到很多的细节,所以可以通过使用工具计算出属于物件内部的三角形,进行剔除,从而减少场景渲染面数。经过这些优化的方法,我们场景的面数,基本可以控制在可以接受的流畅运行游戏的面数范围。
开放大世界只做优化也不行,我们也要保证一定的效果。在效果方面我们也做了很多,比如开发天气系统,大量使用后期处理效果。场景保证大面积的茂密植被,全场景视野范围内都要有阴影等。
光影方面,我们采用的是分布式Lightmap、ShadowsMask烘焙。全场景阴影方案的确定也经历了一个漫长的过程,用了很多方式,走了不少弯路。最终我们采取了远处使用静态阴影,近处使用实时阴影的方式。目前来看,大世界的光影达到了较好的效果。
植被方面,我们主要做了模型草和面片草的结合。模型草由最开始的30米,到现在可以支持512米的可视化距离,中间也经历了很痛苦的过程,到现在我们还在优化,主要是优化Shader复杂度和GPU带宽的消耗。除了模型草以外,我们还做了风场,因为游戏一旦动起来的话,视觉效果是不一样的,统一的风场可以让整个世界看起来更真实。
植被交互方面我们也花费了很多时间不停地迭代,希望可以给玩家比较酷炫、真实的感受,比如基于物理的交互系统,与玩家的行走碰撞交互、砍草、烧草、砍树等。一直到现在我们还在对砍树进行迭代优化。
不仅是草地,我们对海洋也进行了迭代优化。开放大世界,海洋不能太小,所以我们在保证性能的前提下实现了无限大海平面,实时海面反射,Fresnel等海洋效果。远裁减面可以到多远,海平面就可以渲染多远。
除了海洋,我们对云海也进行了很多尝试,最后采用了预计算与实时渲染相结合的方式去做,在满足移动平台性能的前提下实现大面积的云海渲染。
天气系统方面,主要是以做天气元素为主,比如下雨、闪电、下雪、狂风这些,有一系列的参数来支撑,24小时的天气效果都可以调出来。
大家可能会问,这些系统在手机上的性能会不会不太好?我们也考虑到这个问题,所以我们一般都会边迭代、边优化产品。游戏运行时一般锁定30帧,目前游戏可以在三星S10、三星S9、小米2S、华为P30,iphone 8、iphone X、iphone XR和iphone XS等设备上全画质流畅运行。
我们所做的这一切,都是为了带给大家更好的游戏体验。我就跟大家分享这些,谢谢大家。
小结
Unity社区将陆续发布Unity制作人专场的精彩演说,将前沿技术传递给广大开发者、创作者,助力高品质Made with Unity游戏的诞生。
在历届Unite大会中,我们曾邀请过《王者荣耀》、《球球大作战》、《旅行青蛙》等多款知名游戏制作团队,为我们带来干货满满的经验分享。
在Unite Shanghai 2020中,我们将邀请国内外知名游戏制作团队进行分享。现在,Unite 2020的暖冬特惠票正在限时热销中,把握住最优惠的时刻。同时欢迎大家留言告诉我们你期待看到的游戏制作团队。
推荐阅读
官方活动
Unite Shanghai 2020正式启动,暖冬特惠票热销中,购票即可获得多款Asset Store特定精品资源5折优惠码。[了解详情......]
AR应用创作大赛Unity与商汤科技强强联手举办AR应用创作大赛,帮助开发者了解使用商汤AR SDK进行开发的方法,高效的进行AR内容创作,推进AR应用创新与落地。[了解详情...]
点击“阅读原文”下载演讲PPT