在软件开发中,游戏开发的方向似乎有一个明确的目标,但实际上它是一个非常广泛的方向,如果你没有得到指导,很容易误入歧途的人,相反,如果你能得到一些来自前辈的指引采取这条路之前,它可以用一半的努力得到两倍的结果。
一 平台与编程语言选择
首先,游戏开发的平台就有很多类型:
个人主机平台: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引擎等等)。所以单纯地走这条路线,可能不会让你走得很远并且可能会日渐乏味。
随着科学技术的发展,以及社会的不断进步,游戏已经成为了我们生活中的一部分,从而吸引了许多想要学习游戏开发的伙伴,那么游戏开发好不好学呢今天我们就一起来了解一下吧其实从零基础学习游戏开发并不...
全球游戏市场的火爆和迅猛发展,使得不少人想加入游戏行业,一是有“有钱景”,二是一款全民游戏总能引发一阵全民狂潮,甚至影响流行文化,让游戏团队颇有成就感。就国内游戏行业的情况看,新版号的再次发放...
在软件开发中游戏开发的方向似乎有一个明确的目标但实际上它是一个非常广泛的方向如果你没有得到指导很容易误入歧途的人相反如果你能得到一些来自前辈的指引采取这条路之前它可以用一半的努力得...
以人才需求来看,一般要求大专、本科学历,一年以上开发经验的人员一般待遇都会在10左右,高级人才甚至达到2025。随着工作经验和技能的增加,从业人员薪资水平不断增长。...
游戏动作在这里小编想说的是,零基础学游戏动作的话,起步肯定比较难,如果你有美术类的基础,或者学过人体解刨学,那就可以好学一点。游戏动作...
游戏3建模游戏3建模行业的发展前景近几年建模市场一直保持火热的发展态势,预计未来510年还将延续这一态势,但是3建模行业人才紧缺的现象也随之越发明显。所以就业方面是完...
在巨大的游戏消费市场和技术发展的推动下,我国的游戏行业发展很快,是如今发展态势良好的行业之一,其中岗位高薪是游戏行业的一个特点。这就吸引了很多的人...
9月是开学的日子,不论是进入新的校园,还是又升了一个年级,课业的压力随着暑假结束又开始慢慢增加,但对于游戏的热爱却是始终不减。在互联网时代下,手游对于每个人来说都成为了休闲娱乐的第一选择。 ...
游戏/动画
课程资料包领取