首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

他是最牛游戏程序员,曾靠《雷神之锤3》的算法封神

约翰·卡马克

埃隆·马斯克曾经说过,游戏行业汇聚了很多计算机天才,而在这些天才中,约翰·卡马克二世无疑是最耀眼的之一。

卡马克出生于美国一个普通家庭,他从小就对计算机很感兴趣,开始自学编程,但他对上学这码事不感冒,在进入密苏里大学堪萨斯分校仅2个学期后就退学了。

接下来,他去了磁片公司(Softdisk)打工,这是一家专门做磁盘杂志的公司。当时,卡马克和同事从《超级马里奥》吸取灵感,共同开发了一款滚动卷轴类游戏——《指挥官基恩》。

游戏当时的反响还不错,于是卡马克想“为什么我不能自己干呢”,于是他和同事成立了游戏公司——id Software。

在id Software,卡马克将自己的编程天才发挥到淋漓尽致,比如1992年的《德军总部3D》,是历史上首款第一人称射击游戏。可以这样说,卡马克就是第一人称射击游戏之父,他开启了一个全新的游戏时代。

卡马克喜欢在电脑图像领域尝试全新的技术,比如他在《毁灭战士》上第一次使用二叉树分割技术,在《雷神之锤》上使用表面缓存技术。卡马克开发的游戏引擎被广泛用于其他大型游戏,比如《半条命》、《使命召唤》和《荣誉勋章》。

但真正让卡马克封神的是“平方根倒数速算法”。

在上世纪90年代,3D游戏还在起步阶段,渲染3D图形能力受到硬件的限制,因此程序员不得不想办法另辟蹊径。

1999年,当卡马克在开发《雷神之锤III竞技场》时,需要计算照明和投影的波动角度与反射效果,不得不使用“浮点运算求平方根倒数”,但这样做的成本极高,因为在快节奏、对图形要求高的《雷神之锤III竞技场》中,计算机每秒要进行数百万次运算。

于是卡马克想到了一种快速算法,他选择了一个16进制数字0x5f3759df,然后用牛顿法反复迭代,以求出更精确的近似值。这样做比传统算法快4倍,减少了巨大的运算耗费。

卡马克的神来之笔令整个游戏行业为之震惊,下图就是《雷神之锤III竞技场》的这段魔法代码:

2013年,卡马克离开了id Software,他前往Oculus VR担任首席技术官,在2019年改为担任咨询首席技术官。

卡马克是游戏行业的传奇和开拓者之一,正是因为他和团队的付出,玩家今天才能体验更好的游戏。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210124A0790J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com