<audio id="audio" title="课后阅读 | 游戏开发工程师学习路径（下）" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/56/ae/56907724b65ca600ea9c87472d8b4aae.mp3"></audio>

上一节，我讲了一些底层知识和编程语言。搭好了底子，接下来，你需要掌握一些游戏的常规原理和机制。这里我也为你准备了一份学习书单。

## 游戏设计

[《游戏机制》](https://book.douban.com/subject/25859579/)，这是一本策划和程序员都可以看的书。在游戏设计中，游戏机制的设计，决定着游戏中的呈现效果，直接影响着玩家体验。而这本书就是教你如何打造出挑战丰富、乐趣十足、平衡良好的可玩性的游戏机制。它结合了很多实用案例，从不同角度介绍和阐述了游戏机制，介绍了用于构建和模拟游戏机制的Machinations工具。

[《游戏设计的100个原理》](https://book.douban.com/subject/26318335/)做游戏开发的人，基本上自己都是非常喜欢游戏的，肯定玩过不少游戏。但是估计你对游戏设计背后的原理性的东西，了解的不会很多。这本书就是讲很多原理性的东西，让你从更专业的角度来看你以前玩过的游戏，毕竟游戏设计其实更像是一门哲学。

[《Windows游戏编程大师技巧》](https://book.douban.com/subject/1230286/)，这是一本经典书籍，属于游戏开发启蒙教材，它涉及了开发的基础知识和理论、开发技巧这些问题。有一点点汇编、C/C++语言基础，看这些就不会觉得特别难了。

## 2D和3D编程

接下来，关于2D编程，我们可以看[《Cocos2dX游戏开发技术精解》](https://book.douban.com/subject/24733748/)，这是一本让你一下子就能学习2D引擎且直接上手的书籍，几乎是学习2D游戏必备。

《Unity 4.x 2D游戏开发基础教程》是一本利用Unity编写2D游戏的教程书籍。另外有一本非常难买到的书[《2D Graphics Programming for Games》](https://book.douban.com/subject/20116832/)，目前只有英文版，如果你能找到电子书也可以阅读一下。

毕竟3D游戏大行其道，但是它和2D游戏的路数又是非常不一样的。加上很多人上来就想做3D游戏，那关于3D开发，这几本书必看不可。

[《3D游戏编程大师技巧》](https://book.douban.com/subject/1321769/)[《Unity 3.x游戏开发实例》](https://book.douban.com/subject/25916788/)[《3D游戏开发大全》](https://book.douban.com/subject/1488758/)。第一本书可以让你很轻松地就了解3D游戏的编程基础知识，第二、三本书都是属于利用引擎来编写实例的，你可以在这些例子中获取更多的实战经验。

而《3D游戏开发大全》以Torque引擎来作为切入点，让你看到更多的技术。比如，游戏建模技术、人工智能技术、玩家控制技术等等游戏开发的细节。看完这三本书你就会对3D游戏编程有一个本质的了解。

做为3D游戏开发，还要知道3D模型、贴图、骨骼等一些3D美术知识。从基础开始学起的话，我推荐[《DirectX 9.0 3D游戏开发编程基础》](https://book.douban.com/subject/2111771/)。这本书介绍了一些必备的数学工具，涵盖了Direct 3D中几乎所有基本运算，以及如何使用Direct 3D来实现3D游戏。

## 网页游戏开发

原生游戏客户端开发的学习重点在编程语言上，所以，其实你学了什么编程语言，几乎可以决定你会从事什么样的开发工作。而网页游戏相对来说就简单得多。

想要学习网页游戏制作，其实就是学习CSS3、HTML5以及JavaScript的知识。这方面的学习资料非常之多，网上一搜就能出来一大堆。其实你只要把每个方面专心学完一本书，把基本知识和核心知识搞懂了，结合一些项目实战有针对性的去练习就可以了，入门还是非常容易的。

比如，看些大家都推荐的经典书籍[《响应式Web设计》](https://book.douban.com/subject/20390374/)[《HTML5程序设计》](https://book.douban.com/subject/10608238/)等等。

最初，你需要学习最基础的HTML语言语法。HTML5本身对初学者就非常友好。

[《JavaScript语言精粹》](https://book.douban.com/subject/3590768/)也是必读的书籍。JavaScript语言的书籍非常非常多。这本书的内容就像它的书名，真是是精粹，从语法、函数、对象、数组、正则等等特性来介绍JavaScript语言的精髓，让你能真正掌握并高效地使用JavaScript，非常推荐。

到这里，按照原生游戏开发和网页游戏开发的分类，我们的游戏学习路径和书籍介绍已经写得差不多了，在这里再向你介绍两本与游戏无关却与编程有关的书籍[《设计模式》](https://book.douban.com/subject/1052241/)[《代码大全》](https://book.douban.com/subject/1477390/)。

这两本书能让你编写代码的水平提升一个层次，提高编程水平是让自己的职业化道路越走越好的一条唯一途径。世上没有捷径，勤学苦练，多看多写才是根本。游戏开发的基础是编程基础，有了扎实的底子，往后走提升得才会比较快。

一百多年前，福楼拜曾在一封信里写到：“谁要能熟读五六本书，就可成为大学问家了。”所以，我列的这些书，你能读完最好。但我知道，对大多数人来说，肯定是读不完的。你可以根据自己的情况做个筛选，有针对、有选择的去学习。

如果你想从事H5游戏开发的，你可以着重学习HTML和CSS；如果想学习服务器端开发的话，可以着重学习Socket开发和TCP/IP相关的书籍；如果想学习客户端知识，比如3D客户端的话，可以注重学习Unity或者虚幻引擎为载体的书籍。

希望今天的分享对你有帮助。


