游戏开发的学习路线
当一个资深的游戏开发程序员也是作者的目标,在没有上大学之前,一直在接触游戏方面的东西(打游戏),并且在想游戏是如何开发出来的。在哪里、在什么环境中、在什么设备上、由什么人来开发、需要团队还是由一个人来开发一个游戏等,这一切问题的答案都是不确定的,这让很多人迷失了自我(包括我)。或许有些人也是跟我一样想的,只是没有去深入而已。
上到大学的我,并且专业对口的情况下,我觉得可以对当初感兴趣的东西深入了解下去,并且把他作为在大学中的奋斗的目标或者前进的动力。下面就是我了解的关于游戏开发的大致的学习反向(不是很全):
一、先了解各大游戏开发引擎(路线一)
各大游戏引擎(素材来源互联网)(一部分引擎)
windows或游戏主机:【Unreal】(虚幻引擎)、寒霜、CE3苹果ios:【unity3D】、【cocos2d-ObjC】、【Unreal】(虚幻引擎)、sparrow、sprite kit。安卓:【unity3d】、【cocos2d-x】、【Unreal】(虚幻引擎)、AndEngine、libgdx。网页:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。使用引擎来开发游戏并不是一件容易的事情,需要掌握并且熟练该引擎所需要的编程语言。
可以在互联网上查看该引擎的教程比如:视频、网上博客、网上教程、官方帮助文档等,尽可能选择一些清晰明了的观看,以便自己吸收相关知识。
在选择引擎方面,尽可能选用比较流行的游戏引擎,因为游戏引擎流行意味着官方的功能比较完善或易用,这就能在我们使用当中得到保障避免出现一些不必要的麻烦。当然每个游戏引擎都有自己的特点,有些是开源的有些是不开源的,也有易用和不易用的,这就要根据你的实际情况来选择哪个引擎来开发游戏,不同平台也要选用不一样的引擎,不同引擎的主要编程语言也是不同的。大部分情况是,Windows用的是C++,同时结合lua或python脚本语言。而ios平台下使用Objective-C或swift,安卓平台下使用Java。但这不是必然的,例如Unity在各个平台下都可以用C#或者javascript脚本语言。
游戏开发平台的类型:
个人主机平台:Windows、Linux、Mac OC;移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;专业主机平台:Xbox、PlayStation、Will等。二、简单介绍流行游戏引擎
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)游戏引擎中包含了各个部分,上面的渲染只是游戏引擎的一部分。还有其它诸如着色器编写、地形编写、物理引擎编写、模型和动画、人工智能体设计、网络编程等等,完成渲染部分的基本学习后,你可以选择自己感兴趣的部分进行专攻,毕竟实际工作大多数时候是团队开发,而不是单打独斗,每个人都应该精通自己所擅长的那部分。
下面是推荐的学习书籍:
(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》 (11)人工智能 《Programming Game AI by Example》有中文版《Artificial Intelligence for Games》《AI Programming Wisdom》《AI Game Engine Programming》 (12)综合 《Game Programming Gems》,文章的范围比较广,选择性阅读《Color and Light in Nature》《Digital Design of Nature》《Form+Code in Design, Art, and Architecture》本人不是很懂,如有不足或错误,请在评论区补充或指出问题。
谢谢大家!!!
相关知识
游戏开发完整学习路线(各个版本都有)
如何从零学习游戏开发
如何学习java手机游戏开发
从零开始学Unity游戏开发
游戏开发中常见的10种编程语言
用c++做游戏开发至少要掌握哪些知识?
游戏型教学软件的设计与开发
手机游戏开发
java如何开发手机游戏程序
手机游戏开发精粹
推荐资讯
- 1老六爱找茬美女的烦恼怎么过- 5070
- 2博德之门3黄金雏龙法杖怎么得 4901
- 3《大侠立志传》剿灭摸金门任务 4362
- 4代号破晓官方正版角色介绍 4058
- 5赛马娘锻炼到底的伙伴支援卡事 3845
- 6闪烁之光11月兑换码大全20 3814
- 7爆梗找茬王厕所特工怎么通关- 3588
- 8原神原海异种刷怪路线-原神原 3579
- 9《我的世界》领地删除指令是什 3531
- 10原神开局星落湖怎么出去 原神 3464