首先,游戏编程也是编程,一些编程的基础书籍是必须的,
楼主提到的《Head First》系列都比较简明易懂,值得一看。
这类书籍没有太多推荐,主要看你想学习的语言。
基础书籍不用看太多,也不用看很深,重要的是看的时候要动手。
一些关键问题要弄明白,例如内存管理。
当你还不熟悉的时候,开发时最好时刻准备一本基础书在身边,开发遇到什么问题可以随时翻阅(当然,Google也是居家必备,但不够系统)。

其次,设计模式,很多初学者觉得它很难懂,是因为没有明白设计模式的目的。
设计模式是解决某类问题的方式,要弄懂它,你需要明白”某类问题“是什么。如果你开发的时候都没有遇到这类问题,那么你也很难真正明白某种设计模式的精髓。
所以我觉得可以先大概了解一些常见的设计模式和它们所解决的问题,然后当你遇到某类问题的时候可以想起某个模式,然后再深入研究它。
而介绍设计模式的书籍我推荐两部,
一个是《敏捷软件开发,原则,模式,实践》 :敏捷软件开发 (豆瓣)
另一个是《Game Programming Patterns》:http://gameprogrammingpatterns.com/

前者是一个很全面的软件工程的书籍,主要讲用敏捷的方法来进行软件开发,里面有相当一部分介绍商业软件常用的设计模式。虽然这本书不是游戏领域的,但是它讲到了很多编程的知识都适用在游戏领域的编程当中。这本书有C#版。

后者是专注游戏编程领域里面的设计模式,它涵盖了游戏逻辑,游戏编辑器,和游戏引擎的编程。它每一节都是从一个游戏编程的问题开始展开,然后提出一些解决方案,最后将解决方案规范化,形成设计模式。虽然很多时候它没有给出很完善的设计模式方案,但是它给出了很多线索,可以让感兴趣的读者深入研究下去。这本书是开源的,不用钱,不过是英文版,例子是用C++写的。

最后,就是游戏编程细分领域的书籍了,例如AI,物理,图形等等,
这些方面的入门书籍我只看过AI方面的,例如《游戏人工智能编程案例精髓》和《游戏开发中的人工智能》,它们都是比较粗略地介绍人工智能在游戏中的基本运用,但是要写出真正能用的代码,还是需要看一些相关的论文,博客等等。

最后附送一些对我非常有帮助的游戏编程博客:
Amit’s Game Programming Information 一个很全面的资源集合
AI分享站 | 学习,思考,领悟,分享,收获,我是游戏AI程序员 专注AI的博客,不过有一段时间没更新了

— 完 —

本文作者:伍一峰

【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 3 个回答,查看全部。
延伸阅读:
怎样系统学习游戏编程?
有什么好玩的塔防游戏推荐?

分享到