1.平台和编程语言选择
首先3D交通工具,游戏开发平台有很多种类型:
*个人主机平台:Windows、Linux、MacOC;
*移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;
*专业主机平台:Xbox、PlayStation、Will等。
如果你想从事移动平台的游戏开发,Android主流的JAVA语言,iOS主流的Objective-C语言,那么你就得学这个平台的主流语言,主流的游戏开发语言在未来很长一段时间内,个人游戏机上都会包含它。 它仍然是C++。
但这并不是说不同平台上的游戏开发没有共同点。 学习这个在另一个平台上是没有用的。 事实并非如此。 在编程世界里走得越远,你就会发现很多事情的本质都是相似的。 比如,如果你对C++的基本语法有扎实的理解(而不是死记硬背),以后转Java语言就会更容易。 这并不难,因为它们本质上的面向对象特性和各种编程语言特性是相同的。
所以,要想走得远,学习的时候就不能单纯的肤浅。 一个知识你越深入底层,你就越能看到与其他知识的相同点和相似之处,所以你会比别人更容易。 不过,当然如何开发一个游戏,最好一开始就尽可能的坚持自己的专属领域和编程语言,这样才能尽快在这个领域占据一席之地。
无论你选择哪个平台,游戏开发浩大的工程都离不开游戏引擎材质材料,所以有两条路线供你选择:
*仅使用游戏引擎;
*使用游戏引擎,深入学习游戏引擎原理。
2. 游戏开发的不同学习路线
路线一:仅使用游戏引擎
对于第一种路线如何开发一个游戏,使用游戏引擎并不困难,因此适合想要快速开始从事游戏开发工作的人。 我们工作的时候大部分时间都不会开发自己的游戏引擎,所以这对我们的日常工作没有太大的影响。 对于只使用游戏引擎的人来说,入门阶段需要做的就是阅读引擎的教程(书籍、视频、在线博客、在线教程、官方帮助文档等)并熟练掌握编程语言在教程中使用。
所以你要做的第一件事就是了解流行的游戏引擎。 因为不同平台下的性能不同,支持的编程语言也不同,所以不同平台流行的游戏引擎也不同(方括号里的是基于开源、易用性、性能特别推荐的)及效果)其他方面推荐综合水平):
*Windows或游戏机:[Unreal]、Frost、CE3
*苹果ios:[unity3D]、[cocos2d-ObjC]、[虚幻]、sparrow、spritekit。
*Android:[unity3d]、[cocos2d-x]、[虚幻]、AndEngine、libgdx。
*网页:[Egret]、[cocos2d-html5]、Fancy3D、unity3d。
在选择游戏引擎的时候,尽量选择大众化的游戏引擎,因为这种游戏引擎的大众化意味着官方的功能比较完善、好用,而且问答社区回答问题的人也比较多。 每个游戏引擎都有自己的优点。 Unity3d使用方便,对性能要求不高,但效果不够华丽。 因此,它一般用在移动平台上,而不是电脑或游戏机上。 Unreal之所以胜出,是因为它开源、免费,而且效果非常出色。 但它对设备要求比较高,所以常被用来开发大型、效果华丽的游戏。 Cocos2d-x也是开源免费的,在2D领域有很深的造诣,但缺点是不允许可视化开发。 另外,想要了解游戏引擎的原理,首先要考虑的就是开源游戏引擎。
不同的游戏引擎所使用的编程语言或者脚本语言可能会有所不同,所以当你想要学习某种游戏引擎时,你还应该关注游戏引擎所使用的语言。 在大多数情况下,Windows 使用 C++,结合 lua 或 python 脚本语言。 ios平台使用Objective-C或swift,Android平台使用Java。 但这并非不可避免。 例如,Unity可以在各种平台上使用C#或javascript脚本语言。
以下是目前商业上流行的游戏引擎的详细对比:
1)虚幻4(虚幻4)
*适用平台:Microsoft Windows、MacOSX、iOS、Android、虚拟现实设备(包括但不限于 SteamVR/HTCVive、Morpheus、OculusRift 和 GearVR)、Linux、SteamOS 和 HTML5 平台。
*编程语言:C++ 或无需编码。
*优点:开源免费,拥有优秀的图形和众多商业大作的经验。 同时它也是跨平台的,拥有丰富的商店资源,为无需编写代码(可视化开发)制作游戏提供了强大的功能。
*缺点:开发机器配置要求比较高。
2)Unity3D
*适用平台:iOS、Android、Windowsphone8、Tizen、MicrosoftWindows、WindowsStore应用程序、Mac、Linux/SteamOS、网络播放器、WebGL、PlayStation3、PlayStation4、PlayStationVita版本、XboxOne、Xbox360、WiiU、AndroidTV、SamsungSMARTTV、OculusRift、GearVR、Microsoft Hololens、PlayStation VR。
*编程语言:C#、javascript、Boo。
*优点:方便易用、中文信息丰富、跨平台、店铺资源丰富、可视化开发。
*缺点:画面效果一般,不免费开源,引擎效率比较低。
3)Cocos2d系列(包括Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)
*适用平台:MicrosoftWindows、OSX、Linux、iOS、Android、Tizen、Linux、MacOSX、HTML5浏览器、WindowsPhone7&8、Xbox360。
*编程语言:Python、Objective-C、C++、Lua、JavaScript、Swift、JavaScript、C#。
*优点:开源免费、跨平台、中文资料丰富、2D技术丰富成熟。
*缺点:没有视觉开发,3D技术不成熟。
4)哭泣引擎3
*适用平台:Microsoft Windows、OSX、Linux、PlayStation3、PlayStation4、WiiU、Xbox360、XboxOne、iOS、Android。
*编程语言:C++、Lua。
*优点:世界一流的画面效果、视觉拓展、跨平台。
*缺点:开发机器配置要求高,且不免费开源。
5) 冻伤3 (霜冻3)
*适用平台:Microsoft Windows、PlayStation3、PlayStation4、Xbox360、XboxOne。
*编程语言:C++。
*优点:画面效果优秀,视觉拓展,跨平台。
*缺点:开发机器配置要求高,且不免费开源。
6)白鹭
*适用平台:HTML5、iOS、Android、Windows Phone。
*编程语言:TypeScript、JavaScript。
*优点:免费开源、配套工具多、全中文文档、可视化开发、跨平台。
*缺点:支持的平台较少,大多数时候用于开发对性能和效率要求不高的小游戏。
但使用游戏引擎毕竟只是表面现象,看不到本质。 当游戏开发过程中出现某些问题或特殊需求时,你往往很难处理。 而且游戏引擎技术日新月异,你学到的几乎都是别人留下的方法,而不是底层的思想。 如果以后出现其他游戏引擎,你就得重新学习如何使用其他游戏引擎。 很多大公司甚至有自己专用的内部引擎(如网易的风魂引擎、金山的剑网3引擎、蜗牛公司的Flexi引擎等)。 因此,仅仅走这条路可能不会走得太远,而且可能会变得越来越无聊。
路线二:使用游戏引擎,深入了解游戏引擎原理
对于第二条路线,深入研究游戏引擎原理不会在短时间内给你的工作带来什么突出的成果,但可以弥补只使用游戏引擎带来的问题。 而且,学习游戏引擎原理更多时候不仅仅是为了自己。 未来我想打造一个游戏引擎,但我想更深入地了解自己的游戏引擎并更好地使用它。 当然,千里之行始于足下。 经常学习游戏引擎底层原理的人,当积累了足够的经验后,就可以构建自己的游戏引擎。
对于想要学习游戏引擎原理的人来说,需要给自己设定明确的长期目标:
1)首先,一开始你可能对游戏引擎没有任何了解。 建议先使用一两个游戏引擎(我推荐C++程序员学习Unreal 4游戏引擎,现在免费开源,非常值得学习。那些不开源的游戏引擎应该尽量不要不要研究它,因为它对学习原理没有多大贡献)。
2)因为游戏开发是一门实时渲染的艺术,所以离不开图形库的学习。 目前主流的图形库是Windows平台的DirectX11和通用平台的Opengl。 您需要至少开始使用这两个图形库之一。
3)然后,你就可以开始阅读计算机图形学书籍了。 如果你发现自己的理论基础不足,这时候就需要补充线性代数、基础微积分、3D数学等知识。
4)游戏引擎包含各个部分,上面的渲染图只是游戏引擎的一部分。 其他还有shader编写、地形编写、物理引擎编写、模型与动画、仿真体设计、网络编程等。完成渲染部分的基础学习后,可以选择自己感兴趣的部分专攻毕竟,我们大多数时候,实际工作都是团队开发而不是单独工作。 每个人都应该精通自己擅长的事情。
文章来源:https://zhidao.baidu.com/question/571080782345242444.html