UltraViolence
第一款接触的暴力游戏。Romero 标志性的压抑血腥末日风格,在我眼里依然超越今日的 3A 大作。
在机能有限的 90 年代初,他们将个人英雄主义发挥到极致,像摇滚明星一样的设计师,像苦行僧一样的程序员,游戏史中浪漫的一页。
废话少说,贴上书中一些我觉得有趣的实现细节。
DoomGuy 粘土模型与精灵图
Sketch 之后做粘土模型
Deluxe Paint 中手工上色
BFG 9000 玩具枪镜像
。。。。。。
2 转 3 的地图编辑器
挺巧秒不是吗
然后得到这样的结果
DoomED —— 想用的顺手还是要有 GUI
地形信息
现在已经过时,但是当时大幅优化渲染速度的 BSP Node Tree
碰撞检测(涉及投射类武器和怪物与玩家走位格挡)
你在 ZDaemon 上下的 WAD 是什么
一个压缩包
WAD 的构造设计
素材打包流水线
DOOM 的源码架构
不好意思我不写 C
额,都是我不喜欢写的
5 个 FrameBuffer
0-游戏 1-截屏&背景 2-3 Wipe Animation 4状态栏
Screen[2]&Screen[3] FrameBuffer用在这个标志性的动画里,source:https://www.youtube.com/watch?v=lUsCXSNhHmI
DoomGuy 的狞笑要查表
通过生命值+状态查表,写在一长串 if else 里
透视矫正
Merge Visplane 提升性能
合并结果如下
光照 Tricks
声音传播的设计
状态机维护的怪物行为
作者结语
多读 Doom 源码,构建自己的 Doom 吧
DOOM has a special place in my heart. As a 24-year old immigrant in Toronto knowing only Java, this is the codebase I used to learn C and build up my skills. It is the quality level I set myself to emulate. It is thanks to the "University of id Software" as I like to call it that I ended up being noticed by Google and eventually landed a job offer there. Something I once deemed impossible to achieve.
The title of the book Game Engine Black Book is an homage to Michael Abrash. The explanations in his Graphics Programming Black Book unlocked the most difficult parts of Quake. Michael’s book features a quote which resonated with me. I have tried to live by it and so far it has served me well. Maybe you will also find it inspiring and it will guide you the same way it has guided me.
If you do what you love, and do it as well as you can, good things will eventually come of it. Not necessarily quickly or easily, but if you stick with it, they will come. — Michael Abrash