约翰·卡马克
埃隆·马斯克曾经说过,游戏行业汇聚了很多计算机天才,而在这些天才中,约翰·卡马克二世无疑是最耀眼的之一。
卡马克出生于美国一个普通家庭,他从小就对计算机很感兴趣,开始自学编程,但他对上学这码事不感冒,在进入密苏里大学堪萨斯分校仅2个学期后就退学了。
接下来,他去了磁片公司(Softdisk)打工,这是一家专门做磁盘杂志的公司。当时,卡马克和同事从《超级马里奥》吸取灵感,共同开发了一款滚动卷轴类游戏——《指挥官基恩》。
游戏当时的反响还不错,于是卡马克想“为什么我不能自己干呢”,于是他和同事成立了游戏公司——id Software。
在id Software,卡马克将自己的编程天才发挥到淋漓尽致,比如1992年的《德军总部3D》,是历史上首款第一人称射击游戏。可以这样说,卡马克就是第一人称射击游戏之父,他开启了一个全新的游戏时代。
卡马克喜欢在电脑图像领域尝试全新的技术,比如他在《毁灭战士》上第一次使用二叉树分割技术,在《雷神之锤》上使用表面缓存技术。卡马克开发的游戏引擎被广泛用于其他大型游戏,比如《半条命》、《使命召唤》和《荣誉勋章》。
但真正让卡马克封神的是“平方根倒数速算法”。
在上世纪90年代,3D游戏还在起步阶段,渲染3D图形能力受到硬件的限制,因此程序员不得不想办法另辟蹊径。
1999年,当卡马克在开发《雷神之锤III竞技场》时,需要计算照明和投影的波动角度与反射效果,不得不使用“浮点运算求平方根倒数”,但这样做的成本极高,因为在快节奏、对图形要求高的《雷神之锤III竞技场》中,计算机每秒要进行数百万次运算。
于是卡马克想到了一种快速算法,他选择了一个16进制数字0x5f3759df,然后用牛顿法反复迭代,以求出更精确的近似值。这样做比传统算法快4倍,减少了巨大的运算耗费。
卡马克的神来之笔令整个游戏行业为之震惊,下图就是《雷神之锤III竞技场》的这段魔法代码:
2013年,卡马克离开了id Software,他前往Oculus VR担任首席技术官,在2019年改为担任咨询首席技术官。
卡马克是游戏行业的传奇和开拓者之一,正是因为他和团队的付出,玩家今天才能体验更好的游戏。
领取专属 10元无门槛券
私享最新 技术干货