FBEC2019 | 巨人网络、巨火工作室制作人姜海涛、引擎负责人张强:代号—S手游制作经验全分享

发布时间:2019-12-13 18:37  |  标签:         

2019未来商业生态链接大会暨第四届金陀螺奖颁奖典礼(简称“FBEC2019”)由中国通信工业协会区块链专业委员会、中国通信工业协会虚拟现实专业委员会、广东省游戏产业协会、深圳市互联网文化市场协会指导,行业头部媒体游戏陀螺、VR陀螺、陀螺电竞、陀螺财经、深圳区块链技术与产业创新联盟联合主办,于2019年12月5日在深圳市南山区深圳湾1号T7座鹏瑞莱佛士酒店宴会厅盛大召开。本届大会以“蝶变 · 向上的力量”为主题,将一如既往的关注未来趋势发展、行业创新升级、商业生态新链接等前沿领域。

12月5日下午,FBEC2019 Unity制作人专场正式开启。会上邀请到巨人网络、巨火工作室的制作人姜海涛和巨人网络、巨火工作室的引擎负责人张强带来“代号—S手游制作经验全分享” 主题演讲,以下为内容实录:

巨火工作室的制作人姜海涛

姜海涛:大家好,我是姜海涛,是代号—S手游的制作人,今天我从制作人的角度介绍一下我们的项目,便于大家有初步的了解。

目前这个手游是巨人网络的大项目,也是巨人网络一款战略级的项目,主打开放世界MMO。游戏的核心内容包括三互动:场景互动、AI互动、天气互动;三自建:自建副本、自建剧情、自建城。

游戏制作的前半年,我们经历了比较痛苦的时期,对于如何在手游上做开放世界,我们都一头雾水,所以花了大量人力磨了半年的时间,针对性能如何评估、效果如何平衡,我们尝试了很多东西。前期大概筹备了7个月,我们才敲定了一些东西,不过后面也都推翻过。在这个过程当中,我们也寻求过一些外部的帮助,我们是国内较早跟Unity深度合作的项目组。

我们一路走来遇到的问题。比如在手机这个载体上如何实现开放大世界、美术效果和性能如何平衡、MMO的开放世界该如何做等。虽然有很多开放世界的主机游戏,但实际上在整个游戏行业内,到目前为止应该还没有一款真正的MMO开放世界。

MMO开放世界这个命题,很多人认为是伪命题,而为了让大家统一目标、然后朝着这个目标去做,我们采取了很多方式,时时刻刻去传递项目组本身要做什么,但是发现效果并没有很好。

做这种类型游戏的时候,我们发现有很多水份,比如技术是会骗人的,美术也是会骗人的,水份越挤越多。我知道其他公司也有做这种开放世界,有的起步比我们早,有的起步比我们晚,我不知道他们的水份怎么样,其实有很多开发流程都是臆想的。

在座的可能很多都是技术人员,给大家提一个醒,如果你们是技术总监的话,希望可以把项目里面的策划,不管是什么工种的策划,都当成“傻瓜”看就可以了。我们公司强调的就是这样,策划要什么,我们提供工具需求就可以,只要给他们提供可以迭代多次的工具,在游戏里面实现快速迭代的流程,大概率是可以产出好的游戏作品。

但是,如果都听策划的,可能一、两个月以后,很多事情都是灾难级别的,会直接把项目组拖死。

这里给大家分享一个小案例,是我们到今天一直沿用的。“乐高式开发”,这个名字可能大家都听过。开放世界是高消耗的,如果能够在各个方面节约性能,是这个项目能不能做出来的一个重要因素。

我们在开始进行制作时,就规划了很多基础物件,利用基础物件去搭建出较为丰富的其他物件,就像乐高积木一样,包括很多贴图什么的都会考虑复用的问题。

但这里面所产生的问题是,如果在开始的时候没有定义好很细致的规则,没有定好这部分的制作流程,到后面基础物件的部分很多会被浪费掉,会没办法使用。

这是我们之前走过的弯路。我们一开始想这个很好,要做这个,但我们以前没有做过,只能边做边尝试、边探索,但又发现有很多废弃的资源,这对项目组来说伤害是很多的。所以,建议大家一定要在前期尽量想清楚,你要以什么方式进行制作,在具体制作的时候,各个细节点的规则和逻辑是什么,有什么流程、有什么规矩。如果这些问题没有想好的话,可能会浪费几千万。

还有就是在目标的追踪和管理上,也给大家分享一个小案例。

这是一个很粗的表,我们开始做开放世界的时候,整个项目组发散思维,一共发散出了八个大点,这八个大点已经可以组成一个开放世界的游戏了。但是,只有方向不行,每个人都有自己的想法,我们采取什么方式同步这个目标呢?

我们让大家提一下对这八大点的理解,当时提了500多条,我们把这500多条进行去重和组合,筛选出了100条。之后,核心团队就对这100多条进行评估,要做什么实施方案。到了这一步,就会筛选很多细的点,再把这些点进行拆分,看需要多少资源、多少人、多少天去做。

经过这样一步一步的细化,才终于让项目组所有人都搞清楚,知道针对开放世界要做哪个点、每个人负责哪个点。我们没有同步好的时候是非常痛苦的,策划团队会带着技术团队、美术团队瞎跑,都不知道跑到哪里去了。

不管大家做什么项目,这一轮的目标都要有,然后再进行拆分、考虑如何实现、能不能满足项目诉求。如果不能满足项目诉求的话,是不是要转其他点进行突破。我的建议是,如果你要做开放世界,这一轮的梳理一定要做,因为每个人的理解都是不一样的,如果不做,对于项目是没有进展的。

之前我们跟其他公司进行过比较紧密的配合,做过很多用户调研,开放世界的基础就是无缝大世界,要有无边界的世界感觉。这方面的实现,跟我们整个地图的制作方式也有关系。无缝大世界的话我们服务器方面已经实现了,而且可以做到相对比较高的同步。

这两个小视频相当于两个小展示,大家可以看一下,上面的视频里有一些人在跑,头上有小球和没有小球,说明在不同的服务器里面。我觉得这是无缝大世界在服务器方面一个很要命的技术点,我们用了7到9个月的时候修改,然后再同步。

从我的角度来讲,这方面有比较高的致命风险,因为我们经历过服务器的推翻和重做,所以我觉得,如果要做这块的话,在服务器方面,前面这两个点如果不能很好解决的话,就不要盲目去立项。

再介绍一下AI。因为不管是真实世界里人与人之间的交互,还是人与游戏世界里人和动物的交互,玩家的感受都很重要。我们是基于一个模糊逻辑的决策系统,做到了支持NPC的听觉和视觉,使得NPC可以与自然环境进行交互,可以制定NPC的身份和性格,可以更真实的进行目标决策和技能决策。这是刚才所说的同步,经过一轮阵痛的推翻、重来,真的是惨痛的教训,希望各位技术大咖能够想清楚之后再做。

我就介绍到这里,下面请巨火工作室的引擎负责人张强给大家介绍引擎方面的技术应用,谢谢大家。

巨火工作室的引擎负责人张强

张强:大家好!下面给大家看一下我们四、五月份游戏效果的视频。

(视频)

整个项目是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等,还有Iphone8、IphoneX、IphoneXR和IphoneXS设备上面全画质流畅运行。

我们所做的这一切,都是为了大家游戏时能有更好的体验。我就跟大家分享这些,谢谢大家。

下载「陀螺科技」APP

获取前沿深度元宇宙讯息

首页

游戏资讯

运营推广

研发设计

行业活动

数据报告

工具包

GAME SHOW

VR陀螺

陀螺名片

关于我们

关闭