Heim  >  Artikel  >  Web-Frontend  >  使用cocos2D游戏引擎开发游戏的话,是选择使用cocos2D-x使用C++来编写,还是使用cocos2D-html5来编程,原因是什么?

使用cocos2D游戏引擎开发游戏的话,是选择使用cocos2D-x使用C++来编写,还是使用cocos2D-html5来编程,原因是什么?

WBOY
WBOYOriginal
2016-06-07 08:42:272228Durchsuche

回复内容:

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,我正在学习中...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn