当前位置:问答库>论文摘要

题目:跨平台游戏引擎Cocos2D-X的性能优化方法的研究与实现

关键词:Cocos2D-X;游戏引擎;多线程;OpenGL ES

  摘要


随着移动互联网的快速发展,智能终端设备如智能手机,智能穿戴设备和平板电脑等快速普及,伴随着3G技术与4G技术的发展,移动互联网用户快速增长。根据互联网消费调研中心数据、腾讯数据开放平台等渠道联合发布了《2014年手游市场年度数据分析报告》2014年年底,手机游戏用户规模超过5亿,近半数中国人在玩手游,2014年年底,中国移动游戏市场销售收入超过200亿,同比2013年年底增长149.4%,预计2015年移动游戏的销售收入将达到350亿左右。

       庞大的用户群使得手游市场充满前景,而在这个特殊的时间窗口下,快速、高质量的完成自己的游戏产品就成为每一个开发者、每一个公司能否在竞争中脱颖而出的核心问题。而一款高可靠性,高效率,高易用性的跨平台游戏引擎无疑能够很好的帮助开发者解决这个问题,而现有的Cocos2D-X引擎的效率已日渐无法满足市场的需要。

       本文首先结合国内外游戏引擎的发展现状,对比介绍了商用2D与3D主流游戏引擎的各自特点。结合了当前对游戏引擎主流的优化方法和技术,提出针对Cocos2D-X游戏引擎进行的优化主要分为图形渲染模块的优化以及将现有单线程工作模式的引擎改造为多线程并行工作模式的优化方法。

针对Cocos2D-X渲染引擎OpenGL ES渲染部分的处理过程,通过优化减少绘制命令的调用次数即减少Draw Call次数,并降低光栅化阶段GPU工作负荷,从而提高渲染效率。一方面,通过使用到一种可以将连续多个相同元素各自的顶点数组合并到一个大顶点数组传送给GPU一次绘制。另一方面,通过显示裁剪技术,减少光栅化过程中上传GPU的像素信息,从而降低GPU的计算量。

针对Cocos2D-X引擎采用单线程处理的问题,通过将渲染与游戏逻辑分离的方法,基于Intel提出的异步函数并行模型设计并实现了基于多线程的引擎处理机制,提高了引擎的处理效率。逻辑线程负责在游戏的每一帧当中,将当前需要绘制的元素信息添加到待渲染队列(RenderQueue)中,而渲染线程则重复的在渲染队列中拿出最后一帧添加的渲染命令进行渲染,这样既可让大量的游戏逻辑运算和图形渲染的工作分担到各自的线程上。

基于测试游戏对优化后的Cocos2D-X引擎进行了实验评估,实验结果表明,对渲染引擎的优化使得新引擎在连续多个相同的静态物体的渲染效率上提升在17%左右;在动态(待绘制元素的位置等属性不断改变)元素的绘制上,在绘制5千个元素时提升4%,而当绘制元素超过1万个时,新引擎多线程优化的效果得以发挥,性能提升超过100%。