腾讯《光荣使命》手游 图形效果、优化评测
在游戏模式、操作体验等方面,已经有过很多值友的评测了。
所以我本篇来做GUI、渲染器、场景设计评测。
场景设计:
开发《光荣使命》这款游戏采用的引擎,按安卓版游戏的文件架构看,可能是某种UDK(Unreal Engine)的变形,但也可能不对。
首先《光荣使命的》地图尺寸是8192x8192,共计64平方公里,在场景中的天气系统有很多套,包含晴天、多云、清晨、黄昏、黑夜、雾天,但不支持在游戏过程中产生天气变化,。
所以说游戏并不是真正的“动态”天气效果。而是预先为每种环境天气制作了单独的envmap、预烘培贴图和打光设定。这些在UDK开发器中有付费的插件可以自动完成,这种大公司肯定不差钱买插件。
然后在游戏开始时随机选择一种天气的脚本文件载入即可。
在游戏中,水体、树木、云的部分也是可动的,但并非即时演算。都是通过UDK内置的插件植入脚本解决。
举例来说树木可动是通过SpeedTree插件自动预定animation动画,其实speedtree的最新版已经可以实现树木破土而出茁壮成长,这在很多PC游戏中已经屡见不鲜。
渲染优化:
能实现什么画面效果不重要,重要的是同样的画面效果下,谁对资源的消耗最少。渲染优化问题解决得好,才能有更多的玩家跑得动游戏。
在早期的大地图3D游戏中,通常通过减少视野距离(viewdistance)和增加战争迷雾的方式,禁止渲染远距离物件,减少游戏的显存和计算资源消耗。
但到了光荣使命的2018年,游戏除了DX8时代即普及的LOD(level of distance)外,还引入了遮蔽剔除技术、几何实例技术等PC平台在DX10时代才引入的新优化方式,所以可以提供几乎无限的视野距离。
LOD:通过为目标定义每个level的渲染精度,针对不同距离的物件选用不同level的模型精度和贴图分辨率进行渲染,过远的直接剔除不予渲染。
远距离的地方不长草。
遮蔽剔除:在视锥(玩家理论上看得见的部分)中被遮挡住的物件不予以渲染,当视锥中物件不被遮挡时恢复渲染,例如被你人物挡住部分的草,就不会被渲染。这可以减少对计算的需要,但会增加内存需求,游戏开发的效能优化往往就是在存储和计算资源之间平衡取舍。
图中被树杈挡住的部分玩家看不见,就可以不渲染。
几何实例:游戏中每增加一个需要被即时渲染出来的物件,都会增加计算和消耗,但通过几何实例技术,同样的一棵树只需要被渲染一次,其他的都是带编号的复制实例,所以只消耗一次多边形生成需要的资源。
游戏画面设置:
游戏画面的可调节部分有高中低三档,和“真彩色渲染”选项。
高中低三档,主要是模型及材质LOD等级的设定不同,可能是-2LOD。
降低设定的画面效果后,会在更近的距离开始取消对草地的渲染,也会降低使用的贴图分辨率,让各种材质变得模糊。但对材质对光影的模拟效果似乎并无影响。
而所谓的“真彩色”,实际上是增加了后处理混合滤镜(Post-Processing blend effects),并不是游戏的光影效果产生了什么变化,只是调高了画面的饱和度和对比度,也可能同时还进行了某种USM锐化。
最低 ,不开“真彩色”
最低,开“真彩色”
最高,开真彩色
读取载入优化
《光荣使命》游戏设计时,使用了预渲染手段,在你还没有匹配成功时,就已经偷偷加载完成了游戏内容,在你匹配成功后,可以非常快地迅速加载完成游戏画面。
网络对战匹配&通信优化
其实吃鸡手游,目前来看初期进入市场的主要瓶颈在于技术层面和设计层面的结合,比如说如何解决50~100名玩家在一个场景中活动带来的各种的问题。
首先是大“房间”玩家多对于服务器的负载。其次是对于数据通信,如何既提高数据包压缩的幅度,减少数据包发送总量,又避免部分数据包丢失、通信延迟造成的影响。而通常数据包压缩的幅度越高,丢失部分数据包造成的影响就越大。毕竟现在游戏开发还没有实现去中心化和区块链通信协议的应用。
在这一点上巨人的团队(忘了说游戏不是腾讯旗下工作室开发的)做得还不错,也可能是UDK本身就提供了这种功能。
其中一个很有意思的做法是,在《光荣使命》中,单人匹配模式的玩家死亡后不能继续观战,必须强制退出游戏,而这有利于减少服务器负载和通讯问题的影响。
但即便如此,游戏想打上一场仍很可能要消耗不少的匹配时间,比如说我在夜间匹配了10分钟,仍未能凑够人数开始游戏。对于主要玩家群体使用碎片时间为主的手机游戏,10分钟可不算短,将影响游戏体验。
如果能增加开局后进入游戏的模式,将很好地解决这一问题。
Simon07
校验提示文案
Simon07
校验提示文案