John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast #309 精简版

2026-04-30

视频链接: https://www.youtube.com/watch?v=I845O57ZSy4

这段访谈是 Lex Fridman 对传奇程序员、ID Software 联合创始人 John Carmack 的深度对话。内容涵盖了 Carmack 从早期在 Apple II 上通过底层黑客手段突破硬件限制(如实现平滑滚动)到开发出《毁灭战士》(Doom) 和《雷神之锤》(Quake) 等改变行业规则的游戏历程。Carmack 详细分享了他的编程哲学、对 C++/Python/JavaScript 等语言的见解、以及在 Oculus 推动虚拟现实(VR)发展的工程取舍。视频的核心主题围绕着“工程师精神”展开:如何在资源极度受限的情况下,通过深度的技术洞察创造极致的用户价值。此外,Carmack 还探讨了他目前致力的通用人工智能(AGI)研究,提出了 AGI 可能比大众想象中更简单、更接近实现的激进观点。

1. 编程启蒙:从 Radio Shack TRS-80 到第一个“Hello World”

内容精简

约翰·卡马克的编程之路始于 Radio Shack 商店里的 TRS-80 电脑。由于当时完全脱离 Unix 或 C 语言的标准化编程文化,他的第一个程序并非传统的 "Hello World",而是 10 PRINT "JOHN CARMACK" 配合 20 GOTO 10 实现的无限刷屏。在信息匮乏的 80 年代,他通过过时的图书馆书籍、百科全书中的大型机照片以及 Radio Shack 委托创作的科普漫画(如超人使用 TRS-80 辅助行动)来汲取知识。卡马克对计算机的痴迷源于一种“绝对的确定性”:计算机是一个不会顶嘴、没有主见、只会精准执行指令的“猴爪神灯”。只要指令正确,它就能创造魔法。这种早期的控制感和对游戏(如 Atari 2600 游戏)的模仿欲望,驱动他开始了从基础语言到汇编语言的进阶过程。

要点提炼

  • 非标准的起步:卡马克的第一个程序是打印自己的名字而非 "Hello World",反映了早期个人电脑社群的孤立与纯粹。
  • 信息获取的挑战:在互联网前时代,编程知识碎片化且严重滞后,学习依赖于剪报、图书馆旧书和商业科普手册。
  • 计算机的本质吸引力:编程的魅力在于其“无条件的服从性”和“逻辑的魔法感”,这种反馈循环对创作者有极强的感召力。
  • 游戏驱动开发:从最初的文本冒险游戏到简单的动作游戏,对图形交互的渴望是其钻研底层的原动力。

原文摘录

"I remember being in a Radio Shack going up to the trs8 computers and learning just enough to be able to do 10 print John carac... not having any interaction with the cultures of Unix or any other standardized things it was just like well what am I going to say I'm going to say my name." "It just felt like this magical thing to me this idea that the computer would just do exactly what you told it to... it wasn't going to back talk you it wasn't going to have a different point of view it was going to carry out what you told it to do."


2. 编程哲学:Goto 语句的合理性与底层代码的优化逻辑

内容精简

关于 goto 语句是否为“毒药”的争议,卡马克持实用主义观点。在早期 BASIC 等缺乏 for/while 循环的语言中,goto 是必需的。而在现代代码中,虽然它由于破坏结构化编程而鲜少出现在应用层,但在底层、高性能代码中,goto 仍有其独特价值。例如,在处理多层嵌套循环的退出或统一的错误处理清理(cleanup)时,使用 goto 往往比散布大量标志位(Flags)或复杂的 if 嵌套更简洁、更直观。卡马克的优化逻辑核心在于:挑战硬件设计的“直觉用法”。他认为,大部分编程任务是实现某种已知的效果,但挑战在于如何使其比标准做法快 2 到 10 倍。越接近机器代码,这种“黑客式”的、利用硬件局限性的手段就越常见。在 VR 和元宇宙开发中,这种触碰系统极限的“精神汇编”依然是定义未来的关键。

要点提炼

  • Goto 的非毒性:它在嵌套中断(Nested Breaks)和集中式错误处理中比冗余的布尔标志更高效。
  • 底层代码的特质:越靠近硬件,功能集越有限,越需要通过非传统的“黑客手段”绕过抽象层。
  • 优化的本质:不是为了寻找某种“唯一真理”,而是通过权衡与牺牲,寻找能够越过用户感知阈值(如延迟、帧率)的高性能路径。
  • 硬件极限思维:尽管现代硬件性能过剩支持“平庸”代码,但最前沿的体验(如独立 VR 芯片实现沉浸感)仍要求开发者具备极致优化的能力。

原文摘录

"Go-tos aren't poisonous sometimes they're the right thing to do... it can sometimes be better to do a go-to cleanup or go-to error rather than having multiple Flags multiple if statements littered throughout things." "The infrastructure on top of like the closer you get to the machine code the more go-tos you're going to see the more of these like hacks you're going to see." "So much of the programming work that I did was largely figuring out how to do something that everybody knows how they want it to happen it just has to happen two to 10 times faster than sort of the straightforward way."


3. 硬核黑客手段:在 Apple II 上利用文本刷新实现图形平滑滚动

内容精简

卡马克职业生涯中第一个重大的技术“黑客”手段是在 Apple II 电脑上实现的图形平滑滚动。当时,受限于极低的 CPU 频率(约 1MHz),如果开发者想制作一个像街机《Vanguard》那样的横版或纵版滚动游戏,采用“每一帧重绘整个屏幕”的朴素方法会导致帧率低至不可玩。卡马克通过研究硬件底层寄存器发现:Apple II 的文本显示模式和低分辨率图形模式(40x40 像素)在硬件机制上是统一的。系统固件中已经存在一个高度优化的汇编子程序,用于处理文本模式下的“滚行(Scrolling)”。卡马克利用了这一特性:他将屏幕置于图形模式,但在需要滚动时,他通过触发一个底部的“换行符(Line Feed)”,强制系统调用那个原有的文本滚动例程将整个位图屏幕瞬间向上推移一行。这样,他只需每帧在屏幕底部重绘极少量的像素行即可,极大地节省了 CPU 开销。这一思路(利用现有硬件特性而非蛮力计算)成为他日后在 id Software 开发卷轴游戏甚至 3D 引擎的思维蓝图。

要点提炼

  • 性能瓶颈:1MHz 的 CPU 无法支持全屏重绘,这是当时个人电脑与游戏主机(有硬件卷轴支持)的核心差距。
  • 跨模式复用:发现图形模式与文本模式底层寄存器共享,从而利用文本模式的固有优化。
  • 硬件“错位”调用:通过触发“换行”这一原本用于文字排版的指令,实现了图形上的垂直滚动。
  • 增量更新策略:由全屏重绘转变为仅重绘新增边缘,这种高效渲染策略延续至其后的所有引擎开发。

原文摘录

"The text screen and the low resolution Graphics screen were basically the same thing... I figured out that I could kind of tweak just a couple things... and I could just do a line feed at the very bottom of the screen and then the system would scroll it all up using an Assembly Language routine." "That was like this first great hack that sort of had analoges later on in my career for a lot of different things... efficient drawing where you don't have to draw the whole screen but you draw from the bottom using the thing that was designed in the hardware for text output."


编程语言评析:C++ 的严谨性、Python 的效率及 JavaScript 的工程奇迹

内容精简

卡马克认为编程语言的选择本质上是工程权衡。他在 AI/ML 领域使用 Python,尽管其原生循环性能极低(比 GPU 张量运算慢百万倍),但通过 C++ 底层库和向量化操作,Python 实现了极高的开发速度。对于“严肃编程”,他坚持使用 C++,但倾向于“类 C 风格”,警惕模板元编程等过度抽象导致的维护困难。他认为 C 语言虽有内存安全缺陷,但其简单性使任何人都能快速接手代码,这种低门槛在团队协作中被低估了。对于 JavaScript,他称之为现代工程奇迹,其 JIT 优化极大地弥补了动态语言的劣势。关于垃圾回收(GC),他认为这对 99% 的应用是利大于弊的,能有效避免内存安全漏洞,仅在追求极致实时的游戏核心引擎中才需手动管理内存。

要点提炼

  • Python 的定位:Python 的核心价值在于便利的库集成和向量化操作,而非原生执行速度。
  • C++ 的工程化应用:应避免过度抽象(Template Metaprogramming),代码的可理解性和可交接性比初次编写的速度更重要。
  • 简单性的力量:赞赏 Go 语言这种放弃“最先进”特性、追求极致简单以便于团队协作的设计哲学。
  • GC 的普适性:垃圾回收能解决绝大多数内存溢出和安全漏洞问题,手动内存管理仅属于 1% 的尖端实时场景。

原文摘录

"When I'm sitting down to do what I consider kind of serious programming, it's still in C++ and it's really kind of a C-flavored C++ at that where I'm not big into the modern template metaprogramming sorts of things. I see a lot of train wrecks coming from some of that over abstraction."

"The engineering under JavaScript is really pretty phenomenal... the systems that make JavaScript run as fast as it does right now are kind of miracles of modern engineering."

"It's not the writing of the program initially, it's the whole lifespan of the program... how well it hands off between a continuous kind of revolving door of programmers taking over maintenance."


黑客伦理与开源精神:为什么分享源代码能推动整个行业进步

内容精简

卡马克深信《黑客:计算机革命的英雄》中所描述的伦理:信息分享不是零和博弈。他推动 ID Software 开源《毁灭战士》(Doom)和《雷神之锤》(Quake)的代码,并非单纯为了名声,而是为了让开发者能突破既有引擎的限制。他认为,当代码达到“图灵完备的创造力”时,释放源代码能让社区创造出远超原作者想象的内容。在处理技术信用(Credit)时,卡马克展现了极度的谦逊,例如“卡马克反转”算法虽以他命名,但他坦承自己并非首创者。他强调,黑客应专注于构建酷的事物并与他人分享,历史长河自然会公正地分配荣誉。

要点提炼

  • 核心价值观:分享代码并不会削弱原创者的价值,反而能通过他人的迭代创造净价值。
  • 软件寿命扩展:通过开源和模块化(如 WAD 文件),让游戏从闭塞的程序变为可持续演化的创作平台。
  • 开放标准的意义:坚持维护 OpenGL 以对抗微软的 Direct3D,这直接推动了后来移动端图形接口(OpenGL ES)的统一和爆发。
  • 功利主义视角:如果你的技术输出产生的价值超过了投入的资源,那么世界就因此变得更好了。

原文摘录

"It was about sharing information being good not keeping it to yourself and that it's not a zero sum game that you... can share something with another programmer and it doesn't take it away from you."

"The highest form of the art is just focusing on the art... focus on building cool stuff sharing it with other cool people and credit will get assigned correctly in the long arc of history."

"Anything that can be syntactically allowed in your language is going to show up eventually in a large enough code base... you need automated tools and guard rails."


个人生产力法则:60小时工作制、充足睡眠与任务切换策略

内容精简

卡马克极度自律,长期保持每周 60 小时的工作强度(每天 10 小时,每周 6 天)。他反对“熬夜写代码”的黑客刻板印象,坚称 12 小时后大脑会变成“浆糊”,因此必须保证 8 小时睡眠以维持认知质量。针对“工时增加会导致效率下降”的观点,他反驳称:虽然边际效率会递减,但总产出仍随工时增加,且这种高压能磨练出真正的匠人。他采用“大脑状态匹配”的任务切换策略:精力充沛时解决硬核逻辑,疲劳时则进行笔记整理或低密度维护。此外,他偏好多显示器和强大的集成开发环境(IDE),认为实时调试器(Debugger)比纯文本编辑器更能高效地剖析复杂系统。

要点提炼

  • 工时哲学:产出等于工时乘以效率,尽管 marginal productivity 递减,但大量工时是解决世界级难题的必经之路。
  • 认知维护:8 小时睡眠是红线,长期处于“智能不足”状态工作是严重的战略错误。
  • 任务分层:根据大脑当前状态切换任务。精力充沛时读论文/写代码,精力涣散时做低认知负荷的整理工作。
  • 工具理性:推崇功能完善的现代工具。比如通过三显示器减少切换成本,通过调试器观察系统运行,而非仅靠大脑模拟。

原文摘录

"I always try to get eight hours of sleep it's not this push yourself harder get up earlier I just do worse work where you can work a 100 hours a week and still get eight hours of sleep if you just kind of prioritize things correctly."

"Working longer gets more done... your marginal productivity for an hour after eight hours is less than in one of your peak hours but you're not literally getting less done."

"Switching between them has been real valuable... there are time periods where it's the best time for me to read a new research paper... then there's the time that maybe I should just scan and organize my old notes because my I'm just not on top of things."


4. ID Software 的诞生:从 Softdisk 订阅模式到《指挥官基恩》的成功

内容精简

ID Software 的前身诞生于 Softdisk 公司的月度软件订阅业务。John Carmack 当时通过向各平台(Apple II, PC)移植自研小游戏维持生计,其高效的跨平台能力吸引了 Softdisk 并受邀前往路易斯安那州。在那里,他遇到了 John Romero 等志同道合的程序员。他们成立了专注于 PC 游戏的部门“Gamer's Edge”,在极高强度的频率下(每月一款游戏)磨炼了开发技巧。

当时 PC 游戏的技术瓶颈是无法实现像任天堂(NES)那样的平滑侧卷轴效果。Carmack 通过研究硬件底层,开发了“自适应图块刷新”(Adaptive Tile Refresh)技术:仅重绘屏幕中发生变化的部分,使效率提升 5 倍。以此为基础,他和 Tom Hall 一夜之间在 PC 上克隆了《超级马力欧兄弟 3》。虽然任天堂拒绝了合作,但这一技术吸引了 Apogee 的 Scott Miller。Miller 提出了革命性的“共享软件”(Shareware)模式:将游戏分为三卷,首卷免费分发,后两卷收费。1990 年《指挥官基恩》利用该模式和 Carmack 升级后的卷轴技术(利用内存环绕实现任意平滑滚动)获得巨大商业成功,单月收益达 3 万美元,正式开启了 ID Software 的传奇。

要点提炼

  • 订阅制磨炼:在 Softdisk 的高强度开发周期(每月交付)类似于披头士在成名前的汉堡演出,是技能积累的关键期。
  • 技术突破(侧卷轴):PC 硬件最初并非为动作游戏设计,Carmack 通过“自适应图块刷新”和后续的“内存环绕平滑滚动”打破了 PC 无法流畅运行平台游戏的迷思。
  • 商业模式创新:采用 Apogee 的“三部曲共享软件模式”,利用第一卷的病毒式免费传播带动后续收费卷的销售。
  • 任天堂的影响:ID 最初的梦想是成为任天堂在 PC 端的官方移植团队,被拒后才走上自研道路。

原文摘录

"You learn so much when you go through and you crank these things out like on a bi-weekly monthly basis. It’s that sense of like I'm just going to go make 26 different games... from the very beginning to the very end is done."

"The core thing that those consoles did that you just didn't get on the PC games was this ability to have a massive scrolling world... My first great hack was finding a way to draw from the bottom using the thing that was designed in the hardware for text output."


5. Wolfenstein 3D 技术突破:射线投射算法(Raycasting)与伪 3D 革命

内容精简

《德军总部 3D》(Wolfenstein 3D)的核心贡献在于将游戏视角从传统的“上帝视角”转变为第一人称视角,这种视角能直接触发人类原始的“爬虫脑”惊吓反射,创造了前所未有的浸入感。

技术上,Wolfenstein 3D 是一场优雅的“降维打击”。尽管它是 2D 逻辑(基于 64x64 的网格地图),但通过射线投射算法(Raycasting)实现了伪 3D 渲染:从玩家位置向视场发散射线,计算与网格墙体的交点距离,以此决定墙面绘制高度。这种方法规避了当时 16 位 PC 难以承受的全多边形裁剪计算。为了优化性能,Carmack 还发明了“编译缩放器”(Compiled Scalers):针对不同比例的精灵(Sprite)生成上百段特定的汇编微程序。当怪物靠近、占据整个屏幕时,传统的循环缩放会拖慢帧率,而编译缩放器通过直接将像素数据硬编码进指令中,实现了“离目标越近,渲染越快”的反直觉效率优化。

要点提炼

  • 视角革命:3D 视角改变了玩家与游戏的交互方式,将游戏从“操控角色”变为“代入自身”。
  • 射线投射(Raycasting):通过在 2D 空间进行几何相交检测来模拟 3D 深度,是 16 位计算机时代的性能最优解。
  • 编译缩放器:通过牺牲内存空间换取执行速度,将复杂的循环判断转化为线性的机器码指令,极大地提升了近距离贴图的吞吐量。
  • 极限优化思想:利用硬件文档中未记载的特性(如底层寄存器操作),在受限资源下榨取性能。

原文摘录

"There's a monster like right there and he practically fell out of his chair... Something in the back of your brain, some reptile brain thing is just going 'oh something just happened'."

"I made essentially a hundred or more separate little programs that was optimized for... I would take an image and I will draw it 12 pixels tall, 14 pixels tall... it was giving you the most acceleration just when you needed the performance most."


6. Doom 的工程奇迹:BSP 树算法、2.5D 空间与 WAD 文件扩展性

内容精简

《毁灭战士》(Doom)旨在打破《德军总部 3D》的 90 度直角墙体限制。它引入了非固定的地板/天花板高度、光影变化以及任意角度的墙体,从而达到了“图灵完备”的创作自由度。

工程上的核心挑战是处理不规则几何体的渲染顺序和性能。Carmack 借鉴了学术界的 BSP 树(二叉空间分割)算法,在游戏运行前对静态地图进行空间切分。这解决了 Epsilon 问题(有限精度计算导致的浮点误差),并能快速确定物体的绘制顺序(画家算法)。Doom 被称为 2.5D,因为它支持 3D 坐标和不规则高度,但逻辑上仍不支持“房间重叠”(重叠楼层)和上下仰视。

另一项深远影响是其架构的扩展性:Carmack 引入了 WAD(Where's All the Data)文件格式,将游戏引擎代码与图像、关卡等资源彻底分离。这种设计允许玩家在不修改可执行程序的情况下制作 MOD。ID 甚至主动公开源代码,这种“黑客伦理”(Hacker Ethic)直接催生了现代游戏的 MOD 文化和关卡编辑器的繁荣。

要点提炼

  • BSP 树算法:利用二叉树预处理地图空间,将 3D 环境的可见性排序从实时计算转为快速索引,解决了复杂地形下的性能瓶颈。
  • 2.5D 定义:虽然视觉上是 3D,但底层逻辑限制了它无法实现真 3D 的全自由视角和多层重叠空间。
  • 资源分离与 MOD 革命:WAD 文件格式的引入,标志着游戏从“封闭产品”向“可扩展平台”的转变。
  • 黑客伦理的应用:通过公开工具和源码,Carmack 认为分享知识并不会减少自身价值,反而能激发社区创造出超越原作者水平的内容。

原文摘录

"Doom is the first time you cross that line... You have the kind of computational universality... where a little bit more capability is enough to open it up to just worlds and worlds of new capabilities."

"The BSP trees were important for it... it basically takes the walls and it carves other walls by those walls in this clever way that you can then... for sure from any given point get an ordering of everything in the world."


7. Quake 的终极飞跃:真 3D 渲染、汇编级优化与互联网多玩家架构

内容精简

Quake 是 id Software 技术发展的巅峰,也是 Carmack 职业生涯中挑战最大的项目。相比于 Doom 的“2.5D”架构(无法实现真正的坡面、垂直重叠及完全的自由视角),Quake 实现了真正的 6 自由度(6DOF)。技术创新集中在:1. 光照模型优化:引入了领先于时代的表面缓存(Surface Caching)和光照贴图技术。2. QuakeC 编程语言:Carmack 开发了这种专用语言来实现游戏逻辑的可编程性,使 Quake 成为真正意义上可被深度模组化(Modding)的平台。3. 网络架构演进:从 peer-to-peer 转向 Client-Server 架构,针对互联网高延迟环境优化,并确立了 UDP 的核心地位。

Carmack 反思认为,Quake 同时推进了图形引擎、互联网联机和可编程脚本三项巨变,导致研发周期过长、团队压力极大。若能将这些创新拆分到两个项目中逐步推进,原本可以在 486 时代先推出基于 Doom 引擎但具备互联网多玩家功能的游戏,再向奔腾处理器(Pentium)时代的真 3D 引擎过渡,效率会更高。

要点提炼

  • 从 2.5D 到真 3D:克服了 Epsilon 精度问题,实现了完全自由的建模与视角。
  • 底层汇编优化:聘请 Michael Abrash 极致榨取奔腾处理器的性能,通过手工编写循环指令优化光栅化。
  • 系统层级的取舍:Carmack 认为最强的优化来自系统层级的决策,即通过修改高层架构来降低底层复杂性。
  • 互联网多玩家先驱:实现了基于 TCP/IP 和 UDP 的网络底层,奠定了现代电竞联机模型。

原文摘录

"Quake was kind of the first thing where I did have to kind of come face to face with my limitations... we bit off a lot." "I'm a world-class Optimizer... but the most leverage comes from making the decisions that are a little bit higher up where you figure out how to change your large scale problems so that these lower level problems are easier to do." "We could have made more people happier and gotten two games done in 50% more time."


8. 与 John Romero 的合作与分歧:平等合伙人制度下的团队管理教训

内容精简

id Software 的早期成功源于 Carmack 的底层技术突破(如平滑横向卷轴)与 John Romero 的设计才华及艺术感知的完美互补。然而,这种早期的“平等合伙人(Equal Partners)”制度为后来的分歧埋下了伏笔。

Carmack 直言当时自己年少轻狂,缺乏管理经验。当公司由于成功而声名大噪时,Romero 开始享受“摇滚明星式”的生活,而 Carmack 坚持极端的工作狂模式(每周 60 小时以上的专注编程)。这种工作强度和职业重心的不对等在 Quake 开发期间爆发。Carmack 认为,由于缺乏现代硅谷式的股权激励挂钩(Vesting)和非投票权股票机制,公司无法在制度上调节合伙人间的贡献差异,最终演变成他利用影响力将 Romero 踢出公司的结局。Carmack 反思道,如果当时有更合理的架构,或许能让不同类型的才华在更健康的框架下共存。

要点提炼

  • 早期互补:Romero 既是顶级程序员也是顶级设计师,是 Carmack 底层技术的首位应用者。
  • 制度缺陷:由于不懂公司架构,平等的原始股权导致了贡献不等时的心理失衡。
  • 管理教训:单一项目的线性开发模式让团队无法承载多个领袖的愿景,分道扬镳是必然。
  • 人性反思:Carmack 承认当时自己冷酷且不成熟,过于强调“贡献度”而忽视了团队多样性的长期价值。

原文摘录

"The original founding corporate structure of ID software really led to a bunch of problems... We started off with us as equal partners... and that did lead to a bunch of the problems." "I was sitting here going: all right, I'm working harder than anyone... and then I see somebody that's not working as hard... I wasn't the most mature about that." "I wish I could have gotten more out of people handling things in different ways... we pushed people out of the company that could have contributed if there was a different framework for them."


9. 虚拟现实(VR)之路:从 Oculus 创业到 Meta 时代的工程挑战

内容精简

Carmack 在 VR 领域的工程哲学始终围绕“实用主义”:即 VR 必须是移动端的、独立的,而非依赖昂贵的 PC 和线缆。他认为 VR 的核心价值在于“让虚拟世界比现实世界更好”,这能极大地改善那些现实条件匮乏者的生活质量。

在 Meta 期间,他面临的巨大挑战并非资金,而是大公司的低效。Meta 每年投入 100 亿美元,但资源常被内部官僚化、跨职能评审和过度复杂的 SDK 消耗。Carmack 坚持认为,Meta 需要建立“一键即达(One-click)”的用户体验,并极端关注延迟(Latency)。他通过 Beat Saber 的成功总结出:VR 的杀手锏应用必须规避硬件弱点(如利用光剑的切割感避免触觉缺失的不自然感),并强调运动健身是 VR 未被预见的价值洼地。尽管 Meta 资源雄厚,Carmack 仍不断挑战内部架构,呼吁回归初创公司般的工程效率。

要点提炼

  • 移动 VR 的胜利:坚持 Standalone(一体机)路线,认为轻便和低门槛优于高性能。
  • 价值梯度论:VR 不需要瞬间完美,只要在某个垂直领域(如会议、健身)比现实或 Zoom 更好,就能形成价值闭环。
  • 大公司效率悖论:反思 100 亿美元投入下的低产出,提倡精简决策链,甚至提出自己想做“VR 独裁者”来加速推进。
  • 交互哲学:手柄比想象中更重要,UI 必须极致简洁以减少用户进入虚拟世界的阻力。

原文摘录

"I've always favored a lower-end, cheaper, faster approach... lighter and cheaper wind up being a virtuous cycle." "It makes me feel sick to my stomach thinking about that much money [$10B] being spent... I'm not willing to believe that we are within even a factor of two or four of what the efficiency could be." "My pitch was that it should be better inside the headset than outside. It's the world as you want it."


10. 元宇宙的本质:如何跨越硬件权重、延迟与用户界面的瓶颈

内容精简

卡马克认为元宇宙并非一个“大爆炸式”的瞬间,而是类似于万维网(Web)的演进过程,由无数微小的成功案例(Sigmoid曲线)叠加而成。他强调开发元宇宙应遵循“用户价值驱动”而非“功能驱动”的逻辑。以《Beat Saber》为例,其成功在于规避了VR的所有弱点(如移动造成的眩晕、物理碰撞反馈缺失),利用了VR的强项(空间音效、简单的切砍动作)。

在硬件策略上,卡马克主张“轻量化与低成本”优先于“高性能与多功能”,因为高昂的成本和增加的重量会形成负面循环。元宇宙的关键瓶颈在于:1. 易用性:必须实现“一键即达”的顺滑体验,目前VR在进入会议等场景的步骤过于繁琐;2. 临场感与延迟:VR会议的语音延迟必须优于Zoom等传统工具,通过眼球追踪和面部捕捉提升非言语沟通的真实性;3. 普及率:当头显达到亿级出货量时,社交网络效应才会真正爆发。卡马克倾向于从游戏等娱乐终端切入,逐步扩展至通用应用,而非试图一开始就构建一个全能的虚拟空间。

要点提炼

  • 渐进式演进:元宇宙是类似Web的长期演化,而非单一产品的发布。
  • 用户价值优先:成功的VR应用(如《Beat Saber》)应规避硬件瓶颈,放大沉浸优势。
  • 易用性瓶颈:VR普及的最大障碍是操作繁琐,必须优化到“一键进入”。
  • 硬件取舍:支持廉价、轻量、移动端的VR设备,而非昂贵笨重的发烧友设备。
  • 临场感逻辑:即使VR体验仅达到现实的一半,只要它比用户现有的现实生活(如狭窄的公寓)更好,就有巨大价值。

原文摘录

"My preferred bet would be you make something amazing that people love and you make it better and better."

"I've always favored a lower-end, cheaper, faster approach... cheaper and lighter wind up being a virtuous cycle."

"It needs to just be one click to make everything happen... being a servant to the user is your job when you're a developer."


11. 能源与航天:与 Elon Musk 的友谊及对核裂变能源的工程见解

内容精简

卡马克与马斯克有着深厚的友谊,两人在航天早期(Armadillo与SpaceX初期)便基于工程实现进行深度交流。卡马克高度评价马斯克对工程细节的掌控力(如焊接工艺、推进剂选择),认为他并非只是出资者,而是深度参与微观管理的工程师。

在能源领域,卡马克曾因对核能效率的兴趣而考虑将其作为研究方向。他提出了极具挑衅性的观点:核裂变(Fission)比核聚变(Fusion)更具工程可行性。他认为,裂变本质上是“把两块石头放在一起它们就会变热”,逻辑简单且原料廉价;而聚变极其复杂(如托卡马克装置),仅为了产生热量就需耗费天文数字的基建成本。卡马克认为,如果能像 SpaceX 改造航天那样,以工程视角降低裂变电站的建设成本(即便牺牲一部分效率),核能将成为解决全球基底负荷(Baseband)的最优解。关于火星计划,卡马克以1万美元打赌2030年前人类无法登上火星,他认为该目标过度依赖马斯克个人,且面临复杂的发射窗口和官僚挑战。

要点提炼

  • 马斯克的工程师本质:马斯克深度参与材料选择和制造细节,是极少数能有效进行“微观管理”的领导者。
  • 裂变胜过聚变:核裂变的工程逻辑更简单、成本更低,是比聚变更实际的能源解决方案。
  • 经济性博弈:核能的瓶颈不在物理学,而在社会准入和昂贵的基建成本,应追求更便宜而非更高能效的电站。
  • 火星赌局:卡马克持谨慎乐观态度,认为2030年会有基础设施但难有“人类足迹”,因为该计划缺乏类似SpaceX早期的容错空间。

原文摘录

"Nuclear fission is basically you put these two rocks together and they get hot all by themselves. That is just that much simpler... orders of magnitude simpler."

"He [Elon] is the best modern example now of someone that tries to that can effectively micromanage some decisions on things."

"I have a $10,000 bet that by 2030... I don't think that we'll have humans on Mars."


12. 自动驾驶展望:基于数据驱动的窄 AI 向通用能力的演进

内容精简

卡马克对自动驾驶持有比行业主流更乐观的态度。他认为,虽然特斯拉等公司在时间表上多次跳票,但由于有数十家公司竞争,自动驾驶已不再是马斯克的“个人项目”,而是一个全球驱动的工程趋势。他认为自动驾驶的进化路径是从“基于数据的窄AI(插值问题)”向“AGI(通用人工智能)”过渡。

卡马克预测到2030年,全自动驾驶无人出租车将在主流城市运行。他反驳了“人类驾驶不可超越”的观点,认为虽然人类在极端情况下的直觉很强,但人类也是极其不可靠的驾驶员。只要AI在统计学上比人类更安全,它就能通过挽救数万人的生命来获得社会认可。他指出,目前的窄AI通过海量数据解决了大部分长尾问题(Long Tail),但如果最后那1%的问题证明是“AGI完全问题”(即需要常识和复杂推理),那么目前的路径将汇入他正在研究的AGI领域。他相信AI不需要物理身体(Embodiment)也能进化出高级智能,因为虚拟环境的学习效率远高于受制于物理定律的实体机器人。

要点提炼

  • 统计安全性:AI不需要完美,只要统计上比人类安全,就具备社会和商业价值。
  • 长尾挑战:自动驾驶的最后关卡可能需要常识推理,这将推动窄AI向AGI演进。
  • 非具身智能:AI的进化不一定依赖实体硬件,数字世界和模拟器是更高效的训练场。
  • 2030展望:坚持认为L5级自动驾驶在2030年将成为现实,这是一场关于数据的插值博弈。

原文摘录

"It's possible the long tail of self-driving problems winds up being an AGI-complete problem."

"We will have systems that are statistically safer than human drivers and we will be saving thousands of lives every year."

"I think that anybody that is all in on the embodied aspect of it [AI]... they are tying a huge weight to their ankles."


13. AGI 的新征程:为什么 AGI 的核心代码可能仅需几万行

内容精简

John Carmack 将精力从虚拟现实(VR)转向通用人工智能(AGI),认为这是人类历史上最高杠杆率的决策。他提出了一个极具挑战性的观点:AGI 的核心算法逻辑并非像现代操作系统或浏览器那样由数百万行代码构成,而可能仅需几万行代码。这种规模的代码量意味着单一个体也能够完成编写。他认为 AGI 的实现不依赖于复杂的工程堆砌,而是取决于少数(可能少于 6 个)核心见解,且每个见解都简单到可以写在信封背面。Carmack 认为虽然目前 AI 领域有许多卓越的数学家和统计学家,但他作为系统工程专家的视角(从底层向上构建、寻找系统效率瓶颈)可能会带来不同的突破。他预测,到 2030 年,有 55%-60% 的概率会出现 AGI 的“生命迹象”。

要点提炼

  • 代码密度论:AGI 的核心代码量级可能是万行级别,而非百万行,核心在于逻辑而非规模。
  • 关键见解驱动:实现 AGI 可能仅缺数个核心算法突破,这些见解本身可能非常简洁。
  • 跨学科背景优势:Carmack 经历过游戏引擎和航空航天领域的磨炼,偏向于用系统工程和“黑客”思维(从头编写代码以建立直觉)来拆解 AGI 难题。
  • 2030 时间节点:基于当前计算能力与研究的加速趋势,未来十年内极可能出现具有通用学习能力的实体。

原文摘录

"It is likely that the code for artificial general intelligence is going to be tens of thousands of lines of code, not millions of lines of code."

"My bet is that I think there's less than six key insights that need to be made, each one of them can probably be written on the back of an envelope."

"I had a point years later when I realized okay my financial resources at this point are basically what Elon's was when he went all in on SpaceX and Tesla."


14. AGI 的实现路径:实时学习、非具身智能与“生命迹象”的判定

内容精简

Carmack 坚决反对“具身智能(Embodiment)是实现 AGI 的必要条件”这一观点。他认为将智能绑定在物理机器人身上会因为机械故障、重力限制和硬件成本而极大地拖慢研发速度。相反,模拟环境(如 VR 或数字化环境)足以提供智能进化所需的复杂交互。他认为 AGI 的真正门槛是“持续的终生学习能力”,而非目前的预训练后推断。他提出的判定标准是出现“生命迹象”,例如一个表现得像有认知障碍或特殊需求的幼儿,虽然智力水平不高,但能够像生物一样在实时互动中被教育和训练。他追求的是能以每秒 30 帧速度运行、可进行实时交互的数字化“生命”,而非仅能处理特定任务的狭义模型。

要点提炼

  • 非具身化优先:机器人硬件是研发的“脚镣”,模拟环境才是实现 AGI 的高效实验室。
  • 生命迹象判定:AGI 的初期形态可能是一个“特殊需求的幼儿”,关键在于它是否展示出类人的学习轨迹和反馈。
  • 终生学习 vs. 静态推断:AGI 必须具备任务无关的、持续不断的学习能力,而非目前的死记硬背式训练。
  • 实时性约束:智能需要在人类反应的时间尺度(如 Zoom 会议)内运行,才能产生真正的社会价值和交互进化。

原文摘录

"I think anyone who is all in on the embodied aspect of it, they are tying a huge weight to their ankles."

"If we get to the point where you've got a learning-disabled toddler... that can be trained and learn in some appreciably human-like way, at that point you can deploy an army of engineers... it's going to be a done deal."

"I want to be able to have the AGIs either socially interact with each other or critically with actual people... something that is at least potentially real-time."


15. 人生建议:武器化好奇心、深入底层知识并拥抱高强度的磨砺

内容精简

Carmack 强调了“武器化好奇心(Weaponized Curiosity)”的概念,即有意识地利用好奇心去深入钻研任何看似乏味但具有挑战性的系统(如数据库或操作系统)。他建议年轻人不要只停留在工具的使用表面,而要具备“垂直向下打入底层”的能力,理解从硬件寄存器、编译器到应用层的整个技术栈。他认为高强度的工作(每周 60 小时以上)是不可或缺的,虽然边际效用递减,但总产出和个人能力的“淬炼”效果远超常规标准。他鼓励年轻人要建立“我可以学会任何事”的信心,这种深度的技能积累能让人在机会出现时,通过找到系统中被他人忽视的效率漏洞(即“光速解”),将未来的技术提前数年带给世界。

要点提炼

  • 全栈深度理解:不要只做应用层开发,要向下钻研直到理解硬件和系统的每一个环节,以此寻找优化空间。
  • 高强度磨砺:支持“艰苦奋斗”,认为这种高强度的专注不仅是为了产出,更是为了将自己磨练成大师。
  • 系统性杠杆:通过对底层的洞察,用更聪明的算法(如 Doom 的侧滚技术或 Quake 的渲染)去绕过硬件限制。
  • 学习的信心:尽管无法了解所有知识,但要坚信自己能学会任何特定领域的知识,因为这些知识都是人类创造的。

原文摘录

"You can't know everything, but you should convince yourself that you can know anything."

"Deploy your curiosity to find ways to make things useful and valuable to you, even if they don't immediately appear that way."

"Working longer and harder is the path to getting it accomplished... you're tempering yourself in some ways."


生命意义的思考:在局部梯度下降中寻求进步的实用主义哲学

内容精简

卡马克认为,过度追问“生命的终极意义”往往会降低人的行动效率。他持有一种彻底的实用主义视角:人类是生物进化的偶然产物,其行为动机受基因编码和后天环境驱动。他将成功归结为“局部梯度下降”的逻辑:不依赖于虚无缥缈的宏大愿景,而是专注于处理当下的具体问题,利用局部信息不断做出微小改进,这些微小迭代的累积最终会导向极其复杂且卓越的成果。他将此比作进化论或代码演进(如JavaScript):虽然单体逻辑可能混乱低效,但通过大规模的适应与生存筛选,系统会自动涌现出智能。卡马克强调,专注的勤勉(即便边际效用递减,总产出仍会增加)是进步的唯一核心,而在面对路径选择时,应通过实际行动测试(AB测试)而非逻辑空谈来决定方向。

要点提炼

  • 反宏大叙事:主张不应纠结于“为何在此”的形而上学问题,而应关注“此时此地”能解决的工程挑战。
  • 局部梯度下降:伟大的系统(如生物智能或顶级软件)并非来自完美的顶层设计,而是由无数次基于局部信息的优化迭代堆砌而成。
  • 进化的冗余观:接受系统(如DNA或JavaScript)的低效与混乱,只要它能在复杂的反馈循环中持续演化并产生用户价值,它就是成功的。
  • 高强度工作的哲学:即便在疲惫状态下边际生产率会下降,但投入更多时间依然是达成卓越、成为顶尖匠人的必经之路。
  • 行动消除不确定性:在技术决策摇摆不定时,采用“两种方法都做一遍并对比结果”的暴力破解法,比无休止的理论争鸣更有价值。

原文摘录

"It's been my experience that people that focus on that don't focus on the here and now right in front of them tend to be less effective... little tiny steps local information winds up leading to all the best answers."

"The magic of gradient descent: people just don't believe that just looking locally gets you to all of these spectacular things."

"Focused hard work is the real key to success. Keep your eyes on the goal and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better."


深度问答

Q: John Carmack 认为开发者的核心使命是创造“用户价值”,这一理念如何影响他的技术决策和产品开发?

John Carmack 的技术哲学建立在极其务实的“用户价值”基础之上。他认为,编程不应是单纯的艺术创作或自我感动的“代码高尔夫(Code Golf)”,而是一种为用户解决问题或提供娱乐的手段。这一理念深刻影响了他的决策逻辑:

  • 性能阈值优先: 他极度关注技术对用户感知的直接影响。例如,他指出 1 秒与 750 毫秒的延迟差异对普通用户不痛不痒,但一旦进入 50 毫秒以内的门槛,用户会感受到“魔法般”的瞬时响应。因此,他的技术攻关总是围绕着突破这些关键的体验阈值展开,而非无意义的过度优化。
  • 实用性胜过抽象: 在语言选择上,他偏好 C++ 甚至 C,并对过度抽象的“元编程”保持警惕。他认为,虽然像 Python 或 Lisp 在开发效率上具有诱惑力,但在处理 VR 或高性能游戏等资源受限的场景时,开发者必须理解从硬件到软件的“全栈”逻辑,以确保每一份算力都转化为了用户的顺滑体验。
  • 基于真实数据的决策: 他反对凭空想象用户需求(如虚构的 Alice 和 Bob 模型)。在 Meta 任职期间,他主张直接观察真实用户的行为,通过数据反馈来调整产品方向。他认为,如果一个决策不能产生超过其开发成本的净价值,那么该决策就是失败的。

Q: 从《指挥官基恩》到《雷神之锤》,Carmack 引入了哪些关键技术突破(如射线投射、BSP 树),这些创新如何定义了早期 3D 游戏的底层逻辑?

Carmack 的每一项突破本质上都是在硬件极限下进行的“权衡艺术”,通过巧妙的数学算法实现了当时被认为不可能的视觉体验:

  • 平滑滚动技术(Commander Keen): 他引入了“自适应图块刷新”(Adaptive Tile Refresh),利用 PC 显卡内存的卷滚特性,仅重绘屏幕变化的部分。这打破了 PC 无法实现任天堂式流畅横版游戏的魔咒,定义了 PC 动作游戏的流畅度标准。
  • 射线投射(Raycasting - Wolfenstein 3D): 针对早期的计算限制,他放弃了复杂的全 3D 渲染,转而采用射线投射——为屏幕上的每个像素发射一条射线直到撞击墙壁。这种方法虽然局限于 90 度墙角,但极大地提升了渲染速度,创造了那种令玩家心跳加速的“第一人称”沉浸感,定义了 FPS 游戏的雏形。
  • BSP 树(Binary Space Partitioning - Doom): 为了支持非 90 度的任意角度墙壁和多变的高度,Carmack 引入了二叉空间分割树。这种预处理技术能确定场景中墙壁的渲染顺序,有效解决了遮挡问题,使《雷神之锤》之前的 2.5D 世界变得极为复杂且高效。
  • 全 3D 与客户端-服务器架构(Quake): 《雷神之锤》实现了真正的六自由度 3D 渲染,并引入了“光照贴图”(Lightmaps)预处理阴影。更重要的是,他开发了专为互联网设计的客户端-服务器网络模型,解决了丢包和延迟问题,奠定了现代在线多人游戏的架构基础。

Q: Carmack 如何理解“黑客伦理”(Hacker Ethic)?他为什么坚持开源游戏源代码,以及这对他眼中的技术进步有何重要意义?

Carmack 的“黑客伦理”深受 Steven Levy 的《黑客》一书影响,其核心在于信息共享的非零和博弈

  • 知识的公共属性: 他认为分享技术并不会减少分享者拥有的价值,反而能通过集思广益加速整个行业的进步。他对自己被冠以“发明者”头衔持谦逊态度,认为自己只是站在巨人的肩膀上,因此也有义务让后人站在自己的肩膀上。
  • 源代码的教学意义: 他坚持在产品商业寿命结束后开源《德军总部 3D》、《毁灭战士》和《雷神之锤》的代码。对他而言,这些代码不仅是过时的产品,更是珍贵的“教科书”。他看到一整代程序员通过研究这些代码学会了编程,这种技术的“模因式进化(Mimetic Evolution)”远比保护商业机密更具长远意义。
  • 开放标准对抗封闭: 他曾极力支持 OpenGL 对抗微软的 DirectX,理由是 OpenGL 是一个跨平台的开放标准。他坚信技术不应被单一公司(如微软)控制,只有建立在透明、可移植基础上的技术生态(如 WebGL、Android 上的图形加速),才能服务于全球数十亿用户,而非仅仅服务于某个平台的利润。

Q: 在编程哲学上,Carmack 如何评价不同语言(如 C++、Python、Go)的优劣?他为什么强调理解从硬件到软件的“全栈深度”?

Carmack 的编程哲学核心是实用主义与性能导向。对于语言,他持有非常客观的工具观:

  • C++: 是他进行“严肃编程”的首选。他倾向于“C 风格的 C++”,警惕现代 C++ 中过度抽象和模板元编程导致的“车祸”。他认为 C++ 虽不安全且维护成本高,但在需要压榨硬件极限时无可替代。
  • Python: 他视其为极佳的“胶水语言”和原型工具。虽然在 AI/ML 领域极为方便,但他敏锐地指出 Python 原生循环比 GPU 张量操作慢百万倍。他认为开发者必须意识到这种低效,并学会通过调用底层 C++ 库来规避。
  • Go: 他高度评价 Go 的简单性。他认为 Go 继承了 C 的优点,即任何人都能快速上手而无需重塑大脑。这种“非尖端但稳健”的特性在大型团队协作中比高度抽象的语言更具价值。

关于“全栈深度”: Carmack 强调必须理解从硬件寄存器、缓存失效到编译器行为,再到高级架构的全过程。他认为只有掌握全栈深度,才能找到“光速方案”(Speed of Light solutions)。当大多数开发者仅在自己的层级(Silo)内优化时,具备全栈视野的人能通过跨层级的权衡(例如牺牲一点内存换取巨大的计算提速),将未来的技术提前五年实现。

Q: 针对通用人工智能(AGI),Carmack 为什么认为其代码规模可能并不庞大,且不需要物理实体(机器人)即可实现?

Carmack 对 AGI 的看法基于算法简洁性模拟优越性

  • 代码规模: 他大胆预测 AGI 的核心代码可能只有数万行,而非数百万行。他的理由是:人类大脑的遗传编码信息量极小(大脑部分的编码可能仅 50MB 左右),且并非每一行都经过信息论意义上的完美优化。他认为 AGI 的实现可能只需要六个左右的关键逻辑突破,每个突破的算法核心甚至能写在信封背面。目前的复杂性更多源于我们尚未找到那个正确且简洁的逻辑。
  • 非物理实体: 他强烈反对 AGI 必须依赖机器人(Embodiment)才能实现的观点。他认为物理世界存在巨大的“阻力”:机械故障、重力限制、无法超越实时的训练速度。相反,在虚拟环境(如 VR 或模拟器)中,训练可以并行化、加速化,并且可以随时回滚和进行 A/B 测试。他认为智能是“基质无关”的(Substrate Independent),只要能模拟出足够的交互复杂性,数字环境比物理世界更适合高效催生 AGI。

Q: Carmack 坚持高强度工作并推崇“磨砺”(The Grind),他如何反驳“超过 40 小时工作会导致效率下降”的常见观点?

Carmack 以一种边际产出与总量产出的逻辑来反驳该观点:

  • 总量优先: 他承认在工作 8 小时后,第 9 或第 10 小时的“边际效率”可能会下降,但他强调“总产出”依然在增加。他认为 40 小时更像是一份“兼职”,对于想要实现改变世界的目标(如拦截撞向地球的陨石或研发疫苗)的人来说,所谓的“效率下降”并不能作为停止工作的借口,因为在危机面前,多出的每一小时产出都是生存的关键。
  • 自我锤炼: 他推崇“磨砺”不仅是为了产出代码,更是一种“回火淬炼”(Tempering)。深度沉浸和高强度专注能让大脑进入一种特殊的 Craftsman(工匠)状态,这种状态下建立的直觉和知识深度是准时下班无法获得的。
  • 反对教条: 他认为现代社会对“过劳”的反对已经变成了一种教条。他主张:对于那些对事业有极致热情的人,不应被强加“必须休息”的限制。他以自己数十年每周 60 小时工作且从未感到“职业倦怠”(Burnout)为例,证明只要能自主切换任务并保持对解决问题的热爱,高强度工作是可持续且极具成就感的。

Q: 在构建元宇宙(Metaverse)的过程中,Carmack 认为目前最大的瓶颈是什么?为什么他更强调降低摩擦成本而非增加复杂功能?

Carmack 认为元宇宙目前最大的瓶颈并非单纯的硬件性能不足,而是易用性、可用性以及极高的进入门槛(摩擦成本)。他指出,VR 领域目前还缺乏像 Zoom 那样“一键即入”且高质量、稳定的用户体验。在他看来,很多项目过于追求增加新功能,却忽视了从用户动念到真正进入虚拟世界之间的延迟和障碍。

他强调降低摩擦成本的原因在于:

  1. 普及度胜过高性能: 为了实现元宇宙的规模效应,必须让每个人都拥有设备。因此,他倾向于更便宜、更轻便、更简单的移动端 VR,而非昂贵且笨重的高端 PC VR。
  2. 价值梯度: 即使虚拟体验只有现实生活的一半质量,只要它能解决实际问题且足够便捷,它就具有巨大的用户价值。如果为了增加复杂功能(如高精度追踪、更重的传感器)而增加设备的重量、价格或设置难度,反而会扼杀其被大规模采用的可能性。
  3. 用户核心需求: 相比于在虚拟世界里堆砌各种功能,用户更需要的是实时的存在感和低延迟的互动。他主张通过不断磨平体验中的“毛刺”,让 VR 像点击网页链接一样简单,这才是推动技术走向拐点的关键。

Q: Carmack 提到的“梯度下降”式的人生哲学是什么?这种局部优化的思维如何帮助他处理从游戏开发到 AGI 领域的各种复杂问题?

Carmack 的“梯度下降”式哲学是指不依赖于宏大、复杂的长远愿景,而是专注于解决眼下最直接、最具体的技术问题,通过局部的不断优化迭代,最终达成卓越的整体结果。

这种思维模式在多个领域展现了其有效性:

  1. 反宏大叙事: Carmack 对“生命意义”或“哲学思辨”兴趣寥寥,他认为过于关注不可观测的宏大目标(如意识的本质、AGI 的安全协议)会降低效率。他更倾向于寻找当前系统的“性能红利”或“算法瓶颈”。
  2. 寻找价值梯度: 在开发 AGI 时,他拒绝先解决“意识”或“主观体验”等抽象问题,而是将其拆解为类似“让 AI 表现得像一个有学习障碍的小孩”这样可观测、可衡量的局部目标。他相信只要不断沿着“产生更有价值的反馈”这一梯度前进,AGI 就会自然涌现。
  3. 工程驱动: 他认为复杂系统的进化往往是由无数个微小的、局部的改进叠加而成的。就像神经网络通过梯度下降找到全局最优解一样,他通过解决一个个具体的 Bug 和性能限制,将未来的可能性(如实时 3D 渲染、移动 VR 交互)提前带入现实。

Q: 历史上的资源限制(如极小的内存和处理器速度)是如何催生出 Carmack 那些天才般的技术黑客行为(Hacks)的?

Carmack 深信“资源限制是创新的催化剂”。在早期 PC 性能极其低下的时代,按照常规方法无法实现流畅的动作游戏,这逼迫他不得不深入硬件底层,寻找非传统的解决方案(即 Hacks)。

具体的例子包括:

  1. 自适应图块刷新(Adaptive Tile Refresh): 早期 PC 无法全屏重绘每一帧,Carmack 利用硬件显存的滚动特性,仅重绘屏幕边缘新出现的图块或发生变化的 10% 区域,从而在低速 CPU 上实现了流畅的横向卷轴效果。
  2. 编译缩放器(Compiled Scalers): 在《德军总部 3D》中,通用的图像缩放算法太慢。Carmack 编写了一个程序,预先生成了数百个针对特定比例优化的微型汇编程序。这种将“数据转为代码”的手法,让图像在充满整个屏幕时反而跑得最快,因为此时它是通过硬编码的指令直接写入显存的。
  3. 烟雾与镜像(Smoke and Mirrors): 他善于通过牺牲一些非核心的视觉准确性来换取数倍的性能提升。例如,他在 Doom 中使用 BSP 树来处理遮挡排序,虽然这在数学上限制了地图的垂直维度,却创造了当时令人震撼的伪 3D 沉浸感。

Carmack 总结道,虽然现在的计算机快得离谱,许多程序员不再需要成为汇编奇才,但如果想把未来提前 5 到 10 年拉到现实中(如在手机芯片上实现极致的 VR),依然需要那种在限制条件下挑战极限的黑客精神。

Q: Carmack 为何在 AGI 和核能之间最终选择了前者?他对于如何实现 AGI 的那“六个关键见解”持有什么样的直觉?

卡马克在决定职业生涯的下一个大目标时,曾在“高成本效益的核裂变能”与“通用人工智能(AGI)”之间进行过深度权衡。他最终选择 AGI 的原因主要基于以下两点深刻洞见:

  1. 杠杆率与个人影响力的差异:他认为 AGI 是人类历史上潜能最大的杠杆点。作为一名顶级程序员,他直觉 AGI 的核心逻辑可能并不像大型操作系统那样需要数百万行代码,而是可能由“数万行代码”构成。这意味着一个天才级的个体或小团队,在合适的切入点上,有可能产生改变世界文明进程的影响。相比之下,核能虽然在物理层面简单(如他所言:“把两块石头放一起它们就会发热”),但在现实中却深陷于庞大的官僚机构、监管成本和政治博弈中,这大大降低了纯粹工程创新的效率,与他追求极致效率和系统工程的风格不符。
  2. 问题的可攻克性:卡马克将 AGI 视为一个尚未被解决的纯粹工程挑战。他相信实现 AGI 并不需要像传统 AI 研究那样走过于复杂的学术路线,而是可以通过系统级的优化和关键算法的突破来实现。

关于那“六个关键见解”,卡马克的直觉呈现出一种极简主义与历史唯物主义的结合:

  • 极度的简洁性:他直觉这六个见解中的每一个都非常简单,简单到可以“写在信封的背面”。他认为 AGI 的突破不会是某种极其复杂的数学迷宫,而是某种目前尚未被观察到或正确组合的算法范式。
  • “埋藏的珍宝”理论:他怀疑这些关键洞见的雏形可能早已埋藏在 20 世纪 90 年代甚至更早的学术文献中。当时的人们可能已经提出了这些想法,但受限于当时极其匮乏的算力(可能只有几十个神经元),这些想法在当时无法产生效果,因而被历史尘封。
  • 从“前馈”向“生物性”转变:他认为目前的 AI(如 Transformer 架构)多是静态的前馈系统,而 AGI 需要解决终身学习(Lifelong Learning)长期记忆的问题。他的直觉指向一种具有递归性、能够持续演进的系统,而非仅仅是训练完即固化的模型。
  • 关注“生命迹象”而非完美智力:卡马克并不追求立即制造出一个“上帝般的 AI”,他的目标是先在代码中看到 AGI 的“生命迹象”——例如一个表现得像有学习障碍的幼儿、能够像生物一样与环境互动并接受教育的实体。他认为一旦达到这个“幼儿水平”的通用性,剩下的就是算力扩展和训练课程的问题了。