cocosd-android原来是个山寨货
1、技术团队无优势:Cocos2D-Android版本与iPhone版本完全无关,无论作者还是团队都不同,所以iPhone版的技术优势和原有的iPhone社区支持对于Cocos2D-Android根本不复存在,可以这么说,他除了山寨个名字外,就和Cocos2D-iPhone半分关系都没有了。
2、iPhone的语法优势在Android中不复存在:众所周知,Cocos2D-iPhone是以Objective-C为基础开发的,虽然这种语言相对其它语言没有太大的优势,却是IOS环境下首选开发语言,而Cocos2D-iPhone适应其语法特性,据此形成了自己独特的逻辑结构与开发方式,非常适合于iPhone环境下开发。但是,Cocos2D-Android却妄图以Java语法环境模拟Objective-C环境,业务逻辑完全照搬Cocos2D-iPhone以Objective-C实现的逻辑,这就非常不妥,很多明明可以在Java中以更简单方式完成的实现,在它里面却变得复杂无比,这种东施效颦的做法,不单不利于游戏开发,而且无形中极大浪费了Java语言的优势,也压低了Android环境本身具备的性能(但是,Cocos2D-iPhone可没有照搬它的原型——Cocos2D-Python)。
3、物理引擎极低效:最恐怖的,在于Cocos2D-Android照搬了JBox2D,而不是对C/C++版的Box2D进行JNI封装。任何拥有常识的人都知道,物理引擎需要大量的浮点运算,对于浮点运算性能本就不高的手机CPU来说,在Android的Dalvik虚拟机环境中跑物理引擎根本就是自杀,但凡做过手机或Android开发的人都不可能接受这种方式。
4、BUG连天,兼容困难:这点没什么可说的,你找十台不同厂商的测试机,跑个最基本的Cocos2D-Android应用(比如做个多球体刷屏),将会惊异的发现,至少有五台跑不了Cocos2D-Android,他的兼容性远不如Rokon。此外,你说其它引擎BUG多,而目前BUG最多的却是Cocos2D-Android,以至世界上还没有以它开发的Android游戏被发布出来(就连作者自己写的都没有)。
5、不符合Java用户习惯:目前搞Android的,大多都是做Java出身,他们习惯于那些Java语法的特有代码结构,习惯于Java2D的编程实现方式,而照搬Cocos2D-iPhone的Cocos2D-Android,在实现上对Java开发者来说非常“不亲切”,这也是大多数人不选择它的理由。事实上,如果我们想要用类C的语法实现Android游戏,那么用orx会好得多(直接NDK),犯不上用一个半似Java半似Objective-C的残次品。
6、用户少的可怜:这点没什么可说的,毕竟世上还是明白人多,特别是公司做项目时,该用什么不该用什么自己测试下就清楚了。但是,正如优势会积累一样,劣势同样会积累。Cocos2D-Android这个山寨Cocos2D-iPhone的名字虽然比较吸引人,可惜并不会顶用太久,就算初期它能靠名字混些下载量,时间久了就凭这种性能,迟早连半个用的也没有,而没用户的引擎,将等于不存在的引擎。