
电子游戏网站API, 电子游戏搭建, 电子游戏程序搭建 ,电子游戏软件搭建, 电子游戏源码搭建,这是一篇超过1万字的学习路线文章,文章的主要受众,是立志于加入游戏行业并从事程序技术相关岗位的同学,如游戏客户端开发、图形引擎和TA(技术向)岗位。
文章主要介绍了从事游戏开发程序岗位所必备的知识内容,并提供了大量的参考书籍和学习教程资料。另外本人根据个人实践经验和大量前人总结经验,精心设计了两条学习路线。若按照这条学习路线执行,预期最短1.5-2年,最长3-4年能够达到游戏程序开发的准入门槛,并能斩获一份不错的游戏行业的Offer。
此学习路线新手友好,面向就业,非常适用于非科班、零基础的同学,对于计算机专业,但还没有明确学习规划的同学,也可以获得帮助。对于已经工作一段时间,但想要转行从事游戏开发的朋友,仍能获得一定的启发。
为了完成这篇文章,我查阅了大量的书籍、文章、视频资料,引用超过50条参考资料、视频教程的链接,绝对是我近年来的心血之作。
文章起名为”终极”确实有些噱头之嫌,但我的确希望它是你看过的最好的一篇学习路线的文章,也可以成为你看的最后一篇。
一、前言
在过往的专业咨询中,有很大一部分问题是关于学习路线的选择问题,另一个被问得最多的则是应该准备什么样的项目,才能够在求职面试中具备竞争力。
的确,市面上的各种游戏开发教程、培训班层出不穷、眼花缭乱,作为一个没有经历过游戏开发的学生或者非游戏行业的人来说,确实很容易感到困惑和迷茫,究竟如何选择才是有效,甚至是高效的呢?
如果你在网络上查阅游戏开发学习路线、游戏程序员学习路线之类的,大概率会搜到两条比较有名的路线。
一个是游戏引擎大神Milo Yip设计的学习路线 游戏程序员的学习之路
另一个是Github上的高Star计算机学习路线的游戏开发篇 Game Developer Roadmap
但是如果你是游戏行业的从业人员,并且仔细研究这条学习路线,就会发现其中的问题。
对于叶神提供的学习路线来说,太过于庞大的知识体系和繁多的书目,会让人感到压力山大和难以坚持。这条路线,可能比较适用于从很小年纪就开始计算机学习的人,或者像叶神这样的计算机天才。对于普通人来说,确实是不太适用的,但是可以借此一瞥游戏开发知识海洋的浩瀚。
而对于Github上的游戏开发学习路线,个人感觉列得过于细致,而方向性(侧重点)不太明确。并且既没有涵盖计算机基础等非常重要的知识模块,也没有提供具体的学习参考资料,只是告诉你应该掌握哪些知识。
因此这二者在我看来都不具备高实用性和可执行性。更不要说,我们的目标是多快好省地达到学习的目标,只掌握必备的知识,避免在低性价比或者无效的方向上浪费时间,尽快转行上岸。
所以,在这里我想从我自己的经历讲起。
我本科是国内985大学的非科班学生,学的专业是土木工程,毕业工作半年多之后觉得当时的工作并不适合自己,生活也并非理想的生活(土木工程行业确实是比想象中要苦逼很多)。最后下定决心辞职跨专业考研计算机,借此来改变自己的命运。
我在考研的那一刻就决心未来要从事游戏开发,因此考上之后就一直在持续搜寻游戏开发相关的资料,包括学习路线、职业规划等。
在我多年的摸索和实践中,我从知乎平台、各位学长学姐的分享中吸取了大量的经验,虽然走过一些弯路,经历过长时间的迷茫和焦虑,但是我感觉我所学过的知识大部分都是有效的,而凭借这些知识技能,我终究是一步步走上了岸。
在我最开始的那几次实习面试中,结果无一不是绝对的失败,有些甚至连面试的机会都没有。之后我痛定思痛决心要潜心修炼,并且付诸了几个月的实践之后,我又一次在经历了几次失败之后,终于是拿到了网易雷火的游戏客户端实习Offer,第一次加入了游戏公司,成为了一名游戏开发者。在第一份成功之前,我大概经历了六七次的失败。
加入游戏公司之后,我非常珍惜这次机会,也一直在竭尽全力的学习知识、积累经验。包括学习各种书籍、课程,参加各种项目实践,刷题、看面经。直到第二年参加秋招的时候,我参加的5家大厂的校招,无一不斩获了最终的Offer。
具体可以看我这篇文章最开始部分的介绍:
【游戏开发面经汇总】- 计算机基础篇1977 赞同 · 100 评论 文章
最后,我是选择了腾讯天美工作室的游戏引擎开发,并在那里工作了3年时间。就在去年,我跳槽到了另一家互联网公司继续做游戏开发,职位是高级游戏引擎开发。并且承蒙公司的信任,第一次担任业务面试官。
近年来,其实我已经很少写文章了,但是在知乎上,还是持续不断地有朋友在点赞、收藏我过往的文章,并向我发起咨询。我意识到我的经历、经验是有价值的,能给他人带来帮助,因此我也非常乐意。于是便有了这篇文章。
回归游戏开发学习路线的正题,诚然,条条大路通罗马,入门游戏开发有很多的方法、路线。我无法断言我给出的学习路线是最优、效果最好的,但是我希望它是对于新手最友好、最实用的一条。可以让即使是天赋普通的人,非科班专业的学生,也能够走上游戏开发的道路。而且,也许这世界上并不存在所谓的“最优”学习路线,但只要这条路线是一条相对较优,能够实际帮助我们达到目标的,就值得一试。
而我介绍个人经历的目的是想说明,我曾经走过的这条学习路线,绝对是有效的、可执行的。随着我这几年在游戏行业的积累和见闻,如今让我再次设计学习路线,我必定会本着效率最大化,性价比最高的宗旨来进一步优化完善,以至于达到,即使我自己再来走一遍,我也一定会按着这条学习路线来执行的地步。
因此,我对此篇文章以及我制定的学习路线有非常强烈的信心,如果你能遵循此条学习路线,认真学习、潜心修炼,我相信你一定可以跨入游戏开发的大门,也一定能上岸成功。
至于入门之后,就是无限广阔的天地。到时候你根据已经了解的知识和资料,就应该能够自己摸索出要进阶潜修的方向了。到那时,我也许也无法再给你更多的建议和指导,但希望你能记住这段有趣的入门之旅。
最后,因为个人能力有限,以下内容可能会有不严谨和错漏的地方,大佬们轻喷,也欢迎补充指正。
二、学习内容
学习内容有必修和选修之分,加粗是重点推荐,相当于必修,不加粗相当于是选修。顺序有先后关系,主要是根据学习难度曲线和接受度进行排序。
学习方式主要提供书籍和视频课程两种,还会附上一些参考资料链接,以及根据我自身的经验进行补充说明。
⭐1.C++
| 书籍 | 课程 | 参考资料 |
|---|---|---|
| 《Essential C++》 | C语言入门课程 | 自学C/C++的书籍推荐 |
| 《C++ Primer》 | Cherno C++教程 | C/C++详细自学路线 |
| 《Effective C++》 | 黑马C++培训课 | 能不能说一下 C/C++ 的学习路线? |
| 《More Effective C++》 | – | 这才是你最想要的 C++ 学习路线 |
| 《C++ 标准程序库》 | – | |
| 《STL源码剖析》 | ||
| 《深度探索C++对象模型》 | ||
| 《C++多线程编程》 |
(注:垃圾知乎编辑器,不能在表格里面贴超链接,还不能加粗,导致我之前导出的链接全没了,只能在下面贴出来了,大家见谅,要骂就骂知乎)
书籍方面,加粗的4本是C++学习路线的四大金刚,在我刚学习C++的时候,在网络上搜寻到的高频书籍也正是这几本。在多年的工作经验中,我愈发能感觉到这几本书的含金量,确实是非常实用的。
《C++Primer》 是修炼基本功,无需多言,认真学完这本书,可以让你写出基本正确的C++代码。
《Effective C++》 ,是一些宝贵的C++实践经验总结,也是面试的高频考点。比如在构造函数里面调用虚函数会怎么样啦,这个问题我面试的时候被问了无数遍,而这本书里面都有非常详细地解答。
《STL源码剖析》 ,部分内容面试会考察,比如内存池的实现,STL容器的底层实现,以及一些算法。
《深度探索C++对象模型》 ,主要是对于类继承、内存布局、虚函数等底层C++机制做了深入的介绍,这些也是面试的高频考点。如果来不及看,也可以看笔记总结:《深度探索C++对象模型》笔记
课程方面,《C语言入门课程》是中国大学慕课网上的精品课程,也是浙大计算机教授开设的一门课程。如果完全对编程没有了解的朋友,也可以从这个课程开始,新手友好。
程序设计入门——C语言_浙江大学_中国大学MOOC(慕课)www.icourse163.org/course/ZJU-199001?tid=1467021443
外国小哥Cherno应该是业界口碑比较好的一位大佬(关键是长得还帅),我在被咨询的过程中也有朋友会提到他。他在Youtube上也有很多粉丝,视频也有很高的播放量,C++教程感觉应该是比较靠谱的,会教你很多实践的技巧和经验。
黑马的C++培训课程在B站播放量非常高,虽然我个人不是很喜欢培训班风格,但是如果有同学喜欢的话,也可以学一学。
我自己的经验是考研阶段先学了C语言的入门课程,配合着学校课本教材一起学习。考上研究生之后,利用入学前的暑假假期,学习了《Primer》 和《Effective》 ,《 STL源码剖析》是后面抽空看的,看了差不多2/3的样子,最后的算法部分没来得及看。
《C++多线程编程》工作之后也抽空看了一些,但确实也没看下去(自我反省一下)。不过凭借着这些已有的知识,已经足以应付我日常的开发了。
【参考资料】:
能不能说一下 C/C++ 的学习路线?782 赞同 · 75 评论 回答
这才是你最想要的 C++ 学习路线581 赞同 · 37 评论 文章
⭐2.数据结构和算法
| 书籍 | 课程 | 平台 | 参考资料 |
|---|---|---|---|
| 《算法图解》 | 数据结构与算法基础(青岛大学-王卓) | LeetCode HOT 100 | BAT大佬写的Leetcode刷题笔记 |
| 《算法笔记》 | 浙江大学数据结构 陈越 | 牛客网公司真题 | 自己想学数据结构,有大佬能推荐一下看什么书吗? |
| 《算法》 | 深入浅出数据结构 – 顶尖程序员图文讲解 | PTA | 程序设计类实验辅助教学平台 | 能不能说一下 C/C++ 的学习路线? |
| 《算法导论》 | – | – | 这才是你最想要的数据结构与算法学习路线 |
书籍方面, 《算法图解》 是我综合几本口碑比较好的算法书籍比较下来,可能对新手来说最合适的。
《算法笔记》 其实是一本算法的机试辅导书,这本书在浙大上机考试领域是当之无愧的王者,也是两位浙大的学长编写的,口碑非常好。写得非常通俗易懂。
《算法》和《算法导论》都是大部头,虽然口碑很好,但是如果不是打ACM算法比赛或者时间非常充裕的同学,建议不要尝试挑战算法的极意。
其实还有一本书《数据结构与算法分析:C++ 描述》,但是名字太长了,影响我表格的排版我就不放上去了(就是任性.jpg)。看网上口碑也是不错的,比较适合入门。
课程方面,第一门和第二门都是大学老师教授的课程,比较学院派,时长较长,但内容绝对是非常详实全面的,如果是大学生时间比较充裕的话,推荐选一门课扎实地学习。因为数据结构和算法对于软件开发来说真的非常重要。
第三门又是一个外国小哥的课程,比较精炼,口碑很好,比较适合时间较紧的朋友。
刷题平台方面,LeetCode仍然是当之无愧的王者,无论是校招还是社招,基本上刷它是最有效的方式。而LeetCode中,又属Hot 100是精品中的精品,可以说掌握了这100题,在手撕代码方面基本上就没太大的问题。但是为了提高对自己的要求,我建议还是刷个200题以上比较保险。
题单 – 力扣(LeetCode)全球极客挚爱的技术成长平台leetcode.cn/problem-list/2cktkvj/
(这个是因为账号没登录,我自己的账号还是有小刷个100题的,Doge.jpg)
牛客网也可以刷算法题,但是它比较擅长的方面,其实是一些公司的笔试题和模拟面试等功能。
牛客网公司真题_免费模拟题库_企业面试|笔试真题www.nowcoder.com/exam/company?questionJobId=10&subTabName=written_page
PTA是浙大的一个刷题网,也比较偏向于学院派,可能对于不考研浙大的同学来说不是那么适用,但是对于算法编程来说,还是能得到一样的锻炼。如果时间不是很紧的话,可以从PTA开始刷起,大概 Basic Level(30-50) -> Advanced Level(50-100)的题量就差不多了,这样学习曲线比较平缓。
【参考资料】:
自己想学数据结构,有大佬能推荐一下看什么书吗?1415 赞同 · 9 评论 回答
大一计算机专业学生,该如何自学数据结构和算法?779 赞同 · 46 评论 回答
Rocky0429:这才是你最想要的数据结构与算法学习路线282 赞同 · 10 评论 文章
我自己的经验,在考研阶段看了浙大陈越老师的视频课程,配合着学校课本教材一起学习,还刷了考研《王道》的数据结构教材。
初试通过之后,开始刷《算法笔记》,题量大概有200左右。校招准备阶段,在LeetCode刷题量100左右。这些经验的储备,就足以应付校招面试的算法题了。
3.操作系统和计算机体系
| 书籍 | 课程 | 参考资料 |
|---|---|---|
| 《深入理解计算机系统》 | 2015 CMU 深入理解计算机系统 | 如何学好操作系统原理这门课? |
| 《现代操作系统》 | 6.1810 / Fall 2024 | 计算机八股文 —— 操作系统篇 |
| – | – | 小白如何学操作系统? |
书籍方面, 《深入理解计算机系统》 和 《现代操作系统》 这两本书都属于神作,无需多言,如果有时间,强烈建议读完,对于自己的基本功是一个非常好的提升。
但是我自己因为也没有都读过,所以会对这两本书之间的区别比较好奇,问了AI,给出的回答是:

课程方面,不得不提大名鼎鼎的 MIT6.828 课程,其实 6.828 和 6.1810、6.S081等是同一门课,不同开课期的不同叫法而已。
6.1810 / Fall 2024pdos.csail.mit.edu/6.828/2024/schedule.html
在学习课程的时候可以同时参考知乎这篇文章 如何学好操作系统原理这门课?,提供了21年相应的视频教程。
CMU(卡内基梅隆大学,计算机顶尖名校) 也出了CSAPP对应的课程,可以在学习书籍的时候同步学习该课程。
不过操作系统和计算机体系是一个非常复杂且比较难的课程,要学好肯定是需要花费大量的时间。而对于非科班、转专业的同学来说,往往不具备那么充足的时间(比如我)。
在这种不得已的情况下,我建议可以考虑学习计算机八股文来应付面试,比如我在参考资料中给出的链接,都是总结得很不错的。
如何学好操作系统原理这门课?322 赞同 · 11 评论 回答
史上最全的C++/游戏开发面试问题总结(三)—— 操作系统上篇mp.weixin.qq.com/s/2376tIl1AkDu0PNfOddXbA
从我自己的经验来说,当时学习操作系统和计算机体系,就是学了考研《王道》的相应教科书 + 八股文。早年间还没入行的时候也看过了一点哈工大的课程(没怎么看明白就是)。
所以在操作系统和计算机体系这一部分的知识,我个人掌握得并不是很好,这种时候就体现出科班生和非科班生的差别(自我反省一下)。
4.设计模式、C#、Lua、计算机网络
这部分内容相对前面三部分,可能没那么重要,但在面试的过程中也偶尔会问到。
| 设计模式 | C# | Lua | 计算机网络 |
|---|---|---|---|
| 《Game Programming Patterns》 | C# 教程 | 菜鸟教程 | Lua 教程 | 菜鸟教程 | 《计算机网络 自顶向下》 |
| 《大话设计模式》 | 《C# 图解教程》 | 《Lua 程序设计》 | 《TCP / IP》详解 |
《Game Programming Patterns》 这个教程系列非常好,专门针对游戏开发总结的出的经验,很实用。如果时间不够的话,也可以看看几篇文章总结,背一背八股文。
Game Programming Patternsgameprogrammingpatterns.com/
C#是Unity开发会用到的脚本语言。Lua是Unity和Unreal做客户端逻辑开发都会用到的脚本语言。这两门语言入门非常简单,我就不建议再去看书了,直接《菜鸟教程》几天看完了事,除非后续有一些更深入的技术需要。
C# 教程 | 菜鸟教程www.runoob.com/csharp/csharp-tutorial.html
Lua 教程 | 菜鸟教程www.runoob.com/lua/lua-tutorial.html
计算机网络,其实无论是对于游戏客户端还是游戏图形引擎,都非常少会涉及到,这里我就不建议再去读那几本厚厚的大部头书籍了,直接八股文,了解一下计算机网络OSI七层模型就行。
从我的经验来说,由于时间太紧迫的原因,设计模式是看的八股文,《Game Programming Patterns》是工作之后补看的(当然也是没看完),C#是早年未入行的时候学过一点培训班的课程(感觉不是很有意义),Lua是进入网易实习之后导师给了一本《Lua 程序设计》,吭哧吭哧看了一周之后就开始直接上手了。计算机网络,在读研阶段,在学习方向还不明确的时候,确实看过一点《计算机网络 自顶向下方法》,但是后来想想好像跟游戏开发没有很大的关系,就放弃转而去学其他内容了。后来面试也只依靠着八股文来应付,但实际上我几乎没被问到几次。
5.图形引擎
图形引擎这方面的 “图形” 部分其实是选修,因为这更多的是更多的是适合于图形TA岗位。对于客户端同学,个人认为不是很需要做这些项目。
关于客户端程序需不需要懂图形见仁见智,从我的观点来看,术业有专攻,与其花费很多时间在一个你在工作中不会去实际开发的方向上,不是很有价值。客户端的一些方向,比如3C、战斗、动画、各种玩法逻辑,都是值得深耕的。
但是在引擎这方面,无论是客户端还是图形引擎,乃至TA,都是需要了解的。
另外,其实图形和引擎(非图形)是两个稍微有些区别的方向(但有些公司也不会很明确地区分),图形一般指的是渲染、动画、物理、几何等跟图形学有关的方面,当然也会做一些图形相关的性能优化。
引擎一般指的就是非图形的通用引擎方向,比如一些底层性能优化(内存、包体),引擎稳定性保证,引擎工具、编辑器开发等。在通用引擎这方面,我可能经验不是很多,这里主要给一些图形方面的建议。
| 课程 |
|---|
| GAMES104 |
| GAMES101 |
| MIT 6.837 |
| LearnOpenGL |
| GAMES202 etc. |
图形学是一个比较抽象的知识领域,所以我推荐的还是以课程为主。
GAMES104,这个教程我把他放在最前面,是因为只要做游戏开发,其实无论什么岗位、方向,看这个课程都会很有收获。尤其是图形引擎岗位和客户端同学,看完之后可能都会像我一样感到豁然开朗,有一种眼前的迷雾逐渐散去的感觉。
GAMES101,应该是国内最好的图形学入门课程(闫神_狂粉.jpg),图形渲染方向的必看教程。
MIT6.837图形课程,这个是当时101还没有出来之前的替代教程,也是我们进入图形实验室前老师要求必修的课程。
LearnOpenGL,一个学习图形API非常好的入门教程,在实验室中口口相传,基本上都会学一遍。这个教程的特点是通俗易懂,而且很快能做出效果,有比较及时的正反馈。
主页 – LearnOpenGL CNlearnopengl-cn.github.io/
Games202 etc,学完了104和101之后,应该就会对自己在图形学方面对哪个方向比较感兴趣了,如果对渲染感兴趣,可以学202,如果对物理动画感兴趣,可以看103,以此类推,GAMES已经出了很多系列的课程,可以根据需要选择进阶学习的方向。
关于书籍,引擎方面只推荐一本 《游戏引擎架构》 ,配合GAMES104一起学习。图形渲染方面,可以考虑买一本 《RTR4》 ,毕竟图形渲染的圣经,买来作为知识导航或者词典都是很好的。
我自己的经验,最开始是从一个光线追踪的简易教程 《RayTracing In One Weedkend》 入手,这个系列有三部曲,我只学了最简单的第一部曲,当时能做出这样的效果:
同时为了了解图形学基础知识概念,学习了之前毛哥写的 《RTR3提炼总结》 ,对各种图形学技术和概念有了初步的认识。
在学习C++的过程中,同步像看小说一样看完了 《游戏引擎架构》 ,这本书后面我似乎又去看了一遍,又能得到不同的收获。
之后是学习了 《LearnOpenGL》 教程,跟着一步步做出了很多有意思的效果:
在进实验室之前,又完成了 《MIT6.837》 课程,同样的,我做出了非常多有趣的效果,我尤其喜欢这个布料模拟的效果。
工作之后,抽空花了点时间补完了 《GAMES101》 和 《GAMES 202》 ,但是作业都只做了一小部分。
最近依然是在补 《GAMES 104》 ,但是由于工作之后确实是懈怠了许多,学习的动力不是那么足了,所以依旧还是未完成状态(再次自我反省中)。
⭐6.项目实践
这一部分应该是最多人关注,也是我被咨询问到最多的问题。作为一个应届生,或者作为一个非科班转行的人,究竟应该需要准备什么样的项目,才能够满足游戏公司的需求,具备一定的竞争力?
别慌,我马上给出我的答案。首先,项目大体可以分为4种:纯C++项目、Unity游戏项目、Unreal游戏项目、图形引擎项目。其中最重要的是基于商业引擎开发的游戏项目(图形引擎特性)。
其次,个人应该根据自身目标公司、岗位情况选择一款商业引擎作为主攻方向,一般就是Unity或者Unreal。举例来说,如果我想去游戏科学做黑神话,那么我应该学习的就是Unreal,如果我想去米哈游做原神,那么我就应该学习Unity。
当然了,想不一定能去,所以你需要根据游戏行业的发展需要,结合自身的兴趣方向做选择。如果做独立开发,可能Unity、Godot之类的是更好的选择,如果要做大型游戏项目,甚至3A游戏,现在UE可能是一个更大的趋势。
市面上的游戏教程琳琅满目,各种培训班层出不穷,从我的角度来说,因为个人能力有限,也只能尽可能挑选一些靠谱的,有学习价值的项目给大家,无法保证一定是最优的项目教程。
注意:其中有很多外网的教程,需要学会科学上网。
6.1 教学平台
在推荐项目之前,先介绍几个教学平台。
1.Youtube, 大量优质的免费课程,需要学会翻墙(搜索关键字,Game Dev Tutorials)
2.Udemy,付费课程网站,但是课程内容一般来说比较优质、靠谱。选一个评分高,上课人数多的就行,基本不会踩坑。
甚至还有国人做的教程,太感人了!我说我怎么一看页面就被吸引了!
关于Udemy,突然萌发了一个想法,我们国内是不是也可以做这样一个高质量的教学课程网站呢?毕竟我目前看过的很多教学培训课程,其实都很水,甚至很多内容都是抄袭搬运的。如果没人来做以后我就来做了吼(我在吹什么牛)。
3.B站,也有一些自制或者搬运的课程
然而市面上的免费课程,一般来说都较短,且不是很成系统(除非有些博主真的很无私)。如果真的想做一个有规模、成系统的项目,建议还是找一个自己认可的老师买一下付费课程(当然如果经济不允许,找一找盗版也是可以)

发表回复