想学手机游戏软件开发自学,自学还是培训好?

查看: 4094|回复: 17
cocos2dx:学习游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好?
主题帖子积分
学游戏开发, 两个方向 , cocos2d-x ,unity3d/2d , 大家觉得哪个的前景比较好?相对学习难度?将来手机的性能越来越强劲,是不是unity会发展的一点?
---------------------
经提醒,拿两个引擎来比较,可能有欠妥当,按现在的发展势头,对比PC互联网,移动互联网,将来是2D游戏发展的好,还是3D更好一点?3D游戏应该将来是趋势吧?
主题帖子积分
刚好我现在同时在开发两个2D游戏,一个是用Cocos2d-x,一个是用Unity3d。
学习”而言,
Cocos2d-x是比较好理解的。它是传统的OOP结构,对于有编程经验的人来说,是最好不过了。就连Unity3d上,也有一个很火的2D框架,Futile,是模仿Cocos2d-x的架构和代码风格。从Cocos2d-x上手接触一下游戏引擎,是一个不错的选择。
而Unity3d是Component-Based结构,对于OOP背景的程序员来说,一开始会觉得别扭。而且Unity3d有很多针对3d模型、3d动画、优化等等的商用功能,对于初学者来说会有点overwhelming的感觉。而且无论如何使用Unity3d,总需要在editor里进行大量操作,对理解游戏引擎和代码架构来说,并不是一个很好的方式。
然而,从“
开发”的角度来说,
Cocos2d-x正如
@周华 所说,是一个“纯正”的引擎——仅仅只是代码库。虽然可以利用CocosBuilder和其他一些工具进行图形化操作,但效率始终不够Unity3d高。而且暴露过多的底层代码,对于
研究是一件大大的好事,但是对于
创作而言,未必是福音。
而Unity3d则是一个高效的IDE+代码库。它很好地封装了底层代码,提供许多简便的图形操作,还有商业级的高级功能。对于开发而言,我认为是更好地选择。之前大多数开发者对Unity3d的认识还停留在3D开发,但2013年末的2D支持让更多人选择Unity3d进行2D开发。
所以我的结论是,通过Cocos2d-x或者是Unity3d上的Futile框架来入门,熟悉之后再过渡到Unity3d进行开发。:)
主题帖子积分
我推荐cocos2d-x 现在手机游戏市场前10位有7位都是cocos2d-x开发, 开源、跨平台、MIT许可等等,当然适合2d游戏,3d游戏还是用unity;我重点介绍cocos2d-x
Window平台下 C++语言用 Visual Studio ,官方有UI编辑器CocoStudio,苹果系统不太熟
-------------其他独立的工具----------
位图字体工具Bitmap Font Tools
BMFont (Windows)
Fonteditor
Glyph Designer
LabelAtlasCreator
粒子编辑工具Particle Editing Tools
ParticleCreator
Particle Designer
物理编辑工具Physics Editing Tools
PhysicsBench
PhysicsEditor
VertexHelper
场景编辑工具Scene Editing Tools
CocosBuilder
LevelHelper
纹理地图集工具Texture Atlas Tools
DarkFunction Editor
SpriteHelper
TexturePacker
瓦片地图编辑工具Tilemap Editing Tools
Tiled Map Editor
声音特效编辑工具Audio Effect Editing Tools
背景音乐编辑工具Background Music Editing Tools
GarageBand (MAC 系统自带)
BOX2D多边形定义工具VertexHelper
VertexHelper
GIF动画帧导出工具Ulead GIF Animator
UleadGifAnimator
如果开发者熟悉javascript ,lua编程语言,推荐cocos2d-x editor;我在网上查资料无意间找到的,不得不承认高手在民间,我现在在使用,确实强大,可惜人气还是少了点,希望工具开发者更新更多例子和教程。下面是工具创造者写的简介,我就直接贴在下面了,尽量看原文吧,我很懒,不想一张一张贴图片,麻烦。
原文csdn地址:cocos2d-x editor
& &笔者学java ,android,javascript出身,近期开始学习手机游戏开发,由于手游开发是多平台,所以深思熟虑选择cocos2d-x作为开发游戏引擎。
& &但遇到如下一些问题,
& &其一,cocos2d-x开发平台很多是ios系统上完成的,笔者熟悉window系统,不熟悉ios;
& &其二, window系统上主流是使用开发语言c++完成,而且要使用烦人的visual studio,速度卡的半死;
& &其三,cocos2d-x场景代码编辑是分开的,其他动画,字体,粒子,物理,地图等等都是独立的作为一个工具存在,而且调试模拟不方便
& &其四,cocos2d-x 对于javascript脚本语言开发没有很好的集成开发工具
& &经过大量的资料寻找都没有找到很好的选择方案,最终决定自己开发制作一套有效的集成游戏开发工具。根据我的条件,满足window系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎, 集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟器。
& &功夫不负有心人,经过几个月的努力,终于这套游戏开发工具初见雏形,我给他命名为 cocos2d-x editor ,简称 CE,经过不断的提升和尝试,我用这套工具开发了各种手机游戏,有跑酷,消除,益智,塔防,格斗等等游戏,运行于各大手游平台,让开发游戏更加快捷方便。开发一款小型的游戏,在设计素材具备的条件下,笔者曾经保持一个礼拜开发一款游戏的记录。
& &上面也说过,笔者出身android ,以前使用开发android的工具是intellij idea,就地取物,这套工具是基于idea上的插件存在,工具免费。
& &工具特色:
1. 支持跨平台,IDEA是用JAVA开发的开发工具,可运行在各种主流操作系统上,目前CE在Windows上经过了大量的可用测试,接下来会针对Mac,Linux系统进行测试完善。
2.支持CCB的所有功能,可进行场景,界面,动画编辑。
3.支持Javascript,Lua脚本开发
4.支持集成贴图制作功能
5.支持字体编辑功能
6 支持粒子系统
7 支持tieldmap地图
8.支持Javascript调试
9.支持本地运行,可以实时看到开发的效果
10,支持游戏简单框架
主题帖子积分
unity更好学。集成开发环境,脚本写代码。
cocos2d-x是让人头大的c++,也没有集成开发环境,需要自己寻找各种编辑器。
----------------
都是免费的呀,只是一个开源一个不开源而已。
至于脚本,服务器开发也用各种脚本语言呀,RoR,JS,干嘛要用c++?
我两者都在工作中用过。
主题帖子积分
把这两个东西放在一起比即使不严格说也是没有办法说的。Cocos2d-x是个渲染引擎,专注2D游戏(即使内部利用3D的很多技术)。而Unity是个解决方案,不单是渲染引擎,早先专注于3D应用的开发;最近因为它一个2D插件(用来帮助开发者制作2D游戏)在用户需求中还是比较强烈的,战略性的官方开始把这个插件的功能官方化(官方开始制作2D功能的模块),因此可以说由把Cocos2d-x的功能也在融合进来。这个是概念上的澄清。
基于概念回到问题,学习这两个东西,并不是两个技术的方向,而是两个游戏开发类型的方向。因为Unity如果弄得很通,Cocos2d-x就是个子集(仅负责渲染管理)。我只能说,对于刚入门的,如果你不是只想专注于2D游戏,那么,完全可以从Unity入手,理由:
1、完整的解决方案,学好一个,其他的东西上手非常快;
2、海量的学习资料;
3、没有C++的繁琐,完全可以专注于技术点的学习;
学习难度的话,我想C++如果好的话,Cocos2d-x相对小一点,涉及功能少很多,所以,相对简单;但是C++如果不会或者不好,则另当别论。
主题帖子积分
cocos2d-x和unity3d要真的在技术选型的时候比较, 其他还真是各有千秋, 我觉得主要还是根据团队的性质和要开发游戏的类型吧. 一般情况下, 我感觉是倾向于unity3d, 特别是在最近的unity3d中, 已经有了官方的2d模块, 开发起来会更爽, 开发工具的配合也更加强大, 开发效率也更高一些.
但是cocos2d-x这种开源的引擎也仍然还是有前途, 毕竟源代码都在自己手中, 虽然各类工具的组合, 选择可能会挺麻烦的, 但是假如游戏本身是一个比较奇特的类型, 想要更多的定制, 或者游戏本身想更进一步的压榨平台的性能或者非常强化的利用某个平台的新特性, 这个时候cocos2d-x几乎是唯一的选择.
主题帖子积分
楼主问的是“学习那种技术更好”,而不是“我现在有个项目应该用unity还是cocos2d”,这就不是简单的一个“开发2D游戏用cocos2d,开发3D游戏用unity”的能够回答的问题,这涉及到技术选型。不管是对于技术人员还是初创公司,技术选型就是技术投资,应该予以重视。
所以我先回答题主原本应该如何选型的问题,在谈一下后来题主补充的关于2D、3D游戏发展前景的看法。
一般来说选择一个技术学习和投入,需要考虑清楚这几个问题:
1. 技术的适用范围(别到时候有了新的需求,解决不了)
2. 学习曲线
3. 技术支持怎么样?社区是否活跃?
4. 目前发展态势怎么样?(开源项目别今后没人管,商业产品公司不能倒闭了)
5. 扩展性如何?是否利于团队合作?(有的技术入门简单但拿来做大项目就是个灾难)
在这几个方面,虽然技术层面unity和cocos2d是完全不同的东西,但是作为目前开发手游所采用最为普遍的两种技术方案,是具有可比性的。
这个很多之前的回答都已经说了,主要区别是unity是一个完全的的解决方案,cocos2d是一个类库。适用领域unity要广很多。cocos2d就是为手机游戏而生的。而unity除了开发2D,3D游戏,能发布到WP,Mac, Console等cocos2d不涉及的平台,unity还被广泛才用于虚拟现实项目。在我最开始接触unity还是1.x版本的时候,QQ群里面几乎全是讨论虚拟现实项目的。甚至即便到现在我感觉身边(重庆)用unity做教育软件和3D漫游的都远多于做游戏的。也就是说如果你将来不开发手游,cocos2d就用不上了,unity还能搞点其他的。
上手当然unity更简单。如果更极端一点,不会编程,借助一些可视化编程中间件,设计师都可以完成unity游戏开发。前阵子网上有cocos2d一天复制flappy bird的教材,如果换unity+playmaker来做估计花不了我一个小时。当然如果面向本来就会c++的开发人员,cocos2d入门可能更加直观,不会要接触新的开发工具。不过对于普通人来说还是unity的方式更加容易入门,连代码都不用写。
技术支持和社区
这方面cocos2d胜出,国内社区的情况unity方面掌握都还比较初级,有深度的技术问题基本上都要去官方论坛交流。当然如果你英文读写无障碍,这个情况就倒过来了。
cocos2d目前在“开源的2D手游开发框架”领域基本上是没有什么竞争,这也注定了开源社区也不会有什么动力扩展到新的领域。而unity则是一直开扩展其开发覆盖面,unity就是“一统浆糊”的意思嘛。最开始是作为一个“让人人都能开发游戏”进入人们视野的引擎,而最近的新版本一直在强调AAA游戏开发,将出的5.0版本基本上都是面向画质上面的提升。实际上也对UE,CE等造成了一定压力,现在UE对个人的授权费比unity还便宜了。但是unity对于一些普遍认为烂得不行的功能却一直没有什么动力修改,比如GUI系统和内置网络部分,一般也是要借助第三方完成开发,这点初学者需谨慎,不要学习这些没用的东西。
扩展性方面的问题
这点cocos2d胜出。由于unity采用了易于新手和无编程人员的组件模式,在开发大型项目时候非常容易进入架构上的陷阱。开发太容易了,犯错也容易。而cocos2d不是说就不会犯这些架构问题了,而是本身基于cocoa框架,能够开发的人本身已经具有了一定的编程规范,开发app所用到的软件架构仍然适用。而且unity就是另外一套体系了,初学者开发了一些简单项目以后一定要有有经验的人带,了解一套MVC这样的架构体系以后再开发商业项目,否则只会在组件化模式的歧途上越走越远。
在扩展性方面,unity的其他问题也还有很多:假设苹果出了一个新的设备iTV, 用cocos2D的话你可以在beta版本放出的时候就开始根据官方的文档开发集成,在正式设备发布的时候就第一时间支持,使用unity的话恐怕必须等unity发补丁更新;需要两次编译,令人头大的JIT错误;很多国内广告和支付平台都不支持unity,SDK集成需要自己做插件等等。
总结一下:
1. 如果你编程基础一般,想快速做出一款游戏而不纠结于技术,选unity
2. 开发app或者其他软件已经有一定经验,希望转到手游领域做一款商业化产品,同时个人或者团队的资金实力一般,选cocos2d
3. 想学习业界主流的游戏开发流程,不想局限于某个游戏平台或者2D还是3D,选unity
4. 不属于上面3种情况的,建议都上手试验再做判断
关于2D和3D游戏前景的问题,我的看法是在手游领域3年内2D游戏都一定是主流,占据多的份额。至于为什么,码字太累了,等我歇下后续再补充。
主题帖子积分
决定游戏优劣的绝不是他是2d还是3d,而应该是游戏性。尤其是对移动端来说。
主题帖子积分
cocos虽然可以做3d 但是初级。 u3d可以做2d 但肯定不是初级。 而且相对入门的来说 js和c#更亲民
主题帖子积分
从技术上和商业性上来看,还是推荐Unity3d吧, google用C++开发安卓,结果很长一段时间内还不支持C++的APP,可见在性能过剩的年代,直接调用内存的C++优势实在不大。 另外从技术上来说,C++难度不是一般大,会遇到很多莫名其妙的未知错误。 而.NET无疑更快更高效,很合适游戏的商业化。
不过话又说回来,如果是PC端,高效的C,C++语言,还是游戏引擎的首选。
如果从前景来说, Cocos2d-x 和 Unity 3D/2D 都不足以让你做一辈子。 1 你身体吃不消,2 也会有更新更好的技术出现,所以不必太纠结选择哪个。
总结,无论是精通 Cocos2d-x 还是 Unity 3D/2D 都足以让你找份不错工作。 但是你很难做一辈子。}

我要回帖

更多关于 自学游戏开发 的文章

更多推荐

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

点击添加站长微信