游戏开发的平台与编程语言选择,事半功倍

游戏开发的平台与编程语言选择,事半功倍

在软件开发中,游戏开发的方向看似有一个非常明确的目标,但实际上却是一个非常广阔的领域。 如果在开始时没有得到一些指导,很容易误入歧途。 相反,如果能在走这条路之前,得到一些前人的指点,就能达到事半功倍的效果。

平台和编程语言选择

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

个人托管平台:Windows、Linux、Mac OC;

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

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

如果你想从事移动平台的游戏开发安卓游戏开发书籍,Android主流的JAVA语言开发学习,iOS主流的Objective-C语言,那么你就得学这个平台的主流语言,主流的游戏开发语言​​​​在未来很长一段时间内,个人游戏机上都会包含它。 它仍然是C++。

但这并不是说不同平台上的游戏开发没有共同点。 学习这个在另一个平台上是没有用的。 事实并非如此。 在编程世界里走得越远,你就会发现很多事情的本质都是相似的。 比如,如果你对C++的基本语法有扎实的理解(而不是死记硬背),以后转Java语言就会更容易。 这并不难安卓游戏开发书籍,因为它们本质上的面向对象特性和各种编程语言特性是相同的。

所以,要想走得远,学习的时候就不能单纯的肤浅。 一个知识你越深入底层,你就越能看到与其他知识的相同点和相似之处,所以你会比别人更容易。 不过,当然,最好一开始就尽可能的坚持自己的专属领域和编程语言,这样才能尽快在这个领域占据一席之地。

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

仅使用游戏引擎;

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

路线一:仅使用游戏引擎

对于第一种路线,使用游戏引擎并不困难,因此适合想要快速开始从事游戏开发工作的人。 我们工作的时候大部分时间都不会开发自己的游戏引擎,所以这对我们的日常工作没有太大的影响。 对于只使用游戏引擎的人来说,入门阶段需要做的就是阅读引擎的教程(书籍、视频、在线博客、在线教程、官方帮助文档等)并熟练掌握编程语言在教程中使用。

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

Windows 或游戏机:[Unreal]、Frost、CE3

苹果ios:[unity3D]、[cocos2d-ObjC]、[Unreal]、sparrow、sprite kit。

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)

安卓开发书籍_安卓app开发书籍_安卓游戏开发书籍

适用平台: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电视、三星智能电视、Oculus Rift、Gear VR、微软 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) 哭泣引擎3

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

编程语言:C++、Lua。

优点:世界级的画面效果、视觉开发、跨平台。

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

5) 冻伤3 (霜冻3)

兼容平台:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。

安卓游戏开发书籍_安卓app开发书籍_安卓开发书籍

编程语言:C++。

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

缺点:开发机器配置要求高材质材料,且不免费开源。

6) 白鹭

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

编程语言:TypeScript、JavaScript。

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

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

但使用游戏引擎毕竟只是表面现象,看不到本质。 当游戏开发过程中出现某些问题或特殊需求时,你往往很难处理。 而且游戏引擎技术日新月异,你学到的几乎都是别人留下的方法,而不是底层的思想。 如果以后出现其他游戏引擎,你就得重新学习如何使用其他游戏引擎。 很多大公司甚至都有自己的内部专用引擎(如网易的风魂引擎、金山的剑网3引擎、蜗牛公司的Flexi引擎等)。 因此,仅仅走这条路可能不会走得太远,而且可能会变得越来越无聊。

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

对于第二条路线,深入研究游戏引擎原理不会在短时间内给你的工作带来什么突出的成果,但是可以弥补只使用游戏引擎带来的问题。 而且,学习游戏引擎原理并不一定是为了自己的利益。 未来我想打造一个游戏引擎,但我想更深入地了解自己的游戏引擎并更好地使用它。 当然,千里之行始于足下。 经常学习游戏引擎底层原理的人,当积累了足够的经验后,就可以构建自己的游戏引擎。

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

1)首先,一开始你可能对游戏引擎没有任何了解。 建议先使用一两个游戏引擎(我推荐C++程序员学习Unreal 4游戏引擎,现在免费开源,值得学习。那些不开源的游戏引擎要尽量不要不要研究它,因为它对学习原理没有多大贡献)。

2)因为游戏开发是一门实时渲染的艺术,所以离不开图形库的学习。 目前主流的图形库是Windows平台的DirectX 11和通用平台的Opengl。 您需要至少开始使用这两个图形库之一。

3)然后,你就可以开始阅读计算机图形学书籍了。 如果你发现自己的理论基础不足,这时候就需要补充线性代数、基础微积分、3D数学等知识。

4)游戏引擎包含各个部分,上面的渲染图只是游戏引擎的一部分。 其他还有shader编写、地形编写、物理引擎编写、模型与动画、仿真体设计、网络编程等。完成渲染部分的基础学习后,可以选择自己感兴趣的部分专攻毕竟,我们大多数时候,实际工作都是团队开发而不是单独工作。 每个人都应该精通自己擅长的事情。

为了保持文章的紧凑,我将游戏引擎的基础理论知识以及各个引擎组件的推荐书籍放在了文章的附录中。

下表是基础理论知识和游戏引擎组件的推荐书籍列表(不必全部阅读,请选择性阅读):

1)基础数学

以下基础数学书籍是为游戏开发量身定做的,比专注于某个数学方向更有效率:

《图形和游戏开发的 3D 数学入门》,提供中文版

安卓开发书籍_安卓游戏开发书籍_安卓app开发书籍

“3D 游戏编程和计算机图形学数学”

《基础数学指南》

《计算机图形学几何工具》

2)图形库

DirectX 书籍:

《DirectX 11 3D游戏编程入门》巨龙名著,初学者必读

“使用 Direct3D 11 进行实用渲染和计算”,高级

“使用 DirectX 和 HLSL 进行实时 3D 渲染”

OpenGL 书籍:

《OpenGL超级圣经》,著名的蓝宝石书,以实例为主,有中文版。 但不建议看中文版,因为翻译不好。

著名的小红书《OpenGL编程指南》有中文版。 小红书更像是一本手册,有完整的API,示例较少,适合熟练用户查询和使用。

《OpenGL 4.0 Shading Language Cookbook》,高级,基本上是一本API手册,有中文版。 但不建议看中文版,因为翻译不好。

3)计算机图形学

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

《计算机图形学基础》是国外多所大学采用的入门教材。 它涵盖了广泛的主题,从基础相关数学到建模、渲染、动画和应用程序。

“Physically Based Rendering”,主要是离线渲染

《实时渲染》,必读经典! 必读!

石力《计算机图形学》

《计算机图形学》请阅读最新第三版

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

4)Shader着色器

安卓开发书籍_安卓游戏开发书籍_安卓app开发书籍

“Cg_tutorial”,入门

“完整效果和 HLSL 指南”,入门

“游戏程序员和艺术家的着色器”,包含许多介绍性示例

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

《GPU Gems》是进阶学习的必读之作。

每年出版一次的《Shader X》系列包含了最新的实时渲染技术。 论文很多,很难。

《编程顶点、几何和像素着色器》,主要基于DirectX 10,非常详细。

5)地形

“使用 C++ 和 DX9 的实时 3D 地形引擎”对地形渲染的各种技术进行了非常全面的讨论。

6)模型导入和动画

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

《电脑动画》

“实时摄像头”

《电脑面部动画》

“使用 Visual C++ 进行实时 3D 角色动画”

《高级动画和渲染技术》

《布料建模与动画》

7) 网络

《TCP/IP详解卷2》

《Microsoft Windows 网络编程》

《UNIX环境下的高级编程》

安卓开发书籍_安卓app开发书籍_安卓游戏开发书籍

《Windows核心编程》

《Win32中的多线程应用》

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

8) 物理

《游戏物理》

《游戏物理引擎开发》

《实时碰撞检测》,碰撞检测最好的书

《3D游戏引擎设计第2篇》第8章和第9章值得一读

9) 详细程度

“3D 图形的细节级别”

10) 光线追踪

“基于物理的渲染 - 从理论到实现”

《光线追踪的另一种介绍》

11) 人工智能

《编程游戏AI实例》有中文版

《游戏人工智能》

《AI编程智慧》

《AI游戏引擎编程》

12) 综合

《游戏编程宝石》,文章范围比较广,选择性阅读

《自然界的色彩与光》

《自然的数字化设计》

“设计、艺术和建筑中的形式+代码”

文章来源:https://m.jiaoyubao.cn/baike/939.html