游戏开发完整学习路线(各个版本都有)

article/2025/8/23 19:53:06

来自:微浪科技

作者:若朝若曦

在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。

一、平台与编程语言选择

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

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

这里为了文章的紧凑性,我将游戏引擎的基础理论知识和各个引擎组件的推荐书籍放到了文章的附录处。

以下书籍推荐参考自:Clayman s Graphics Corner

链接:http://www.cnblogs.com/clayman/archive/2009/05/17/1459001.html

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

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》


http://chatgpt.dhexx.cn/article/qMFAYVX2.shtml

相关文章

智力开发小游戏集含游戏过程中数据存取-C#入门教学程序

对于初学C#程序开发的学员,一般进行采取开发小游戏程序,这样做首先不会让学员失去学习的兴趣,其次可以将C#中基本的控件与类的写法整合到这些游戏程序中,再次将对数据库的操作也教给学员。通过几年的观察这样的教学有它的好处。所…

游戏开发所需要的知识

从放弃求职回家已经一个半月了,一直都在备考事业编。发现这玩意比游戏开发简单太多了,没有人刁难,没有人催促,几个月举办一次,一天只需要学习3-4个小时,其余时间都是自由安排,太舒服了。考上编后…

零基础游戏开发笔记1——游戏开发流程

万事开头难,多学多练习,熟悉游戏开发的主要流程,莫要强行记忆。 首先,我们来了解一下游戏的开发流程。 第一就是立案,建立策划案。 策划案包含很多东西,包括游戏介绍、游戏内容、游戏模型介绍、游戏数值、…

游戏开发流程之完整指南

“现在,是时候改进您的游戏开发流程了。在这里,无论您是在独立的初创公司亦或大型游戏工作室中,我们都可以调度资源,使您的工作室的开发和设计工作晋升一个层次。” 您可以把本指引当做游戏开发流程改进的参考 我们将覆盖所有您…

游戏开发笔记(二)——开发流程和项目管理

前一篇说到分工,这里再说说流程和开发管理。 组织形式 从公司角度来看一个游戏工作室是一个业务比较独立的研发部门,研发方面的大小事务(除了立项)拥有高度自治权。而从一个工作室角度来看,通常内部又由多个项目组组成…

游戏开发 - 开发流程 - 收集

1.应用场景 主要用于了解,掌握游戏开发的整个流程。 2.学习/操作 1.文档阅读 复习课 | 带你梳理客户端开发的三个重点-极客时间 2.整理输出 2.1 游戏开发流程 -- 参考 按照游戏开发中的三大模块策划、程序、美术,画了一个图。 开发游戏的时候&#xf…

游戏开发完整流程

1. 立项 一个项目立项的原因可能性非常多,有可能是公司拿到一个好的IP,也有可能是几个负责人有个很棒的idea,亦或是老板的梦想是做一个XX类型的游戏,这边不做过多的讨论。 立项过程中应该包含市场调查和产品定位&#xff0c…

如何开发一款游戏?【游戏开发所需技能和开发流程】

开发一款游戏需要的技能包括:编程、设计、音效和项目管理。每个角色都需要掌握其特定领域的知识和技能,并与其他团队成员合作。在本文中,我们将深入探讨如何开发一款游戏。 1. 游戏开发流程 游戏开发流程可以分为以下几个阶段: …

如何开发一款游戏:游戏开发流程及所需工具

本文来自作者 goto先生 在 GitChat 上分享 「如何开发一款游戏:游戏开发流程及所需工具」 编辑 | 哈比 游戏作为娱乐生活的一个方面,参与其中的人越来越多,而大部分参与其中的人都是以玩家的身份。 他们热爱一款游戏,或是被游戏的…

文本识别CRNN模型介绍以及pytorch代码实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、CRNN模型介绍1.模型结构2.CTCLossbeam search 二、使用pytorch实现crnn数据集 前言 文本识别是图像领域的一个常见任务,场景文字识别OCR任务中…

crnn 学习笔记

常用文本识别算法有两种: CNNRNNCTC(CRNNCTC)CNNSeq2SeqAttention 其中CTC与Attention相当于是一种对齐方式,具体算法原理比较复杂,就不做详细的探讨。其中CTC可参考这篇博文,关于Attention机制的介绍&am…

智能驾驶 车牌检测和识别(三)《CRNN和LPRNet实现车牌识别(含车牌识别数据集和训练代码)》

智能驾驶 车牌检测和识别(三)《CRNN和LPRNet实现车牌识别(含车牌识别数据集和训练代码)》 目录 智能驾驶 车牌检测和识别(三)《CRNN和LPRNet实现车牌识别(含车牌识别数据集和训练代码&#xf…

pytorch(11)-- crnn 车牌端到端识别

车牌图片端到端识别 一、前言二、数据集处理三、crnn模型文件四、训练验证代码五、测试代码六、代码搬自 一、前言 本文主要记录了使用crnn 对车牌图片做端到端识别,即不用对车牌字符做逐个字符分割识别,车牌第一个字符为汉字,共有31个&#…

CRNN 论文翻译

《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》论文翻译 摘要 基于图像的序列识别一直是计算机视觉中长期存在的研究课题。在本文中,我们研究了场景文本识别的问题,…

CRNN算法详解

《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》,是比较老的一篇文章了,在2015年6月发表在arxiv上,但是该方法还是被广泛运用。 文章思想:文章…

文本识别论文CRNN

目录 1. 解读文本识别论文CRNN1.1 CRNN文字识别整体流程1.2 理解CTC Loss1.2.1 CTC loss是如何做的1.2.2 以一个具体的例子来展现CTC loss的过程 2. 总结3. 参考资料 1. 解读文本识别论文CRNN 本文解读的是一篇来自2015年的一篇文字识别论文 [ 1 ] ^{[1]} [1]。里面的CTC Loss相…

opencv pytorch CRNN验证码识别

文章目录 前言:效果预览:搭建CRNN模型:验证码数据集制作:模型训练:项目结构与源码下载: 前言: 本文使用crnn网络识别验证码,使用的验证码数据集有三种,准确率都很高。 …

CRNN笔记

参考链接: 一文读懂CRNNCTC文字识别 - 知乎 CTC loss - 知乎 1、背景 文字识别主流的两种算法 1.1 基于CRNNCTC 1.2 基于CNNSeq2SeqAttention 2、CRNNCTC原理解析 CRNNCTC结构图 以下是根据paddleocr中以mobilenetv3为backbone的网络结构图 model …

ocr小白入门CRNN

什么是CRNN CRNN的整体框架图: CRNNCNNRNNCTC 1)CNN主要是为RNN提取特征; 2)RNN主要是将CNN输出的特征序列转换为输出; 3)CTC为翻译层,得到最终的预测结果,由于CTC适合不知道输入…

CRNN代码笔记

CRNN代码笔记 主要由五个模块组成: 数据集的加载与切分CRNN代码复现训练过程预测过程训练过程中对的评估 文章目录 CRNN代码笔记数据集的加载与切分RCNN模型构建训练部分训练辅助函数注意超参数设置判断cuda是否可用,是则基于GPU训练,否则用…