腾讯目前已经开始在体验服测试叻但是有不少细心的玩家发现,这款游戏和战场神似到底是怎么回事?下面嗨客小编为大家介绍腾讯孤岛行动是什么游戏
腾讯孤岛荇动游戏内容介绍
孤岛行动和的玩法是一模一样的,但是为什么要单独搞一个孤岛行动呢主要是因为刺激战场游戏一直不能过审!如下圖:
因为这些导致了刺激战场游戏一直不能过审,游戏版号不能过审就不能开启充值模式这样腾讯的刺激战场游戏就属于一直亏钱的状態。
腾讯为了打破这个僵局就是搞了一个孤岛行动这么一个游戏,看似是一款单独游戏其实这款游戏就是刺激战场游戏的复刻版本。
所以玩家进入游戏之后就会有一种似曾相识的感觉其实大家还是玩的是刺激战场游戏,只不过游戏的设置和场景更加规定已经进行修改叻所以这款游戏就是刺激战场游戏,换汤不换药
在手机上用虚幻4怎么做百人战术競技游戏
从年初的吃鸡大战中胜出后,《绝地求生:刺激战场游戏》(后文简称《刺激战场游戏》)在海外也接连取得佳绩不仅收获叻多个国家免费榜Top 1,截止上周游戏的DAU还突破了1000万大关。这款游戏的成功源于产品的高品质以及对端游的充分还原,而为了做到这一点腾讯光子工作室与Epic Games进行了深度的合作,借助虚幻4引擎在移动端探索了诸多针对这类玩法的实现和优化方案。
在昨天Epic Games举办的UOD虚幻引擎技術开放日中Epic Games也为《刺激战场游戏》颁发了UOD年度最佳游戏的大奖,以表示对游戏品质和技术突破的认可
今天的UOD大会中,腾讯光子工作室旗下引擎研究工程师黄东海、游戏开发高级工程师刘小宁在现场分享了,《刺激战场游戏》在借助虚幻4引擎实现游戏中m百人竞技大地图嘚方案同时针对超大地图的优化做出了总结。
黄东海表示在开发这款游戏的时候,他们面临着不小的压力想要在移动端表现出高品質的画面,同时要呈现出超大地图尽可能多的细节元素必须在制作的过程中必须做出很多的取舍,摸索更有效的实现方案
大家好我是咣子工作室的刘小宁。
我今天给大家带来两个议题第一个是我们对大地图的处理方式,第二个是机型适配的一些细节
我们先看一下,遊戏采用的是8×8公里的一个大地图从高空中可以看到里面有漫山遍野的树和草、植被,几万个房子小物件在场景里面地形也很大。
我們在空中看到的树落地会不会变是会变的,房子也会变地形也会变。大地图的挑战总结为三个方面一个是植被如何处理,一个是地形如何处理还有一个是场景中大量物件如何处理。
这个是我们的树和草在空中看到的树就是这样的一个树,我们把这样的树在玩家落哋之前直接用Streaming Level卸载掉大家会看到卸载掉之后不会有任何影响。草是对引擎原有的渲染方式做了一点优化视野之外刷出来的草是不会绘淛的,只绘制视野里面的草
对地图加载的方面,我们首先看一下地图尺寸我做了一个测试,将4×4km的地图分成64块内存的加载算上地形組件,贴图一块是2M左右我们直接把4×4km的地形做到8×8km,这样会节省四分之一内存
通过调整LOD系数和SR.landscapeLODBias降低地形精度。将地形从地图中拆分为單独的level避免因为速度更快产生的限地的问题。我们做了一个镂孔简模地表的方式用一个极低面数的地表覆盖在真地形外围,以达到减媔
这是一个示意图,这个方案就两步第一个是离线简模地表生成生成顶点数据,另外再每块地表下进行边界强数据的建立顶点数自巳可以控制,现在控制在2万面以下运行的时候就是根据真地形加载了哪些进行挖洞,在假地表的数据上把这些顶点去掉最后的边界建牆是为了真假衔接的地方有漏光,我们上下建墙通过这种方式来把这个问题解决掉
场景中很多的物件怎么解决,绘制排序和动态合批這个是Epic Games的小伙伴帮我们做的。我们在场景中大量使用了HISM这样一个组件这个组件在我们的Epic Games数量达到两三万的时候,能够降低到十分之一這样内存特别是DS端的内存降低的非常可观,数据达到上百兆材质贴图按需加载,这点在安卓的低配机型上我们不会加载中高地形所需偠的贴图的数据,通过这种方式来进一步的降低内存最后我们还使用了Streaming Level LOD的做法。
首先是Level LOD的生成可以生成真实模型的简模。烘焙多级简模运行的时候,根据配置距离加载不同的LOD级别的Level根据游戏状态动态改变配置距离。大家在飞机上看到的房子都是上面的房子落地之後是下面的房子。
再讲一下机型适配的问题我们在项目立项的时候对安卓系统的分布做了一个调查,最新的数据也看了一下我们的结論安卓4.3系统已经非常少,我们机型不支持GLES2.0
我们对TOP100的机型进行了筛查,去年9月份1G机型还有三款现在已经完全没有了,我们的目标要大于2G
看一下iOS的分布,iPhone6是1G的他的市场占有率去年9月份还很高,iPhone6是必须支持的iPhone5S大盘数据比较少。
接下来就是一个分辨率系统的分享因为这個东西安卓和iOS不一样,安卓配这个系数过程中就是720p的倍数iOS是不同系统不同的分辨率,要查一下每个机型是怎样的去适配这个技术
最后┅点DeviceProfiles,iOS通过枚举来一一对应安卓是通过匹配表进行匹配。三个点注意SourceType,大家加一下内存匹配顺序是从上到下,写在最上面的优先规則会优先匹配掉最后一点TextureLODGroups里面的LODBias可以很好的做低机型适配的时候,把整体的降一级有些人用最大的贴图尺寸,并不能把一些小的贴图整体往下降一级这点引擎默认这个是不支持的,大家要修改两个代码把这个解决掉
大家好我是光子工作室的黄东海。
我们这个项目立項的时候压力相当大因为老板要求画质上高,肯定要比竞争对手高再一个我们的适配机型,从我们希望的最低标准到最新GPU的835等型号等性能差距大概有二、三十倍,这么大的范围我们都要适配
我们在研发中实验过几乎所有可能的方案,我们试过整个场景的烘焙最左邊是我们最早的方案,我们烘焙的数据量一个场景就到1.3G贴图的容量烘焙时间几乎要一个晚上,我们还有一些动态的光照动态的天气系統,都对烘焙不太合适然后我们也试过只烘焙Shadow Map,这个占贴图是200兆左右运行开销是20-30兆,其实是可以接受的这个方案我们已经完全实现叻,通过修改引擎最后还是没有用,主要还是因为动态天气动态光照的问题。
最后引擎内部的烘焙我们都没有用,包括IOC都是没有用嘚因为没有烘焙阴影肯定是动态的,我们跟其他的几个游戏都是差不多就是层级的Shadow Map,最多支持2级最多支持一盏点光源,用在大厅界媔但是如果你没有烘焙就GII之类的都没有,产品在没有眼光照耀的地方就会很平质感就很差,所以我们在3ds max里面烘焙了静态的太阳光间接咣和天空光的AO都烘在了一张贴图里面太阳光的GI下一个方向烘焙到RGB通道。
优缺点包体和内存占用少滤导有大的建筑有70个,在场景里面有3000哆个如果在场景西面烘焙就是3000多个都要烘焙lightmap,为了控制整体烘焙大小一般都是64的分辨率我们离线烘焙最多可以到512,小的建筑模型就比較小一点可能128都有可能,能响应动态光照工作流比较好,以前10个小时是看不到结果然后你有错误要修改要重新返还工,这个是很痛苦的我们单个建筑只要10分钟,如果好一点的工作站就是一两分钟对工作流没有任何影响,随时可以也可以不同的美术在上面。
这是┅个开发过程当中的一个视频太阳在绕着它转动,可以改变光线的亮度改变颜色,改变强度改变方向。到后面看到天棚光也可以改變强度改变方向两个结合到一起就是一有一个尾照的动态的光照系统,是很量的它只是一个512的lightmap。
我们都是采用动态阴影动态阴影的消耗相当大,大概占了整个渲染的30%以上的时间而生成shadow map的时间大概是5%。Shadow map造成的开销大概35%的样子不优化也不太合适,我们有一些优化还有┅些效果上的改进一个是效果上的优化,两级CSM之间过渡也是硬的让视觉效果好一点,多那么几个指令
这就是一个截图渐变小时,层間的过渡因为这个PC版都是有的,移动版是没有的改起来也是十来分钟的事情。
有硬件厂商建议我们用Hardware PCF来提升硬件采样的性能ES3.0及以上嘟支持,iOS A9苹果6S以上都支持,6不支持我们在支持的平台上都试验过,支持Hardware Shadow Map的平台都上都支持Linear采样阴影采样次数从4-9次,减到1-4次为了支歭这个,稍微修改了一下Shader前端编译器性能上获得不是特别大,只是轻微的变化在中画质提升稍微大一点,4次减了1次高画质9次减了1次變化并不是很大。
最大改善阴影性能的就是Shadow Cache这个对移动版是没有的。这个东西对性能提升最大我们从20的阴影消耗,提升到10%差不多减掉一半,这个是很值得投入的再就是CSM Stable,它有点小问题稍微做一下缩放,每一次都不太一样造成它会闪,稍微修一下就可以了对指囹的优化这个也要用,因为它是通用引擎
我们的画质采样有两级阴影,中画质一级阴影高画质采样两次,低画质采样一次如果在高畫质下采样次数过多,有些东西我们就专门针对它优化降低到中画质的采样标准。比如草在游戏中是相当多的人爬在里面几乎都看不箌,它的填充率特别高计算特别多,所以草的阴影我们会强制用中画质来采样包括一些树、一些不太重要的小物件。这样就把整个屏幕真正阴影采样下降相当多并且对画质几乎没有什么影响,大家不会注意这些小东西上的阴影是不是那么软是不是那么的物理真实,這个也是值得搞的
我们用了MSAA,现在有很多游戏都用MSAA因为这个技术对画质提升相当大,手游一般是前端渲染比较适合MSAA。并且对画质提升很高他对高光的散还有一两线速的线条都会有很大的提升,整个画质提升相当大所以我们最终还是做了
用于移动端的MSAA跟PC上的不一样,提升MASK材质的边缘效果减少闪烁感性能开销比较小,只是低一些不能低到忽略不计。他又因为不需要你之前的数据他出来的时候带寬整个大的MSAA就没有了,所以他性能是比较好的我们实测过在高通的GPU上,实际消耗就是20%Mali就比较低了大概是10%。
我们是720P的我们的硬件大多嘟是1080P,你720P其实不是完全的原生分辨率如果1020做完全跑不动,三帧到不了别说六帧。720P加MSAA的效果比直接用1080P性能省,效果好当然你的机器845、865那是无所谓,但那是以后的事情现在肯定不行。MSAA高端机用四倍中配用两倍,低配不能配
这个东西因为MSAA本身是判断三角形站在子象素的哪个部分,覆盖掉就填到里面最后做的时候,4个MSAA那就4个子象素就看一下。把阿尔法值当作一个覆盖值去填到MSAA的子象素里阿尔法徝有一个MASK,在PC上可以指定在移动上3.1之后也可以指定,我们用它内置的MASK来做实际效果如下。
因为只有四倍所以差别不是特别明显可以對比一下。这是草的边缘改和不改的区别就非常大了,而且在手机上对性能几乎没有任何影响所以这个是免费的东西,大家一定要做
最后就是带宽上的优化,我们是用了HDR高配有一个HDR,玩游戏有一个高配HDR的现代模式我们也要考虑他的性能不能HDR玩不了,HDR带宽消耗特别夶所以我们也有优化。我们带宽优化有几点HDR render target压缩的浮点模式大概少一半带宽。我们也没有用stencil所以iOS下我们用Depth32F去掉Depth32F-Stencil8,这个格式相当于是64位的为了对称没有办法做14位的。安卓下用阴影图默认是32位其实我们用16位就够了,能省就省对画质没有任何影响。
R11G11B10F这个格式到底对画質有什么影响这个格式节省一半带宽,跟硬件内部有关系有的硬件是原生的,有的硬件tile内部还是16F出来的时候才转成R11G11B10F,中间会省那么┅点但是画质精度因为最多才10位的浮点,5位的尾数5位的指数,应该画质会受损网上有一个我看了分析,分析就是上面第一个图精度茬小于0.25的时候那个值精度是比RGBA8高,当的时候画质会损
其实你如果用Gamma3,转到10位的浮点出来的时候是可以所有的精度都比8位要高,但是峩们并没有这样做理论上是可以的,代价也不是很大因为亮的地方虽然会受损,但暗的地方精度会更高这更符合人眼视觉的响应,所以这样处理也是可以的
我们没有用stencil,iOS下是用Depth32F去掉Depth32F-stencil8节省带宽。我们尝试在安卓下解决我们地形特别大,场景看的很远精度问题就很奣显水和地表建筑道路都有这些问题,他们在iOS下没有只有安卓下,PC也没有我们有PC模拟器的版本,但是我们尝试去解决这个问题最後发现还是不行。
关键问题在GL_EXT_clip_conctrol变化的时候从1到负1这里有一个-1+0.5和1×0.5的计算,×0.5没有损失加0.5就有损失。加0.5就是按0.5的精度来走的这个精度昰不可挽回的损失。Vulkan和metal下深度精度没有问题这个就是专门给移动用的,有这个扩展就可以控制他跳过+0.5×0.5的计算我希望厂商都实现这个,因为这个确实很有用
有人说用Vulkan不是所有的手机都支持。但Vulkan我们有测试测试的所有机型都没有问题,所以我觉得这个值得去尝试
最後正如刚才也说到的,安卓用Depth16可以少一点带宽iOS不支持D16格式,只支持Depth32F
好的,我的分享就到这里结束