使用cocos2D游戏引擎开发游戏的话,是选择使用cocos2D-x使用C++来编写,还是使用cocos2D-html5来编程,原因是什么?
程序员文章站
2022-05-02 23:33:29
...
回复内容:
1. cocos2d-x成功游戏,刀塔传奇,我叫MT,三国来了,雷霆战机,全民飞机大战,全民水浒,神魔,龙之力量,神仙道,君王2,忘仙…… 唉,我不写了,太多了2. cocos2d-js成功游戏,Big Fish Casino( AppStore US top5),完美的《东邪西毒》,心动的《仙侠道》。
如果让我个人现在给个建议,我会倾向于推荐c++和lua方案。js方案有四个硬伤
1. SpiderMonkey这个库体积太大了
2. js性能始终还是追不上lua
3. 虽然微软工程师很努力,但是SpiderMonkey至今(2014-07-16)还是无法运行在wp8上。也就是说你用js写的 cocos2d-x游戏无法运行在wp8上,但lua游戏可以。
4. 最重要的:html5市场并没有如愿地起色
如果没有html5市场,那么jsb也就有点多余了。2014年我们的重点也转向市场广泛认可并且证明过的lua了,其次是jsb,再次是html5。
我描述的都是客观事实,希望对楼主有帮助。 谢邀。
最近刚好 cocos2d-x (下面简称cx) 和 cocos2d-html5(下面简称ch) 都接触了并用在了实际项目开发当中。由于对 cocos2d-html5 和 js 的认识都比较粗浅,所以下面说的一些权当感想或总结。
实际上在我这个项目中, ch 和 cx 我都使用了。
ch 主要用作 prototype 和 游戏核心开发
cx 用作最终版本发布
下面结合两者的优缺点说明一下为什么作这样的组合:
ch 的优点:
1)快捷。ch 使用 js 开发,js 语言*和灵活的特性,可以让开发者专注在核心规则和算法的实现上面,可以加快开发的进度;
2)方便迭代测试。ch 产出是 web 版本,更新迭代十分方便,很适合小规模测试;(在我进行开发的期间,基本上是每天一小迭代,一周一个稳定版本)
3)方便修改和调整。使用 js 进行修改和调整很方便。
4)对于网络的使用更为方便。由于 ch 本身就基于 web 的,因此使用服务器接口,网络服务很方便。
ch 的缺点:
1)debug 不方便。由于 js 过于灵活,所以可能会出现比较隐晦的 bug,加上 IDE 相对而言比较不成熟,所以开发过程中 debug 难度会增加。
2)隐藏 bug。 由于 js 容错性比较强,因此可能会出现原本错误的代码反而运行出正确结果的现象。这个一般而言后期移植都比较容易发现和解决,只是会稍微增加移植难度而已。
3)ch 本身不够成熟。ch 本身也正在迭代中,虽然当前版本已经比较稳定,但是也有隐藏 bug 的可能性。此外, ch 中元素的表现也未必能跟 cx 中100%相同。
4)性能,浏览器支持问题。在实际使用过程中,发现 ch 在不同浏览器中运行的效率并非一致。各大浏览器对于 ch 中粒子系统和帧动画的支持和性能都有差异,造成同一份代码在不同浏览器中表现效果不一致。
cx 的优点:
1)版本比较成熟和稳定。cx 迭代到现在也有好几年时间了,实际应用案例也很多,是一个比较可靠的库。插件也比较多。
2)性能比较高。(ch 使用 jsbind 也能获得较高性能,但我对于这块并不熟悉,而且这块资料也不多,因此不作比较。)
3)debug 更方便。IDE 的成熟,对 debug 很有帮助,此外市面上对于 cx 的实际应用很多,因此网上搜索解决方案资料比较多。
cx 的缺点:
1)C++ 语言本身比较不好掌握,而且语言本身比较拖沓,结构老旧。(纯属个人吐槽)
2)无法运行在 web 上面。硬伤,不说。
3)发布测试比较麻烦,更新迭代不方便。(比如说要发给远方的好友测试,每一个版本得发一次重装一次)
以上是对于 ch 和 cx 在使用过程中的总结,下面简单说一下我在上面提到的做法(即:ch 写 prototype,cx 写最终版本的做法)的优缺点:
优点是这样开发比较快,快速地出版本,能有效地减少风险,团队的人看到确实的产出,也会比较安心;能够在最快的时间内调整可玩性;顺带出了一个 web 版本:)
缺点是代码得移植一遍(个人移植用了3天,其实就是把代码重新敲了一遍,体力活...,另 debug 用了 2 天,一共5天)。 我感觉还是看自己对编程语言的熟悉,你以前做C的,当然用C++ (开发工具visual studio ),以前对javascript熟悉当然选择你熟悉的(开发工具 cocos2d-x editor)。为什么天天比较编程语言的优劣?有一点必须知道:如果一门编程语言太次了,早晚淘汰 区分很简单:
2dx非常成熟了,适用于商业游戏,功能完善。
2dh5还在实验探索阶段,你看到的所有的一切都是demo,还有很多很多坑要填。而关键问题是2dh5本身存在各种问题,使用H5做游戏的不少朋友现在都并不太看好它。
也就是说,2dh5肯定还要经历2dx成长的那个过程,无论是由于本身原因还是环境不成熟的问题。如果各位真有兴趣了解HTML5做游戏的相关信息的话,这个微博上有很多内容:
Sina Visitor System ch怎么在浏览器运行? ch用 webstore开发,用 chrome调试
ch发布到手机用jsb打包成hybrid 个人见解:jsb如果走jsb方式打包成native app的话,做一些中小型游戏还是可以的,性能也ok,跑在浏览器下的话另说,因为这个已经不是引擎能解决的问题了,要浏览器去解决。不过jsb方式要调用原生app代码的门槛相对较高,尤其对纯前端的程序员来说,这个是cocos2d-html5团队需要加强的地方! 抛开性能,我首先cocos2d-html5(还跨平台),不过国内目前主流都采用 cocos2d-x绑lua的方式来解决更新的问题,当然你绑js也一样 Cocos2d-HTML5还真是又好玩又方便啊,小伙伴你们知道吗(图多) 如果是手游的话,ch是不合适的,主要是性能问题.我们是自己写整套方案.
但如果你是做pc端的那么完全可以试试.
至于cx,我正在学习中...