2D开源游戏引擎调研报告(四)

四.Cocos Creator

0.基本介绍
Cocos Creator 是以内容创作为核心,实现了脚本化、组件化和数据驱动的游戏开发工具。 具备了易于上手的内容生产工作流,以及功能强大的开发者工具套件,可用于实现游戏逻辑和高性能游戏效果。

1.使用语言:
使用Java Script语言
注:js采用单线程,不适合进行大量运算
附参考资料:https://blog.csdn.net/w2765006513/article/details/53743051

2.可执行文件可以运行的平台
可以生成Android、Widows、Mac、ios系统的可执行程序及发布在小程序平台(如微信小程序、小程序等),后者可以直接发布,但前者需要对应系统的开发工具生成可执行文件。
Android→使用Android Studio
Windows→使用Visual Studio(CocosCreator最新版本不能指定VS目录,可能无法构建项目。我是先构建web文件再通过第三方软件转成exe,非常麻烦)
Mac、ios→使用Xcode
Js环境下载官网:https://nodejs.org/en/
(建议下载低版本7.10.1,最新版本可能安装失败)

3.对象的封装、继承、实例化等功能
用鼠标将层级管理器的对象拖拽进资源管理器,即可生成相应的资源文件(后缀名为prefab)。Prefab文件在代码中可以使用instantiate方法实例化新节点,

4.多场景的切换
使用LoadScene方法

5.物理引擎:
碰撞检测:
①先开启碰撞监测:
在物体挂载的脚本中添加回调函数,名称为:
onCollisionEnter
onCollisionStay
onCollisionExit
则物体在发生碰撞后会回调相应函数

物理模型:
实体:
使用rigid body
附:新版本似乎有一个功能,可以根据图片形状自动设置碰撞监测区域(可以不规则),也可以手动描点勾勒区域(目前没试过)
绳子:
制作多个物理节点(rigid body),用rope joint(关节)连接起来
引力效果
无相应组件,需要自己在物理上施加力

6.粒子效果
1.使用第三方工具Particle Designer(https://www.71squared.com/particledesigner,付费)或Particle2dx(http://www.effecthub.com/particle2dx免费在线工具)进行制作
2.制作完成之后,生成粒子plist文件
3.在CocosCreator中添加一个渲染节点:PracticleSystem(粒子)
4.将制作生成的粒子plist文件,导入CocosCreator中的资源管理器中
5.从资源管理器中的粒子plist文件拖入到粒子的属性检查器的File属性中,即可显示你制作的粒子动画

7 .UI组件,包含:
按钮:有
标签:有
定时器:使用schedule函数
菜单:无(但是有了图形化编辑器,用button制作还是很方便的)
复选框:有
进度条:有,progressbar
滑动条:有,slider
文本框:label

Cocos Creator的节点采用组件形式,每个节点都是由node及其它(1个或多个)组件(如button、label等)拼接而成,可以自己拼接,也可以用系统默认有的功能,非常方便

8.利用容器设置对象在屏幕中的位置:
可以利用节点的相对关系在代码中设置位置,或使用下列方法:
ScollView 滑动视图
PageView 页面视图
九宫格:直接在图片资源上操作。填充图片时,用Sliced(九宫格)方式填充

9.光影渲染
无,需要自己通过代码添加亮/暗图层

10.动画部分,包含:
10.1对象的位置、朝向、移动
①5用update函数和setposition方法配合
②使用moveto等方法
10.2对象的颜色变化
使用Tween缓动系统或update函数设置
注:Cocos Creator的Tween可以缓动任意对象的任意属性,而Cocos2dx只能缓动节点的属性
10.3数字的变化
同上

11.音频文件的加载、播放
使用Audio Source或audioEngine播放音效,一般为mp3

12.视频文件的加载、播放
使用VideoPlayer播放,官方建议mp4格式

13.学习资源的丰富性
CocosCreator的API有中英两个版本,介绍较为详细,网上也有很多教程

评价:CocosCreator 在功能上是对Cocos2dx的一次升级,最直观的区别在于有了图形化编辑器,而不是纯代码的方式,因此在搭建框架、增减节点、设置属性(尤其设计UI)等方面非常容易操作。代码的结构也更为简单,提高了开发效率。

但是,CocosCreator依然有许多功能是依赖外部工具的。编辑器内无法编辑代码(可以用VS code编辑、调试、设置断点,配套性较好),程序预览时一般在浏览器上运行(也可以在自带的模拟器运行,但效果不佳)。生成各平台的安装包也要借助外部工具。此外,引擎的编译器存在一些bug,时常莫名报错(退出重进就能消除报错)。不过,Cocos Creator仍然处于上升阶段,每一次新版本的发布都会有不小的变化,目前的bug在未来应该能得到解决

综合来看,CocosCreator在开发各类小型程序、简约风格程序上的优势较为明显。

五.横向比较

1.资源文件的使用:
1.1导入文件:将文件拖入游戏目录后,四个引擎都可以通过文件的相对位置和名称获得该文件(Cocos Creator还支持通过文件的UUID访问文件)

1.2 文件导出:
Godot:可以将任意节点保存为场景文件,该文件可以直接播放运行,
Creator:任意节点可以保存为prefab文件(预制资源),同1.1中使用
Panda3d、Cocos2dx:由于是纯代码,无需也无法导出部分文件

2.物理引擎:
完整性:四者都能实现基本的物理效果(如碰撞、运动等)
Godot:使用内置引擎
Cocos2dx:采用了Box2D物理引擎和Chipmunk物理引擎,也可以禁用这两个并调用其他物理引擎API
Panda3d:使用ODE物理引擎
CocosCreator:采用Box2D,也可以使用其他物理引擎

3.修改已有的开源部分代码:
Cocos2dx:每新建一个文件时,都会自动复制一份它的所有API,放入sln下,因此可以直接修改,且非常方便,但是每次编译会需要较长的时间
Panda3d:安装包自带python,默认情况下,所有程序共用一个API。可以将其复制并修改,但需要手动设置API路径。
Godot:所有工程文件共用一份API。
Cocos2dx:所有工程共用一份API。它的底层有cocos2dx和JavaScript两个引擎,编辑时使用js语言,编译时会翻译成c++语言,修改底层代码起来会比较困难

4.引擎的成熟度及发展情况:
Godot: 2014年发布,目前仍在更新,成熟度较高
Cocos2dx:成立于2008年,近几年已不再更新(技术人员已转向cocos creator的开发),功能基本完善,但存在一些因为需要兼容旧版本而存在的历史遗留问题。
CocosCreator:2016年成立,成熟度较低。目前引擎仍然有不少bug,但也仍在不断更新修复当中,个人比较看好它的未来。
Panda3d:仍在更新。因为主打3d功能,2d上并无明显优势

5.学习资源
1.API
Godot、CocosCreator:有中、英文两个版本
Cocos2dx、Panda3d:只有英文
2.中文社区
Godot、Cocos:有(Godot似乎要翻墙访问)
Panda3d:没找到
3.教程、学习资源
Cocos2dx > Godot > Cocos Creator>Panda3d
附:搜索范围:百度+github
如果只看中文资源的话,两个cocos引擎资源较多

6.引擎效率:
测试内容:每一帧在屏幕上方绘制一个图像,该图像不断下落,到屏幕底部时消失(约25s)。记录引擎帧率
Godot:稳定在40帧上下
CocosCreator:使用html5(浏览器播放)时,15-20帧上下。构建成exe文件播放时,能达到60帧(60为最高帧率,即没有测出上限)

结语

通过对这四款引擎各功能的学习、比较,我认为目前最适合的是Godot,它在各功能表现的四平八稳,开发应该会比较顺利。Cocos Creator的话,目前容易遇到各种bug,可以期待一下它以后的表现。

以上各个引擎的功能我只是走马观花地了解了一下。如果存在错误或有版本更新,希望各位指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值