学习啦>学习方法>通用学习方法>学习经验>

如何才能系统有效的学习cocos2d

时间: 欣怡1112 分享

  想要更好的学习cocos2d,必须要了解Cocos2d-x的优势,从而更好的发挥其优势。以下是学习啦小编分享给大家的有效的学习cocos2d的方法,希望可以帮到你!

  有效的学习cocos2d的方法

  一、平台与编程语言选择

  首先,游戏开发的平台就有很多类型:

  个人主机平台:Windows、Linux、Mac OC;

  移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;

  专业主机平台:Xbox、PlayStation、Will等。

  如果你想从事移动平台的游戏开发,Android主流JAVA语言,iOS主流Object-C语言,那么你就要去学习这个平台主流的语言,而在个人主机上主流的游戏开发语言现在包括以后很长时间也还是C++。

  但是并不是所不同平台的游戏开发,就毫无共通之处,学了这个到了另一个平台就无用了。不是这样的,编程的世界里你走得越远你会发现很多东西的本质都是相似的,例如你如果扎实地理解了C++的基本语法(而不是死记硬背),日后再转Java语言也不是很难的事情,因为它们本质的面向对象特性还有各种编程语言特性都是相通的。

  所以,如果你想走得远,在学习的时候不能简单流于表面,对于一样知识越深入到底层,你就越能看到其它知识与其的异曲同工之处,因此你将比别人更轻松。但是,当然一开始最好尽可能是贴合自己的专属领域和编程语言,这样能尽快地在这个领域持有一席之地。

  无论你选择哪个平台,游戏开发这个浩大的工程都离不开游戏引擎,所以这里都有二条路线让你选择:

  只使用游戏引擎;

  使用游戏引擎并深入学习游戏引擎原理。

  线路一:只使用游戏引擎

  对于第一条路线,游戏引擎的使用并不困难,因此适合想快速上手游戏开发工作的人。我们工作大多数时候也不会自己开发游戏引擎,所以这样对于一般的日常工作也没什么大碍。对于只使用游戏引擎的人来说,入门阶段要做的就是看该引擎的教程(书籍、视频、网上博客、网上教程、官方帮助文档等),并且熟练该教程所使用的编程语言。

  所以你要做的第一件事,就是去了解现在流行的游戏引擎。因为不同平台下的性能不同,支持的编程语言也不尽相同,所以针对不同平台下的流行的游戏引擎也是不同的(方括号里面是特别推荐的,基于开源性、易用性、性能与效果等方面的综合水平推荐):

  windows或游戏主机:【Unreal】、寒霜、CE3

  苹果ios:【unity3D】、【cocos2d-ObjC】、【Unreal】、sparrow、sprite kit。

  安卓:【unity3d】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。

  网页:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。

  在选择游戏引擎的时候,尽可能选用流行的游戏引擎,因为这个游戏引擎流行意味着官方的功能比较完善和易用,问答社区也比较多人解疑。各个游戏引擎也各有千秋,Unity3d胜在简单易用,对性能要求不高,但是效果不够华丽,因而一般用在移动平台而不会用在电脑或游戏主机。Unreal胜在开源免费,而且效果也很出色,但是对设备要求比较高,因而常常用来开发效果绚丽的大型游戏。cocos2d-x也是开源免费的,在2D领域深有造诣,但是缺点是不可视化开发。另外,如果你想了解游戏引擎原理,那么首要考虑的就是开源的游戏引擎。

  不同游戏引擎使用的编程语言或者脚本语言可能是不一样的,所以当你想要学习某个游戏引擎的时候,也应该留意该游戏引擎所使用的语言。大部分情况是,Windows用的的是C++,同时结合lua或python脚本语言。而ios平台下使用Objective-C或swift,安卓平台下使用Java。但这不是必然的,例如Unity在各个平台下都可以用C#或者javascript脚本语言。

  下面是商业上流行的游戏引擎详细比较:

  1) Unreal4(虚幻4)

  适用平台:Microsoft Windows、Mac OS X、iOS、Android、虚拟现实设备(包括但不限于SteamVR/HTC Vive、Morpheus、Oculus Rift及Gear VR)、Linux、SteamOS及 HTML5平台。

  编程语言:C++或无需编写代码。

  优点:开源免费,画面效果出色,已有多款商业大作经验。同时,它还能跨平台,商店资源丰富,提供了无需编写代码即可制作游戏的强大功能(可视化开发)

  缺点:开发机器配置要求较高。

  2) Unity3D

  适用平台:iOS、Android、Windows phone 8、Tizen、Microsoft Windows、Windows Store应用程序、Mac、Linux/Steam OS、网络播放器、WebGL、PlayStation3、 PlayStation4、PlayStation Vita版、Xbox One、Xbox 360、Wii U、Android TV、Samsung SMART TV、Oculus Rift、Gear VR、Microsoft Hololens、Playstation VR。

  编程语言:C#、javascript、Boo。

  优点:方便易用,中文资料丰富,跨平台,商店资源丰富,可视化开发。

  缺点:画面效果一般,不是免费开源,引擎效率比较低。

  3) Cocos2d系列(包Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)

  适用平台:Microsoft Windows、OS X、 Linux、iOS、 Android、 Tizen、 Linux、Mac OS X、HTML5浏览器、Windows Phone 7 & 8、Xbox 360。

  编程语言:Python、Objective-C、C++、 Lua、 JavaScript、 Swift、JavaScript、 C#。

  优点:开源免费,跨平台,中文资料丰富,2D技术丰富且成熟。

  缺点:不可视化开发,3D方面技术不成熟。

  4) CryEngine3

  适用平台:Microsoft Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS、Android。

  编程语言:C++、Lua。

  优点:画面效果世界一流,可视化开发,跨平台。

  缺点:开发机器配置要求较高,不是免费开源。

  5) Frostbite3(寒霜3)

  适用平台:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。

  编程语言:C++。

  优点:画面效果出色,可视化开发,跨平台。

  缺点:开发机器配置要求较高,不是免费开源。

  6) Egret(白鹭)

  适用平台:HTML5、iOS、Android、Windows Phone。

  编程语言:TypeScript、JavaScript。

  优点:免费开源,配套工具多,全中文文档,可视化开发,跨平台。

  缺点:支持平台较少,大多数时候用于开发对性能和效率要求不高的小游戏。

  但是使用游戏引擎毕竟是停留在表面看不到本质,当游戏开发的时候出现了某些问题或者特殊需求,你往往很难处理。而且游戏引擎技术日新月异,你所学的几乎都是别人留下来的方法,而不是其本质思想。如果将来别的游戏引擎兴起,你又要重新学习另外的游戏引擎怎么使用。在很多大公司里面,甚至都有自己公司内部专用的引擎(如网易公司的风魂引擎、金山公司的剑网3引擎、蜗牛公司的Flexi引擎等等)。所以单纯地走这条路线,可能不会让你走得很远并且可能会日渐乏味。

  线路二:使用游戏引擎并深入了解游戏引擎原理

  对于第二条路线,深入学习游戏引擎原理短时间不会让你的工作有什么卓越的成效,但是可以弥补只使用游戏引擎导致的问题,而且学习游戏引擎原理,更多时候不是一定就为了自己日后要造个游戏引擎,而是更深入理解自己的游戏引擎,更好地使用它。当然,千里之行始于足下,经常学习游戏引擎底层原理的人到了一定的积累的时候,自己造个游戏引擎也是可以的。

  对于像学习游戏引擎原理的人来说,需要制定自己明确的长期目标:

  1) 首先,一开始可能对游戏引擎没什么概念,建议先使用一两个游戏引擎(我推荐C++程序员学习虚幻4游戏引擎,现在是免费开源的,非常值得学习。那些不开源的游戏引擎尽量不要去学习,因为其对于学习原理来说没有多大贡献)。

  2) 因为游戏开发就是一门实时渲染的艺术,所以离不开图形库的学习。现在主流的图形库是Windows平台专用的DirectX 11和通用平台的Opengl。这两个图形库,至少需要入门其中一个。

  3) 然后,你就可以开始看计算机图形学的书籍了。如果你发现你的理论底子不足,这个时候就需要补一下线性代数、基本的微积分、还有3D数学的知识。

  4) 游戏引擎中包含了各个部分,上面的渲染只是游戏引擎的一部分。还有其它诸如着色器编写、地形编写、物理引擎编写、模型和动画、人工智能体设计、网络编程等等,完成渲染部分的基本学习后,你可以选择自己感兴趣的部分进行专攻,毕竟我们实际工作大多数时候是团队开发,而不是单打独斗,每个人都应该精通自己所擅长的那部分。

  学习cocos2d的前景

  1适用范围

  这个很多之前的回答都已经说了,主要区别是unity是一个完全的的解决方案,cocos2d是一个类库。适用领域unity要广很多。cocos2d就是为手机游戏而生的。而unity除了开发2D,3D游戏,能发布到WP,Mac, Console等cocos2d不涉及的平台,unity还被广泛才用于虚拟现实项目。

  在我最开始接触unity还是1.x版本的时候,QQ群里面几乎全是讨论虚拟现实项目的。甚至即便到现在我感觉身边(重庆)用unity做教育软件和3D漫游的都远多于做游戏的。也就是说如果你将来不开发手游,cocos2d就用不上了,unity还能搞点其他的。

  2学习难度

  上手当然unity更简单。如果更极端一点,不会编程,借助一些可视化编程中间件,设计师都可以完成unity游戏开发。前阵子网上有cocos2d一天复制flappy bird的教材,如果换unity+playmaker来做估计花不了我一个小时。当然如果面向本来就会c++的开发人员,cocos2d入门可能更加直观,不会要接触新的开发工具。不过对于普通人来说还是unity的方式更加容易入门,连代码都不用写。

  3技术支持和社区

  这方面cocos2d胜出,国内社区的情况unity方面掌握都还比较初级,有深度的技术问题基本上都要去官方论坛交流。当然如果你英文读写无障碍,这个情况就倒过来了。

  4发展态势

  cocos2d目前在“开源的2D手游开发框架”领域基本上是没有什么竞争,这也注定了开源社区也不会有什么动力扩展到新的领域。

  而unity则是一直开扩展其开发覆盖面,unity就是“一统浆糊”的意思嘛。最开始是作为一个“让人人都能开发游戏”进入人们视野的引擎,而最近的新版本一直在强调AAA游戏开发,将出的5.0版本基本上都是面向画质上面的提升。

  实际上也对UE,CE等造成了一定压力,现在UE对个人的授权费比unity还便宜了。但是unity对于一些普遍认为烂得不行的功能却一直没有什么动力修改,比如GUI系统和内置网络部分,一般也是要借助第三方完成开发,这点初学者需谨慎,不要学习这些没用的东西。

  5扩展性方面的问题

  这点cocos2d胜出。由于unity采用了易于新手和无编程人员的组件模式,在开发大型项目时候非常容易进入架构上的陷阱。开发太容易了,犯错也容易。

  而cocos2d不是说就不会犯这些架构问题了,而是本身基于cocoa框架,能够开发的人本身已经具有了一定的编程规范,开发app所用到的软件架构仍然适用。

  而且unity就是另外一套体系了,初学者开发了一些简单项目以后一定要有有经验的人带,了解一套MVC这样的架构体系以后再开发商业项目,否则只会在组件化模式的歧途上越走越远。

  在扩展性方面,unity的其他问题也还有很多:假设苹果出了一个新的设备iTV, 用cocos2D的话你可以在beta版本放出的时候就开始根据官方的文档开发集成,在正式设备发布的时候就第一时间支持,使用unity的话恐怕必须等unity发补丁更新;需要两次编译,令人头大的JIT错误;很多国内广告和支付平台都不支持unity,SDK集成需要自己做插件等等。

  有效的学习cocos2d的书籍推荐

  1) 数学基础

  下面这些数学基础书籍是为游戏开发量身定制的,比专门看某一数学方向更有效率:

  《3D Math Primer for Graphics and Game Development》,有中文版

  《Mathematics for 3D Game Programming and Computer Graphics》

  《Essential Mathematics Guide》

  《Geometric Tools for Computer Graphics》

  2) 图形库

  针对 DirectX 的书籍:

  《Introduction to 3D Game Programming with DirectX 11》,大名鼎鼎的龙书,入门必看的

  《Practical Rendering and Computation with Direct3D 11》,进阶

  《Real-Time 3D Rendering with DirectX and HLSL》

  针对 OpengGL 的书籍:

  《OpenGL SuperBible》,著名的蓝宝书,以例子为主,有中文版。但不建议看中文版,翻译得不好。

  《OpenGL Programming Guide》,著名的红宝书,有中文版。红宝书更像是手册,API大全,例子较少,适合熟练者查询使用。

  《OpenGL 4.0 Shading Language Cookbook》,进阶,基本上就是API手册,有中文版。但不建议看中文版,翻译得不好。

  3) 计算机图形学

  《The Nature of Code》,有中文版,比较简单

  《Fundamentals of Computer Graphics》,被国外多所大学采用的入门教材,介绍范围比较广,从基本的相关数学到建模、渲染、动画、应用方面都有提及

  《Physically Based Rendering》,主要是离线渲染

  《Real-Time-Rendering》,必读经典!必读!

  《计算机图形学》,作者舍利

  《Computer Graphics》,要看最新的第三版

  《计算机图形学原理及实践:C语言描述》

  4) Shader着色器

  《Cg_tutorial》,入门

  《The Complete Effect and HLSL Guide》,入门

  《Shaders for Game Programmers and Artists》,含有大量入门例子

  《Advanced Lighting And Materials With Shaders》,介绍光照模型和技术

  《GPU Gems》进阶必读。

  《Shader X》系列,每年出版一本,包含最新的实时渲染技术。论文性的比较多,偏难。

  《Programming Vertex, Geometry, and Pixel Shaders》,以DirectX 10为主,很详细。

  5) 地形

  《Real Time 3D Terrain Engines Using C++ And DX9》非常全面的讨论了关于地形渲染的各种技术。

  6) 模型导入和动画

  《Character Animation With Direct3D》包含了最新的游戏动画技术

  《Computer Animation》

  《Real-Time Cameras》

  《Computer Facial Animation》

  《Realtime 3D Character Animation with Visual C++》

  《Advanced Animation and Rendering Techniques》

  《Cloth Modeling and Animation》

  7) 网络

  《TCP/IP 详解 卷2》

  《Network Programming for Microsoft Windows》

  《Advanced Programming in the UNIX Environment》

  《Windows核心编程》

  《Multithreading applications in Win32》

  《网络游戏核心技术与实战》

  8) 物理

  《Game Physics》

  《Game Physics Engine Development》

  《Real-time Collision Detection》,碰撞检测方面最好的书

  《3D Game Engine Design, 2nd》第8、9章值得一看

  9) 细节层次

  《Level of Detail for 3D Graphics》

  10) 光线跟踪

  《Physical-Based Rendering - From Theory to Implementation》

  《Another Introduction to Ray Tracing》

猜你喜欢:

1.如何才能系统有效的学习asp

2.如何才能系统有效学习cad

3.cocos2d-x学习方法

4.cocos2d如何学习

5.三年级奥数学习方法

如何才能系统有效的学习cocos2d

想要更好的学习cocos2d,必须要了解Cocos2d-x的优势,从而更好的发挥其优势。以下是学习啦小编分享给大家的有效的学习cocos2d的方法,希望可以帮到你! 有效的学习cocos2d的方法 一、平台与编程语言选择 首先,游戏开发的平台就有很多类
推荐度:
点击下载文档文档为doc格式

精选文章

  • 保密制度个人学习心得体会_保密制度学习心得
    保密制度个人学习心得体会_保密制度学习心得

    学习保密制度目的是为了更加做好保密工作。个人有什么学习心得体会呢?下面是由学习啦小编整理的保密制度个人学习心得体会,希望对您有用。 保密制

  • 2017中心组学习心得_中心组学习心得体会范文
    2017中心组学习心得_中心组学习心得体会范文

    在中心组学习,就要懂得解放思想是实事求是的前提,实事求是是解放思想的内在要求,二者相促进相互依存。下面学习啦小编整理了2017中心组学习心得范文

  • 中考状元的备考方法
    中考状元的备考方法

    你知道中考状元在中考考试中都做了哪些准备吗?下面是学习啦小编为大家收集整理的中考状元的备考方法,相信这些文字对你会有所帮助的。 1、重视基础

  • 2017党组中心组学习心得范文总结
    2017党组中心组学习心得范文总结

    作为一名党委中心组成员,应该做好个人的学习心得总结,下面就让学习啦小编给大家分享几篇2017党组中心组学习心得范文吧,希望能对你有帮助! 2017党组

3743661