两大开源游戏引擎Cocos2d-x及OGEngine对比分析-阿里云开发者社区

开发者社区> 青衫无名> 正文

两大开源游戏引擎Cocos2d-x及OGEngine对比分析

简介:
+关注继续查看

image

在近期的全球移动开发者大会上,触控发布了Cocos 3D引擎;而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣布将支持跨平台。

Cocos2d-x和OGEngine都是当前比较受开发者欢迎的开源免费手游开发引擎,而近期更是受到越来越多的游戏开发者关注。在国内,Cocos2d-x占有一定市场份额,然而从Android社区成长起来的OGEngine发展势头迅猛,受到越来越多开发者的关注。

有意思的是,Cocos2d-x和OGEngine的发展轨迹惊人的相似:Cocos2d-x和OGEngine都源于国外个人开发者的开源游戏引擎。Cocos2d-x源于由Cocos2d发展而来的Cocos2d-iphone,基于Cocos2d-iphone拓展跨平台;而OGEngine源于个人开发者Nicolas Gramlich的开发的Android开源游戏引擎AndEngine,基于AndEngine拓展跨平台。两者都由中国公司进行优化和拓展,并受到国内甚至海外开发者的欢迎。

下面我们就来详细对比下Cocos2d-x和OGEngine。

Cocos2d-x源于支持iOS游戏开发的Cocos2d-iphone; 而OGEngine则源于Android游戏开源引擎AndEngine. Cocos2d-x基于Cocos2d-iphone,拓展Cocos2d跨平台;采用C++开发,目前支持的平台有iOS,Android, Windows等。OGEngine是基于AndEngine,拓展AndEngine跨平台;采用Java开发,支持的平台有Android和iOS。

由于Cocos2d-iphone是以Objective-C为基础开发的,Cocos2d-x支持的语言是C++。所以采用Cocos2d-x开发游戏的开发者必须使用C++。然而Java程序开发者占大多数,而且正不断扩大,所以一款支持Java的跨平台开源引擎是十分受欢迎的。OGEngine正是在这样的背景下快速发展起来的。

Cocos2d-x入门难度相比于OGEngine要高。Cocos2d-x在插件兼容性方面较差,如果开发发者更改了引擎代码,则可能导致不同的环境不兼容。

OGEngine主要使用Java语言开发,但是在大运算量耗时功能时,OGEngine试用了C/C++本地代码进行开发,比如物理引擎及音频处理。作为开发者,只需要关注Java就可以了,OGEngine已经将所有本地代码封装好了。OGEngine支持Android和iOS平台,支持使用java直接编写iOS游戏;更多平台支持也在陆续拓展中。

Cocos2d-x和OGEngine的详细对比如下:

image

Cocos2d-x和OGEngine各有特点,针对的开发者人群不同。对于开发者而言,意味着他们将拥有更多选择,使得他们可以更加便捷地创作游戏。对于整个产业而言,OGEngine的崛起,会极大的降低手游开发的门槛,让更多开发者,特别是Java程序员,投入到这个行业,创作更多优秀的作品。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一不小心,它成为了 GitHub Alibaba Group 下 Star 最多的开源项目
随着微服务的流行,应用更加轻量和高效,但是带来的困境是线上问题排查越来越复杂困难。传统的 Java 排查问题,需要重启应用再进行调试,但是重启应用之后现场会丢失,问题难以复现。
852 0
解读OpenMessaging开源项目,阿里巴巴发起首个分布式消息领域的国际标准
OpenMessaging项目由阿里巴巴发起,与雅虎、滴滴出行、Streamlio公司共同参与创立,项目意在创立厂商无关、平台无关的分布式消息及流处理领域的应用开发标准。据发起人介绍,随着标准的不断演进,会有更多的互联网、云计算厂商参与到该项目以及生态体系中来。
11099 0
1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
 1 游戏逻辑架构 详细介绍 A 一个导演同一时间只能运行一个场景,场景当中,可以同时加载多个层,一个层可以可载多个精灵。层中亦可以加层。 B  场景切换 sceneàaddChild(layer); layeràaddChild(sprite);
1218 0
+关注
3598
文章
840
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载