cocos2d x 3d适合开发3d游戏吗

从市场需求来看
前两天还跟一个前同事聊天,他之前是做cocos的,前两个月出去找工作,他说cocos的职位已经不太好找了,大部分公司都在招unity,开始搞3D了。
如果真要看市场情况,更直接的办法就是到招聘网站上对比一下cocos和unity两种职位的搜索结果。从我的比较看来,结果可以说是挺明显的,在市场需求上面来看,unity已经超出cocos很多了, 以后这种优势可能还会越来越明显。这意味着如果你要想更容易找到“好职位”,学习unity是个不错的选择。unity有更加成熟和完善的3D功能,也比较容易使用。
从开发语言上考虑(肤浅 -_-!! )
我喜欢用c++写代码,虽然水平没多高,但是因为在它身上花费了很多心血,也用的最多,所以我想在我的技术生涯有更多的时间继续使用它。虽然通常来说纠结于语言是菜鸟程序员才会有的2B行为,但是为了c++,我愿意做这种2B。
如果你像我一样偏执,纠结于语言,并且也喜欢c++,那么从cocos和unity上选择结果就很明显了, 肯定是cocos啦,它的源码都是c++,开发也可以用c++,尽管现在脚本绑定已经很成熟开发效率也更高, 你喜欢,你任性, 你时间多,那你也可以和我一样,就用c++开发。unity开发游戏,据同事所说,他们在用c#,也能用js,也能用lua,也能用c++开发自定义插件,但是c++只是辅助,虽然unity的源码应该是c++,但我又拿不到,所以从语言层面,我要投cocos一票。
从学习角度来看
如果你像我一样,也是搞了很长时间的cocos开发,那么开始转向3D开发,我觉得学习3D图形学的知识,并结合cocos3D来实践和研习是很不错的。因为你已经很熟悉cocos引擎,并且能看到它的全部源代码,使用它来学习3D引擎和3D开发,你能了解到“轮子是怎样造成的”,深入进去你甚至也可以学会造出“3D引擎”这样的轮子。当你精通了cocos这个轮子(从2D到3D, 掌握OpenGL ES, shader), 我觉得学习或者使用别的3D引擎也不是什么大问题, 你在这条路上也会也走越好,就像王哲大大在知乎上的回答:
我是做cocos2dx游戏开发的,想转ios开发,想听听大家的看法?
我做cocos2dxi开发有一年多,但是本身觉得游戏开发的成长空间不大,技术更新快,感觉自身可能应付i不大来,想成为高级程序员还是比较困难,而对于ios,觉得对比游戏c++和lua,ios还是比较纯粹吧,在加上之前开发游戏都是用的mac和xcode,xcode算是比较熟练吧,对于ios,oc也有些了解,有开发过一些小应用,算是入门了。
不过转到ios的话,就意味着我要放弃游戏一年的经验,可能工资会较低吧,而且不知道能不能找到接纳我的工作~,不知和道大家怎么看,是继续游戏开发呢?还是趁现在在找工作之际转到ios 呢?
王哲大大的回答:
我建议是一专多能。技术上的一专,是把某个技术吃透称为真正的专家,比如cocos, unity, unreal精通任一引擎,或者游戏服务端。多能,就是各方便都掌握一些,自己业余时间学过、练过手,具备一定的技术视野。比如我除了手机游戏之外,自己写过一个开源的媒体播放器(C++),一个开源的任务管理系统(PHP),智能设备的硬件驱动(C++)也写过一些,用webkit写个桌面应用也没问题(JavaScript),Qt和QML玩过,python写脚本来处理重复工作也OK,没事情就看看其他有意思的开源库,写个小demo看看人家的开源库怎么玩的。新出的Swift, GamePlayKit, Apple Watch也写些简单的app玩两把。把技术当做一项爱好,而不只是谋生手段,会快乐许多。
一专多能,这个总结我觉得太棒了,学技术就该这样,得有一个方向是你特别擅长的,研究的比较深入的,让这个方向成为你的核心竞争力。如果做一棵墙头草,随市场的风向标频繁的改变自己的学习方向,可能哪个方向上你都浮在表面,这个方向上的后来者可以很轻松的把你超过,更惨一点的是如果这个后来者在自己的方向上搞的特别深,我觉得他换到这个方向上,进步的速度也是你比不上的,因为技术大多是相同的嘛,尤其是同一个领域内的知识。你真正精通了cocos3D, 害怕学不会unity吗,还会怕找不到好的职位吗?
我对unity了解的还不是很多,公司有几个MMO的项目已经在用它开发,我所知道的就是它很强大、很美!听同事说,它上手很容易比cocos2d开发还要简单。我在unity的官网上也看到了它有比较完善的技术文档、教程以及社区支持,加上现在国内外火爆的使用占有率,看起来是不用怕在网上搜索不到问题的解决方案了。然而我更加关心的是它开不开源,去unity官网几次,可以看到它有免费版和pro收费版两个版本,在两者功能对比列表里可以看到访问源代码这个功能,两个版本都不支持,就是说你买了pro版本的也不会看到源码,如果要看源码,上面有提示“请联系销售人员”.
看来想从源码角度来学习unity恐怕是需要费一番心思和银子的,一般人是搞不定,首先是从自己技术水平上上考虑,其次是经济因素上。
综合来看,我觉得对于一个初级的游戏开发者,像我这样,才搞了两年cocos,那么选择开源的cocos引擎来继续学习2D/3D开发和引擎的知识是更合适的。cocos源码的水平肯定是在我之上的,也够我折腾很长一段时间了。
而对于unity,它是好多国外大牛的作品, 代码质量不用说,肯定棒到不行,从它的价格上就可见一斑。我这个水平看它的源码肯定会很吃力,现在好好学习cocos,把它搞精,我觉得才是明智之举。路漫漫,以后自己水平上去了,再去研究更复杂的东西,unity或是已经开源了的unreal或是其他。
我的感觉,学cocos就好像“授之以渔”, 学unity就好像“授之以鱼”,对于我现在的技术水平,学unity也只能停留在用它的层面上。现在对cocos2d-x、OpenGL和shader等图形学的东西有了一定的了解,正是时候巩固基础,加深理解的时候,如果匆匆的转到u3d上,做一些看起来炫酷的游戏,而又不知所以然,我想我是不会开心的。虽然我不一定能造的出轮子,但我想了解轮子的构造,我想学会造轮子的能力。
因此总结就是:学cocos是为了学cocos,学unity是为了用unity! 我会继续学习cocos. cocos作为“一专”,要从熟练应用到可以清晰的描述出它的结构和原理,再到可以读懂它所有的关键代码可以做些贡献,最后到可以自己做个mini- unity可以暂时放在“多能”里面来培养,偶尔用它搞一些游戏玩玩,先做到会用.
现在项目不想以前那么忙了,终于有时间总结一下学习的东西。因为基础的重要性,所以在学习cocos3D知识之前,我得先总结一下两年来对cocos2d-x的2D开发的理解,结合一些小代码例子巩固一下cocos2d-x的基础知识。cocos3D的学习会在2D基础过后的文章中记录下来。
作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!
欢迎访问,与本站同步更新
本文已收录于以下专栏:
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)V3.16 版本
Cocos2d-x v3.16版本使用如下Android工具链进行测试:
Android Studio 2.3.3
更好地支持 creator_to_cocos2dx 这个Cocos Creator的插件
新增 LayerRadiaGradientLayer
支持__Android Studio 2.3.3__
修复lua工程在Xcode 8.0+模拟器崩溃问题
回退CocosStudio的reader和flatbuffer
修复iOS 11编译错误
使用bullet的预编译库以加快编译速度
去除Windows 10 metor模式、Windows Phone和Tizen的支持
Web引擎更新Spine runtime到v3.5.35特性介绍
更好地支持 creator_to_cocos2dx
creator_to_cocos2dx是一个Cocos Creator的插件。该插件用于导出Creator创建的场景内容给cocos2d-x的C++/Lua工程使用。下文的__插件__就是指这个插件。
通过使用该插件,可以把Cocos Creator当成cocos2d-x的场景编辑器。该插件目前支持这些特性,会持续支持其他新的特性。有些特性只在v3.16+版本支持,比如RichText img标签。
插件的详细使用方法可以参考插件仓库的the READE,欢迎使用并给与反馈。
Scene effect in cocos creator
Scene effect in cocos2d-x
LayerRaidalGradient
LayerRadialGradien和LayerColor类似,它会在制定的圆里绘制颜色,效果如下:
Lua工程在Xcode 8.0+模拟器崩溃问题
v3.16版本之前,Lua工程在Xcode 8.0+模拟器会崩溃。这是luajit本身的一个bug,v3.16版本修复了这个问题。如果不想更新引擎,也可以直接更新luajit。
修复iOS 11编译错误
v3.16版本之前,CCFileUtils使用system()函数来删除目录。iOS 11删除了system,因此导致了编译错误。改版本修复了这个问题。对应的PR链接在这里,如果不想更新引擎的话,可以参考该PR的改动合并以修复这个问题。
Cocos Studio
v3.15更新了flatbuffer,破坏了Cocos Studio reader的兼容性。该版本回退了flatbuffer和Cocos Studio的reader。
如果不想更新引擎的话,可以手动从改版本或者v3.15之前的版本拷贝flatbuffer和Cocos Studio的reader。
提高编译速度
大部分的项目不需要bullet,因此这个版本使用bullet的预编译库以加快编译速度。后续还会继续使用更多预编译库,比如Box2D,3D粒子系统等以加快编译速度。
该版本同时修复了大量的warning,后续版本也会持续修复warning。
去除支持一些平台
由于人力资源问题,改版本删除了一些平台的支持。
Windows 10的metro模式和Windows Phone平台一直是微软的员工在负责维护了,但是他们决定不再继续维护了,而我们人力资源不足,因此去除支持这两个平台。不过在Windows 10仍然可以使用Win32工程。
同样由于人力资源问题,该版本去除了Tizen平台的支持。
V3.15.1 版本
该版本在3.15的基础上加了针对华为设备的优化代码。该优化代包含两部分内容:
让游戏跑得更流畅
在设备发烫时,降低游戏的功耗
引擎会搜集一些信息,如节点数、粒子数、播放音频数量等信息以计算游戏对CPU的需求等级,并把等级信息上报给系统服务。系统服务受到等级信息决定是否对CPU进行调频。
当设备发烫时,系统服务会调用引擎接口降低fps、减少粒子数,关闭背景音乐、音效等。等设备不发烫了再恢复。
该系统服务只在华为的新设备上存在,对于别的Android手机没有影响。如果不想要该优化功能,可以通过如下方式关闭:
V3.15 版本
全面支持 Android Studio,包括编译、代码编辑和调试C++代码:使用文档
音频模块在Android平台使用tremolo和 MP3 Decoder Library 解码音频文件,使得音频模块效率更高,兼容更多的Android设备
WebSockets 和 SocketIO 支持 SSL
AssetsManagerEx更加稳定
更新 Spine runtime 到v3.5.35
更新 flatbuffer 到v1.5
升级 OpenSSL 到v1.1.0
去除 Windows 8.1 的支持
去除32位linux的支持
新版本特性
全面支持Android Studio
从 3.15 版本开始,可以使用Android Studio 2.3+ 编辑、编译和调试C++代码。只需要通过Android Studio打开 proj.android-studio 文件夹(比如 tests/cpp-empty-test/proj.android-studio ),然后点击 run 按钮就可以在Android设备或者模拟器运行、调试了。
音频模块在Android平台的改进
3.15版本之前,音频模块使用 OpenSL ES 解码、播放音频文件,但是很多的Android设备厂商会修改这部分代码,导致音频模块在不同的Android设备上有兼容性问题。该帖子就列出了许多音频模块的问题。
为了解决兼容性问题,我们引入了第三方的解码库tremolo和 MP3 Decoder Library 。该解码库也是Android源码使用的解码库。使用该解码库除了能解决Android设备的兼容性问题,同时还带来了不少性能提升:
引入该解码库会使最终的APK包增大100K左右,和带来的好处相比还是值得的。
去除Windows 8.1的支持
Windows 8.1的支持一直是微软的开发者在维护。因为市场占有率原因,微软觉得没必要继续支持Windows 8.1了。
去除32位linux支持
目前大部分的PC都是64位了,所以我们觉得去除对32位linux的支持。去除这个支持意味着第三方库去掉了对应的32位版本,这样可以减小发行包的大小,也减少引擎维护的工作。开发者如果想支持32位版本的话,可以使用这个仓库自己编译32位版本的第三方库。
Android SDK Tools 25.3.0+去除了ant脚本和android命令 ,使得cocos命令无法打包Android的Eclipse工程(proj.android)。为了不至于在最后生成APK时才报错,现在cocos命令检查到这个版本后直接返回错误。有两个方法可以解决这个问题:
从旧版本的Android SDK拷贝tools文件夹过来替换对应的目录
使用Android Studio工程编译打包
从Android工具删除ant脚本和android的行为来看,谷歌是不希望大家继续使用Eclipse工程,所以建议大家还是使用Android Studio来编译打包吧。旧版本引擎虽然不支持Android Studio调试C++代码功能,但是编译打包还是没问题的。
V3.14.1 版本
在2017新年来临之际,Cocos引擎团队送上了新一年的惊喜:Cocos2d-x v3.14全新版本。该版本支持所有平台使用luajit 2.10-beta2、Sprite支持九宫格特性、新增动作类ResizeBy和ResizeTo......这么多给力的新功能,相信你一定会喜欢的。
话不多说,下面我们赶紧来细细盘点Cocos2d-x v3.14新版新惊喜。
主要新特性列表
支持Spine二进制格式
所有平台使用luajit 2.10-beta2
新增动作类:ResizeBy和ResizeTo
Android模拟支持关闭多点触摸
Sprite支持九宫格特性
动作类新增功能,可以根据tag查询某一节点正在运行的动作数量
Button类可以设置title内容
EditBox支持文本水平对齐
支持Mac平台手柄
主 要 特 性 详 解
1、所有平台使用luajit 2.10-beta2 性能显著提升
之前的luajit版本无法在PC上方便地编译出arm64的字节码,需要用真机(比如iPhone6真机)编译,因此在之前的版本,iOS 64位使用的是lua,iOS 32位使用的是luajit。
新版本支持luajit 2.10-beta2版,开发者可以方便地在PC平台编译出arm64位的字节码,因此我们在各平台都使用了luajit,这样能够提升性能。如果使用Cocos命令编译、打包的话,那么Cocos命令会自动编译出对应平台的字节码,如果有生成64位字节码的话,那么会把这些字节码放到64-bit目录下。当然你也可以通过Cocos luacompile自己编译字节码,具体的使用方式可以参考Cocos luacompile -h输出的帮助信息。
通过Cocos命令编译、打包生成的字节码时各平台的情况如下:
生成32位字节码
生成64位字节码
是,如果APP_ABI的内容不是只包含64位架构(APP_ABI := arm64-v8a)
是,如果APP_ABI包含了64位架构,比如APP_ABI := arm64-v8a ...
2、Sprite支持九宫格特性
UI 界面调整更方便
在开发 UI 界面时,我们通常会使用九宫格格式的图像来显示尺寸可能会根据适配屏幕分辨率的需要动态修改的 UI 元素。如今Sprite现在支持九宫格特性了,使用方式如下:
c++ auto sprite = Sprite::create(...); // set center rect // the origin is top-left sprite-&setCenterRectNormalized(Rect(x, y, width, heigh));
这样即使使用很小的原始图片也能生成覆盖整个屏幕的背景图像,一方面节约游戏包体空间,另一方面能够灵活适配不同的排版需要。
详细信息可以参考Sprite::setCenterNormalized()的注释。
3、支持Spine二进制格式 解析更高效文件更小
使用方式没有改变,只是文件格式变成了二进制格式。这样的好处就是解析效率更高,文件更小。具体的使用方法如下:
`c++ skeletonNode = SkeletonAnimation::createWithBinaryFile("spine/spineboy.skel", "spine/spineboy.atlas", 0.6f);
4、新增两大动作类 节点缩放更方便
新增加两个动作类:ResizeBy和ResizeTo。和ScaleBy、ScaleTo不同的是,ResizeBy和ResizeTo改变的是节点的content size的大小。这种动作对于支持九宫格特性的节点的缩放效果比ScaleBy和ScaleTo好,因为ScaleBy和ScaleTo是对节点做整体缩放。效果对比如下:
5、已知问题说明
如果使用Xcode 8.2,那么lua工程会在iOS模拟器上崩溃。通过调试发现崩溃在lua_open函数的调用上。如果使用Xcode 8.1或一下版本,那么没有问题。我们怀疑这是Xcode的bug,在v3.14无法解决。使用lua的开发者在位iOS平台开发时有两个选择:
使用Xcode 8.1或者一下版本
使用Xcode 8.2,在Mac或者iOS真机开发、调试
该问题的进展可以跟踪下列帖子:
https://github.com/cocos2d/cocos2d-x/issues/17043
更多详细的改动列表,欢迎查看:
https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG
Cocos2d-x v3.14.1
修复的问题
如果创建物理场景但是没有设置3d物理的摄像机,那么程序会崩溃
由于glfw版本冲突,在linux平台可能会有链接错误
通过带有多边形信息的sprite frame创建的Sprite效果不对
VS2015编译Lua工程时有链接错误
通过cocos compile/run -p android --android-studio命令编译Android工程时会有编译错误
通过查看了解所有的问题或者代码改动。
V3.13.1 版本
解决v3.13版本发现的比较严重的问题:
Label的颜色错误问题;
如果没有设置“design resolution”,应用程序在debug模式下会崩溃;
在Android系统,如果通过点击应用图标从后台推前台,可能导致崩溃;
在Android系统,如果音乐或音效资源不在APK包里,会导致无法播放;
在Android系统,AudioEngine::stop()会回调`finish`回调函数;
使用“SimpleAudioEngine”或者“AudioEngine”播放音效或者背景音乐,在Android 2.3.x会崩溃;
JSB中,如果传入object.setString()的参数类型是数字,没有任何效果。
V3.13 版本
Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone等等,省事省力省成本。
当前最新版本:v3.13
更新时间:日
更新日志:
近日, Cocos引擎完成重大更新:正式推出Cocos2d-x v3.13版本。在新版本里,AudioEngine性能最高提升4倍、支持ETC1 alpha通道、集成AnySDK、增加VR插件、优化Canvas脏矩形算法等等。该版本进一步完善并整合了历史零碎功能,为开发者创造更为简单、快捷的开发环境。
1、AudioEngine性能最高提升4倍
Android平台下,AudioEngine使用OpenSL ES播放声音。从Android 4.2开始,OpenSL ES支持解码声音文件为PCM数据,引擎正是利用这个以特性来缓存解码后数据以提升性能。因此,该性能提升只在Android 4.2及以上版本有效。需要先preload,否则第一次播放性能没有很大提升。
2、支持ETC1 alpha通道 让游戏运行更流畅
感谢halx99的贡献,Cocos2d-x 支持ETC1 alpha通道,帮助开发者降低纹理占用,从而减少内存占用,让游戏运行更为流畅。
要想使用ETC1 alpha通道,必须在相同目录下提供xxx.pkm和xxx.pkm@alpha,代码使用方法如下:
auto sprite = Sprite::create("xxx.pkm");
引擎会自动去加载xxx.pkm@alpha作为alpha通道数据。更详细的使用方式请参考tests/cpp-tests/Classes/SpriteTest/SpriteTest.cpp里的Sprite1ETC1Alpha测试例子。
图中蓝色部分就是带alpha通道的ETC1图片
3、集成AnySDK 实现一站式发布
AnySDK为CP商提供一套第三方SDK接入解决方案,整个接入过程,不改变任何SDK的功能、特性、参数等,对于最终玩家而言是完全透明无感知的。支持的第三方SDK包括渠道SDK、用户系统、支付系统、广告系统、统计系统、分享系统等。
可以通过Cocos包管理器集成AnySDK:
cocos package import anysdk -p PROJECT_PATH --anysdk
注:此版本的Cocos包管理器仍为预览版,后续我们会持续优化改进。
PROJECT_PATH是游戏工程的根目录,比如COCOS2DX_ROOT/tests/cpp-empty-test。通过上面命令后,AnySDK框架就集成到了游戏项目中,可以在代码里调用AnySDK接口接入各种第三方SDK了。AnySDK的详细介绍和使用方法请参考AnySDK官网。
AnySDK官网:http://www.anysdk.com/
4、增加VR插件 集成更为便捷
Cocos2d-x v3.13 目前支持了GearVR、Deepoon、Google Cardboard And Daydream和Oculus,其他SDK也正在陆续添加中。具体的使用方法可以参考以下的项目指引手册:
http://www.cocos.org/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/vr-plugin/zh.md
5、Canvas脏矩形算法:提升效率,减少发热
在v3.12中我们通过重构WebGL渲染器大幅度提升了Web引擎的性能,在这个版本中,我们又实现了脏矩形算法来提升Canvas渲染器的性能。脏矩形算法允许引擎只渲染当前帧中和前一帧不同的区域,而不是渲染整个画布,大大降低填充率,可以同时带来渲染效率的提升以及CPU使用率和耗电量的降低。对于相对静态的游戏画面来说,非常有效。这个功能默认是关闭的,开启它可以通过下面的代码:
// 开启脏矩形算法
if (cc._renderType === cc.game.RENDER_TYPE_CANVAS) {
& & cc.renderer.enableDirtyRegion(true);
& & // 设置允许用脏矩形算法进行局部渲染的最高脏矩形数量
& & cc.renderer.setDirtyRegionCountThreshold(6);
// 检查脏矩形算法是否开启
var enabled = isDirtyRegionEnabled();
6、支持Android 64位应用
该版本提供了Android 64位的第三方库,因此可以编译出64位的Android应用。可以使用如下命令编译、运行64位Android程序:
cocos run -p android --app-abi arm64-v8a
7、Android切换回gcc 4.9
Cocos2d-x 3.12时使用了clang编译器,结果发现了崩溃问题。通过测试发现该问题是由于使用clang + gnustl_static造成的,因此该版本切换回使用gcc 4.9。当c++_static稳定后再切换成clang。
8、CURL升级到7.50.0
CURL 7.50.0解决了在NAT64环境连接IPV4地址格式的IP地址错误问题,Cocos引擎也第一时间响应并即时跟进升级了CURL版本。
9、其他改动
完整版改动列表:
https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG
V3.12 版本
2. 支持Tizen平台
3. 在某些Android设备的渲染性能提升
4. Cocos2d-JS在在WebGL模式下的性能提升
V3.11.1 版本
MD5:dcd4cce79d800
[3.11.1] 支持IPV6-Only网络
[3.11] Chipmunk升级到v7.0.1
[3.11] JSB使用新的内存模型,在JS脚本不需要关心对象的生命周期,该特性默认关闭
[3.11] CURL升级到v7.48
[3.11] OpenSSL升级到v1.0.2g
[3.11] 可以使用VSCode或者新版本的Firefox调试JSB程序
[3.11] 全面升级 WebGL 渲染器
主要特性的详细介绍
JSB的新内存模型
使用新的内存模型后,开发者不需要关心对象的声明周期。这就意味着不需要在JS代码里手动调用retain/release函数。
不过该内存模型默认是关闭的。虽然我们已经做了很多的测试,目前没有发现任何问题,但是保险起见,你需要手动开启该功能,开启的方法是在base/ccConfig.h里把CC_ENABLE_GC_FOR_NATIVE的值改为1:
#ifdef CC_ENABLE_SCRIPT_BINDING
#ifndef CC_ENABLE_GC_FOR_NATIVE_OBJECTS
#define CC_ENABLE_GC_FOR_NATIVE_OBJECTS 1 // change to 1
Cocos2d-x已经把OpenSSL升级到1.0.2.g。
从日开始,Google Play将不再接受使用低版本的OpenSSL的新应用程序或者应用程序更新。更新程序中使用的OpenSSL版本变得十分重要。更详细的信息可以参考。
如果你使用的是v2.x或者低版本的v3.x引擎,那么你可以只更新CURL和OpenSSL,具体步骤如下:
修改Cocos2d-x root/external/config.json文件中的version字段。如果是v3.x的话,那么version字段的值改为v3-deps-92,如果是v2.x的话,那么值是v2-deps-5
在Cocos2d-x根目录下执行download-deps.py脚本
(jtsm @ 15 ~) $ cd cocos2d-x
(jtsm @ 15 ~/cocos2d-x) $ ./download-deps.py
=======================================================
==& Prepare to download external libraries!
==& Ready to download 'v3-deps-92.zip' from 'https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-92.zip'
==& WARNING: Couldnt grab the file size from remote, use 'zip_file_size' section in '/Users/jtsm/Chukong-Inc/cocos2d-x/external/config.json'
==& Start to download, please wait ...
==& Downloading finished!
==& Extracting files, please wait ...
==& Extraction done! ==& Copying files...
==& Cleaning...
有任何问题可以在引擎的上发帖反馈。
Cocos2d-x JSB程序调试
v3.11版本之前,不能使用Firefox 30+版本来调试cocos2d-x JSB程序。这个版本修复了该问题,同时支持了web console功能。如果你不了解如何使用Firefox调试cocos2d-x JSB程序,可以参考。
当然你也可以使用来调试,具体的使用方法参考。
全面升级 WebGL 渲染器
在v3.11中,为了提升性能,我们重构了WebGL渲染器,下面是几项重要的改进:
在 Android 浏览器上默认开启 WebGL(支持的话)
WebGL 模式下自动批处理 Sprite
Sprite 共享全局的渲染数据缓存,并减少 GL 函数调用
在这些优化后,与旧版本相比,合并贴图后的游戏中draw call数量将得到显著的降低。不仅如此,v3.11中的CPU使用率和内存使用也都得到了降低。在我们的bunnymark测试中,v3.11相比之前的版本有4倍以上的渲染性能提升。当然,这是我们对WebGL渲染器做的第一步升级,在后续版本中,WebGL渲染器还将得到持续优化。
更完整的改动列表可以阅读。
V3.10 版本
【新增】Cocos2d-x与Cocos整合升级为Cocos引擎,一次安装引擎编辑器全搞定。
【新增】Cocos引擎支持新建Cocos2d-x预编译库和源代码项目​。
【新增】Cocos引擎整合第三方服务接入工具AnySDK,打通游戏开发到上线全流程。
【新增】文档中心,整合Cocos2d-x&Programmers Guide,API文档,Cocos Studio用户向导。
【新增】商店系统,获取丰富的游戏开发资料以及资源更容易。
【新增】问题反馈系统,问题直通引擎组,回复快速准确。
【新增】Label新增三种overflow:CLAMP,SHRINK,RESIZE_HEIGHT。
【新增】Lua&插件扩展的输出接口&ccslog&,可以输出信息到&Cocos&的输出区。
【优化】重构Scale9Sprite,内存占用更少,Scale9 Loading Bar可以使用了。
【优化】全面完善JSB内存使用,增强了引擎的稳定性,大幅度精简绑定代码以??符合Spidermonkey的GC标准:
【修复】ListView嵌套ClippingNode显示错误的问题。
【修复】PageView继承至ListView,PageView可以添加任何widget作为子控件。
Win-MD5码:41bf763f8cdc4d67c0de8a
Mac-MD5码:d97e8e9b5ffb551a7213
增强3D功能
【新增】3D MotionStreak,支持拖尾效果。
【优化】Sprite3D支持材质系统
增强2D功能
【新增】增加脚本组件系统
【新增】增加帧回调函数和动画回调函数
【优化】使用Component重构2D物理组件
【优化】EditBox:优化iOS和Win32平台的实现,统一与Android平台的表现
【优化】移除AssetsManager, AssetsManagerEx和Downloader对curl的依赖
【优化】优化粒子性能
【新增】JSB,Action支持继承,重写update函数
【优化】Web引擎的ScrollView性能优化
【优化】Web引擎九宫格精灵性能优化
【优化】H5 分离并整理setTexture和updateColor的耦合
【新增】支持Xcode 7和iOS 9真机调试发布
V2.3.3 版本
【新增】3D场景支持光源编辑。(Cocos&Framework&3.9支持,文档:)
【新增】场景,图层对嵌套图层进行横向/纵向拉伸布局调整。
【新增】动画面板时间轴缩放。
【新增】平级骨骼模式,支持创建不绑定父子关系的骨骼。
【新增】卸载反馈以及崩溃反馈。
【新增】骨骼文件下新增形体模式/动画模式,形体模式下调整骨骼位移、旋转、缩放同步刷新当前动画对象对应属性的所有帧。。
【优化】双击动画面板刻度线头,选中当前刻度线上所有动画帧。
【优化】增加拖动改变控件尺寸的编辑方式:拖动控件调整大小时可以选择是修改其"尺寸"或"缩放"(菜单-编辑-拖动改变尺寸/拖动改变缩放)。
【优化】CSLoader增加createNodeWithVisibleSize接口,通过createNodeWithVisibleSize创建node,不再需要调用ui::Helper::doLayout就可以产生布局效果(Cocos&Framework&3.9支持)。
【修复】编辑器的一些bug。
Win-MD5码:0d02ffc364
Mac-MD5码:036b721cf4936bfcd2c0d6ce5f6300d3
V3.8.1 版本
Cocos2d-x & Cocos Framework v3.8.1
正如我们许诺的那样,Cocos2d-x & Cocos Framework v3.8.1版本在稳定性以及API友好性方面有极大的提升。在3D方面,我们增强了3D功能,比如物理碰撞体、天空盒背景刷以及3D动画中的关键帧事件回 调。除此之外,我们优化了部分核心模块,包括UI系统、AudioEngine、FileUtils以及Bindings Generator等。
支持Xcode 7和iOS 9发布增强3D功能
【新增】3D骨骼动画回调功能
【新增】3D物理碰撞体功能
【新增】3D物理触发器功能
【新增】 支 持Terrain中预烘培光照
增强UI系统 功能
【优化】重构安卓EditBox,增强使用体验
【新增】RadioButton 和 RadioGroup控件
【新增】ScrollView/ListView 滚动条
【新增】支持汉仪Fulltype字体
【新增】音频预加载功能
【新增】绑定AudioEngine到JSB
【新增】更多写文件功能,便于开发者固化存储信息,强化脚本应用对文件的访问
【新增】支持在debug模式下编译自定义Framework
【新增】支持使用Cocos Console创建竖屏项目
【优化】增强自动绑定功能
【优化】合并JSB测试项目到统一的cocos2d测试项目中
增强AudioEngine功能
增强文件系统功能:
1.增强3D功 能
【新增】3D骨骼动画回调功能
【新增】3D物理碰撞体功能
【新增】3D物理触发器功能
【新增】支持Terrain中预烘培光照
2.增强UI系统功能
【优化】重构安卓EditBox,增强使用体验
【新增】RadioButton 和 RadioGroup控件
【新增】ScrollView/ListView 滚动条
【新增】支持汉仪Fulltype字体
3.增强AudioEngine功能
【新增】音频预加载功能
【新增】绑定AudioEngine到JSB
4.增强文件系统功能:
【新增】更多写文件功能,便于开发者固化存储信息,强化脚本应用对文件的访问
【新增】支持在debug模式下编译自定义Framework
【新增】支持使用Cocos Console创建竖屏项目
【优化】增强自动绑定功能
【优化】合并JSB测试项目到统一的cocos2d测试项目中
V3.7.1 版本
studio: 增加了骨骼动画支持
studio: 增加了对天空盒的支持
studio: JSON解析器支持Parsed Touch/Click/Event事件回调
Node: 新增getNodeToParentTransform(Node*)接口,该接口用于返回到某一特定父类的转换矩阵
web: 新增cc.director.setClearColor()接口用于支持设置透明背景
Widget: 同步UI的enable状态和bright状态
studio: 优化解析代码性能
JSB: 模板代码增加Firefox的远程调试功能
2017 @ Cocos.com 闽ICP备号-6}

我要回帖

更多关于 unity3d cocos2d 对比 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信