海田1 发表于 2021-1-27 09:10

手游引擎Unity和Cocos各有什么优劣?

手游的研发对于引擎选择的原因都有哪些?成本,游戏效果,3D vs 2D?

李志敏 发表于 2021-1-27 09:17

以下我以“大型3D、大型2D、中小型2D和微型2D”来划分,尽可能减少”纠结“感。
因为引擎的选择一向做不到“以偏概全”,他们各有所长,应选择自己适合的。
尤其是差异化这么明显的两个引擎。

一、3D游戏(包含2.5D)
只能:Unity3D
作品:职业棒球、星际陆战队等
分布:欧美国家用Unity3D的较多。商业化引擎中,3D游戏占比最高
原因:

就像 @朱云所说。Cocos2d-x目前还不支持3D。相比而言,U3D就是你唯一的选择了。

二、大型2D游戏(可以指安装包上百兆的)
推荐:Unity3D
作品:捣蛋猪、冰雪奇缘、天天飞车、绝代双骄等
分布:欧美国家用Unity3D的较多,国内用Cocos2D-X的多
原因:


1、游戏这东西,就是要跟“直觉”打交道的

我的想法有点极端,我感觉在游戏世界里,代码似乎更像是“妥协”的产物。

如果能做到“所见即所玩”,那真的是一个非常惬意的事。到时候,或许一个8岁小孩就能独立自主的开发一款游戏。

而这一点,Unity3D的王者地位,当之无愧!


2、Unity3D提供了超赞的设计工具,让你感觉像是在用3DMax和Flash来做游戏

3、适合大型团队,美工、动画更容易上手

U3D可以让美工、动画、码农在同一个平台上各司其职。这点从目前来看,Cocos2D-X望尘莫及。

三、中小型2D游戏(百兆以内的)
推荐:Cocos2D-X
作品:捕鱼达人、我叫MT、2048等
分布:东亚游戏多出自Cocos2D-X,尤其中国。但大多为小型游戏
原因:


1、Unity3D比Cocos2D-X的APK包要大了近十倍

仅以Android手机为例,同样的一个2D版HelloWorld,两者的安装包大小:
Unity3D:约为9.27M
Cocos2D-x:约为1.67M

解开包后发现,里面除了两个一共占据近12M的SO库(libmono.so和libunity.so),还有一票的DLL文件。其中System.dll、Assembly-CSharp.dll和mscorlib.dll这三个核心文件就占了5M。虽然它们压缩比约为50%,但仅这些文件就占了这么多。心疼啊。

而这,在“寸土寸金”的中小型游戏面前是多么可怕的数字。


2、Cocos2D-X比Unity3D快很多

即使不用测试工具,也可以轻易的发现这一点。

主要因为Unity3D用了Mono架构,它移植自微软的.Net。每次启动都会加载Mono框架和Unity3D引擎,再加载.Net Assembly(一堆DLL文件),这可比Cocos2D-x这种纯C++(包括Lua和JS)实现要慢很多。


3、独立开发者更喜欢“码”游戏

独立开发者大多是“技术达人”(不然怎么开发游戏)。U3D会让他们有“无所适从”感,从而影响了对U3D的灵活运用。对这些人而言,这是赤裸裸的时间成本。在游戏开发中,这点尤为重要。还是Cocos2D-X让他们更感到“亲切”,更有成就感。

也许你会问:“你怎么知道?”
因为我就是搞技术的。

4、中国游戏多出自Cocos2D-X

Cocos2D-X是正宗国产货,又是优秀的开源项目,国外用户群也不少。
也正是因为这个原因,C2D天生就对中国用户很“偏爱”。比如社区,我在上面问了两个问题,基本上当天问当天答,而且非常热心。从这一点我就对C2D产生了不错的好感。

5、Unity3D要收费

对大型2D游戏团队来说或许还不算什么。

初步算一下,Pro要1500$,手游怎么至少也得兼容iOS和Android吧,各自1500$,再加个Team套装,加一块儿,5000$,两万多银子。

Cocos2D-X免费、开源。遇到问题可以研究源码或向社区求救。


四、微型游戏(指争取安装包在1M以内的)
推荐:AndEngine、Cocos2D-iPhone
作品:Flappy Bird、小球快跑、五子棋等
分布:不需要跨平台的超小游戏用的多。
原因:

如果只想在一个平台上开发游戏,无疑上述两种是最好的选择

其中AndEngine开发出来的游戏最小才400多KB,大名鼎鼎的Flappy Bird就是用它做出来的。

另外,iPhone的Cocos2D划到这里似乎不太合适,但仔细想想,现在有更成熟的Cocos2d-x方案,Cocos2D划到微型游戏一列,相信是早晚的事(个人看法,轻拍)。

五、总结

1、Unity3D:如果你需要开发大型游戏,或需要开发3D游戏的,请选这个。

2、Cocos2D-x:如果你开发的是中小型游戏,对安装包大小比较在意的,请选这个。

3、Andengine、Cocos2D-iPhone:如果你只为开发单平台游戏,又非常在意速度和安装包大小,请选这个。

最后。俗话说:没有最好的,只有最适合自己的。我想这句话同样适用于开发游戏。
共勉!

转载请注明出处。谢谢!

我是来围观的逊 发表于 2021-1-27 09:24

Unity和Cocos2d-x,严格来讲并不是同样的产品类型。Unity是一套“解决方案”,而Cocos2d-x仅仅是一个库。两者相比较,后者仅相当于前者的一个模块。Unity提供集成的场景编辑器,物理引擎,材质编辑、动画编辑等等,再加上本身的类插件功能,能让第三方通过包来帮助生产周边工具。但从Cocos2d-x来讲,如果有公司要用,必须找到相关的编辑器,集成第三方的物理引擎(如Box2D)才能与Unity在解决方案这个级别上相提并论。就如有名的3D渲染引擎Ogre和解决方案Unreal、CryEngine一样,本身并不具备可比性。

很多公司采用Cocos2d-x来做项目的抉择是,对于2D项目来说,Unity的确是把“牛刀”了,驾驭起来不是很顺畅。Cocos2d-x加上一些第三方的工具,就能对付项目,而且驾驭起来相对简单,就会选择Cocos2d-x而不是Unity。
以上内容来自于我以前在为什么很多动作游戏都是 Unity3d 开发,对比 cocos2d-x 更容易吗?的回答。如果要加点什么的话,我想选择这两个东西主要还是3d vs 2d。如果是在2d制作上选择引擎,那就是团队的偏好程度了,喜欢开源,在有代码下觉得比较有控制度的,会选择cocos2d-x;其他的可能就喜欢Unity3d+2D插件的方式。

明绍宗朱聿键鼻 发表于 2021-1-27 09:25

虽然我们现在是用cocos在研发,但是我个人还是觉得最好能用U3D……原因就像楼上的同学说的……U3D可以做2D游戏(比如崩坏学院和影之刃),但是cocos做不了3d啊……
各自简单说一说
U3D
优势:就像上面说的,理论上可以满足一切需求
劣势:对技术要求相对较高,美术方面的成本也要稍微高一些。新手程序员可能会需要趟挺多坑
cocos
优势:简单易学,工具还算强大,成本比较低
劣势:暂时做不了3D……

David902 发表于 2021-1-27 09:33

引擎这玩意,没有好坏之分,看开发者用来干嘛。
拿个虚幻三给你,你用来做个2D游戏,还不是白搭!

最基本的优劣:unity3d针对3D开发,COCOS2D-X针对2D开发。
尽管近期都进行了互补,但是效果不佳。

在使用上,我觉得u3d会更方便,因为各种参数都能够可视化。
而C2D对程序的能力提升更有帮助,对程序的能力要求也相对高一些。

宇宙无限 发表于 2021-1-27 09:36

纵观各楼,感觉就没必要直接用 iOS SDK/Sprite Kit/OpenGL ES 开发游戏了

却写杂布计 发表于 2021-1-27 09:37

一个游戏同行曾经用Unity3D开发了一款游戏。。
在他接触了Unreal之后。。。发现很多在Unity要自行开发的模组在Unreal里都是标配。。
求心理阴影面积

掌舵的鱼1987 发表于 2021-1-27 09:41

从个人经验来看,U3D适合做项目,cocos2dx更适合学习
如果一个对3D,渲染,毫无基础的人去玩U3D,往往只能停留在逻辑层。
而如果用cocos作为入门的学习资料的话,可以有很多收获。

当U3D出BUG了,不是大神级别的,应该很难去解决。
而cocos则不一样,基本没解决不了的BUG,只是时间问题而已。

123456865 发表于 2021-1-27 09:50


说明什么?两个都有坑,所以基本上不要因为去比较哪个更坑来做出选择了

cocos2dx相比较unity除了开源这一点好像也没太多优势了

但是就这个优势而言,也只是对于能力强的人来说的(首先你得看懂,看懂了你得会改)

123456806 发表于 2021-1-27 09:52

3d 2d 的区别,Java和c# 还是 c++的区别
页: [1] 2
查看完整版本: 手游引擎Unity和Cocos各有什么优劣?