android游戏引擎选择

来源:互联网 发布:知进退明得失的意思 编辑:程序博客网 时间:2024/05/16 14:44

        android游戏引擎较多,在选择时根据自身要求进行必要的筛选。

        此次游戏引擎的筛选所依据的原则是:1、游戏引擎必须是开源的,免费的(开源便于修改代码,优化性能)2、具有良好的开发团队3、所使用的语言尽量保证是java或者C/C++4、在满足所有的要求的情况下,优先选择具有开发3D的那一款软件5、对于软件的要求是其必须具有良好的架构,足够多的开发文档,具有相关网站进行资源索取。6、引擎使用简洁,兼容性好,对于硬件的要求不高,最好可以在通用的配置上进行加速,即不会超过移动设备的局限性,如电量,cpu,gpu等7、支持opengl,可移植到android平台。

        另外引擎的选择,重要的两点:1、效率,算法是否足够优秀;2、效果是否足够好,能不能达到你想要的绚丽效果,锯齿是否严重,运行时是否清新等。但是这是最后选择阶段以后才考虑的事情。

        常见的游戏引擎有:AndEngine,Rokon,LGame,unity3d,Alien 3d,cocos2d-x,cocos2d-android,gamine,andengine,ogre,lrrlicht,Libgdx,jpct,jmonkey,Angle,Catcake。

 

AndEngine,框架性能普通,文档缺乏。架构决定了游戏能走多远,因此排除该引擎。

 

Rokon,开发团队不行,并非公司,存在bug,因为长期缺乏更新,用的人渐渐变少,

 

LGame团队不行,并非稳定的公司,作者懒惰,文档的提供上不行,因此排除该引擎。

 

unity3d尽管已经实现免费,但是所使用的编程语言并不是java或者是C/C++,且并非开源,因此排除。

 

Alien3d是一个个人开发的游戏引擎,在团队上不将其纳入考虑,加上更新上不行,因此排除。

 

cocos2d-x,cocos2d-android,coco2d是ipone上移植过来的,符合大多数的ipone开发者的开发模式,但是由于照搬了object c的开发模式对于java开发者来说是会有些许的不便。也就是说,在语言上存在问题,不纳入考虑。

 

Gamine虽然小巧但是效率稍低,因此不纳入考虑。

 

andengine框架性能普通,文档缺失,不纳入考虑。

 

ogre编程语言是c++,因此不纳入考虑。

 

lrrlicht编程语言是c++,因此不纳入考虑。

 

 

 

 

最后剩下的游戏引擎都是很好的,他们分别是libGDX,jpct,jmonkey,catcake,angle。最后决定选用的是libGDX。

 

Jmonkey封装很好但是很多底层无法修改。

 

Angle,专为android平台设计的,敏捷切适合快速开发,基于Opengl es技术开发,引擎全部由java代码编写,并且可以根据自己的需要替换里面的实现,缺陷是文档不足,切下载的代码中仅仅包含少量的示例教程。

 

Catcake在易用性以及运行性上皆有出色的表现,支持常规的游戏开发功能,诸如精灵动画,音频处理和视频播放。

 

Jpct最大的特点就是向下兼容性很好,拥有强大的3D解决方案。

 

Libgdx,开源游戏引擎。是这些游戏引擎中较成熟的,因此所使用的人也较多,并且关键还是有专门的社区网站,资源也是比较丰富的。这点是jpct所不具有的,因此虽然libGDX相对jpct有较多的缺陷,但是这些缺陷还是可以弥补的,加上其所拥有的优势,所以最后选择它作为游戏引擎进行游戏开发。下面是它的一些优缺点。

Libgdx对于物理引擎的封装使用jni封装了box2d的c++版本,使得其运行效率比其他同级的物理引擎如jbox2d快不少。现在流行的几个包含物理引擎的Android游戏引擎(如Andengine、Rokon等),几乎都在用libgdx。因此,考虑物理引擎的话这会是个不错的选择。

存在效率差异,就是说,在pc上可能很快但是在移动设备上可能很慢,必须清楚很多能做的和不能做的规则,开发者应该遵守这些规则,为了保证即使在低端Android,应用都拥有良好的运行效果。

兼容性强。

Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像。有掺杂c的代码,因为这是为了处理一些对于性能有较高要求的操作,如物理引擎,音频处理。作为用户只需要关注java端即可已经将所有的本地代码封装好了。同时,可以在pc上编写调适自己的应用。注意:在于精灵类灯的相关组件在使用上不够简化,文档较匮乏。


原创粉丝点击