
当我2014年第一次偶然发现Fabien Sanglard的文章时,我一直是他的粉丝。我记得花了几个小时阅读他的所有文章,并通过他的评论学习了很多有关计算机图形和游戏引擎的知识。
Fabien善于用非专业人士的方式解释高度技术性概念。 这就是使他的文章有趣阅读的原因。
老实说,自2014年以来,他一直是我的灵感来源。当我第一次阅读他的《 Good Algorithms Books》文章时,我一点都不擅长算法和数据结构。 实际上,我被他们吓倒了。 但是通过那篇文章……那篇文章,我现在声称确实将我的职业提升到了一个新的水平,我能够极大地提高自己的编程技能。
当Fabien写那篇文章时,我从字面上买了他推荐的所有书,并通读了所有这些书。 (嗯,除了TAOCP和CLRS的点点滴滴……但是很快!)。 我要归功于他间接影响了我的软件工程事业。 从那时起,我一直在尝试吸收尽可能多的书籍,以期在这一广阔的技术领域中提高自己的知识水平并尽可能多地学习。
因此,这篇评论不仅是常规的书评, 还是对Fabien及其在我的软件工程生涯中具有影响力的著作的感谢 。 我敢肯定,他过去曾经启发过许多其他工程师,他们只是出于一天制作游戏的动机而开始编程。
在2014年,Fabien宣布他将撰写《 Game Engine Black Book》。 当他宣布这一点时,我很激动! 我心想,我绝对不会买! 经过3年的努力,他终于出版了!
一旦它在亚马逊上可用,我便迅速购买了副本,等待完美的周末下午阅读。 今天差不多是一天。 由于我已经习惯了他的写作,而且由于他以这种流畅的方式解释技术资料的方式,因此通读本书大约需要4个小时。
在阅读本书之前,我实际上对以下内容有基本的了解:
- 16位x86体系结构(286)和早期的32位x86体系结构(386)
- ISA系统架构
- 使用DOS中断的基本VGA编程。
- 实模式与保护模式
- DOS内存模型
- 许多随机的ID历史记录,琐事以及对复古计算和游戏的极大兴趣。 🙂
因此,前几章是悠闲阅读的内容。 我认为前两章非常有动机,向读者介绍在那个时代与IBM PC兼容的系统上实现出色性能的技术难题。 当时,IBM PC并不是用于游戏的机器,而是用于一般用途的办公室。 Fabien强调这一点为我们提供了所需的上下文,以便在当时的硬件限制下欣赏Wolfenstein 3D能够实现的技术奇迹。
第3章可能是我最喜欢的章节。 在阅读本书之前,我没有见过用于开发某些早期ID游戏的内部工具。 看到用于构造Wolfenstein 3D资产的工具和工作流程真的很有趣。
最好阅读的一章是第4章,Fabien将带我们进入Wolfenstein 3D代码库。 这是阅读时间最长,最密集和最有趣的一章。 我真正感兴趣的是游戏和引擎本身的体系结构。
id所做的内存管理器和页面管理器实现让我印象深刻。 整个体系结构使我想起了微型操作系统。 这并不牵强,因为当时的DOS相当有限。
我学到的另一个从未真正有机会很好掌握的概念是光线投射 。 我记得过去曾经读过一些有关它的教程,但是我想说Fabien对射线投射如何工作的解释可能是目前最好的。 我总是在我的书评中提到,有一本书一定要引起人们的注意,因为这一定使它成为“必须购买”的东西,我想说的是,关于光线投射的解释是这本书的“杀手级应用” 。
本书的其余部分以对Wolfenstein 3D的发布后的欢迎以及它对行业的影响作为总结。 我认为,仅由于Wolfenstein 3D现在是开源的事实,今天它如何继续蓬勃发展就特别有趣。 我可以想象,如果不是这样,那么游戏真的会陷入当今“不兼容的放弃软件”的深渊。
基本上是三年的制作过程,而这本书则表明了这一点。 不要介意Fabien的英语。 😉。 他已经在封底中警告我们说他已经破坏英语,但这并不重要-他的解释优于在线上提供的许多资源。
我的评分? 5/5。
亚马逊链接:https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp/1539692876