返回 登录
0

游戏优化技术分享

​1、为什么要优化

​    ​ 以前做端游的时候,开发者除了解决游戏卡顿问题,并没有为包体的大小而发愁。好的资源可以无节制的堆积,所以在端游盛行时,就有了次世代游戏的诞生,画面渲染及其逼真。逼真的画面也意味着模型的精致和材质的精细。如今到了移动端游戏开发时代,由于移动端硬件的限制,以及网络带宽的限制。玩家不可能像做端游一样,无限制的堆积素材增加安装包体大小,另外游戏的卡顿问题也是必须要解决的问题,因为这些问题直接影响了用户的体验。所以开发者在发布游戏之前必须要优化游戏包体和解决游戏卡顿问题。在笔者的著作《Unity3D实战核心技术详解》电子工业出版社一书中有详细的关于优化方面的讲解。

1349000567a95d9ef539

​2、如何优化

​   优化一款游戏主要是从两方面考虑:一是美术资源,二是程序代码。先从美术资源说起,以Unity引擎开发为例,Unity引擎提供了一个强大的编辑器。开发者利用编辑器可以非常迅速的堆积一个游戏场景,但是堆积的场景在不考虑包体大小的情况下是非常好的。但是作为公司来说,制作的产品是要发布的,发布的产品就要考虑到产品包体的大小。根据平台的反馈信息,包体当然越小越好,包体大小在40M左右是用户认知度最高的。为了将包体减少到这个数值,作为开发者必须去优化。先说资源优化,资源包含模型和材质图片,模型的数量决定了模型的大小和模型材质图片的大小。在制作模型时必须要制定相应的规范,模型分建筑模型和角色模型,二者的面数都应该控制在千面左右,材质图片采用带有Alpha通道的使用png格式,而不带有Alpha通道的使用jpg格式,还有对于材质清晰度要求不高的可以采用Unity自带的压缩方式,将其设置在512以下的大小。程序的优化技术点比较多,这里就举几个重要的介绍一下:对于游戏中重复使用的特效或者模型可以采用对象池将其存放,避免每次重新创建和删除。模型利用预加载的方式处理,避免游戏生成模型时出现卡顿。避免在Update函数中使用for或者while循环,影响每帧运行的效率。将资源放到资源服务器上进行动态的加载,减少包体大小,还有代码的重构增加代码运行效率等等。

 ​3、优化的优点

​    ​经过优化的游戏工程,在游戏上线版本迭代方面可以快速的进行版本迭代,在这里给大家强调一个事情就是:优化必须要兼顾框架设计,好的框架设计在模块之间的耦合性方面做的非常好,不会出现牵一发而动全身,游戏工程更易于维护。

    4、总结

​ ​ ​ ​一款好的游戏需要制作人,客户端主程,服务器主程,主美共同努力才能做出一款好的精品游戏。游戏制作的各个环节都要仔细考虑设计。

评论