EP 3092022-08-045:14:50
Carmack 談 Doom、Quake 與 AGI 豪賭
John Carmack
John Carmack 從第一支 BASIC 程式聊到 Doom、Quake 的技術突圍,最後說明他為什麼簽下投資合約、全職押注通用人工智慧。
John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast #309在 YouTube 看 ↗
重點6 條
- 使用者價值才是唯一標準:Carmack 說技術選型與程式碼架構都不該是驕傲的來源,唯一重要的是有沒有把價值留給使用者;效能有時候乾脆不是重點。
- 一週工作 60 小時撐了幾十年:他反駁「超過 40 小時生產力就會下降」的說法,用「小行星要撞地球,SpaceX 工程師該不該準時下班」當反例;那些年他天天叫同一份披薩,靠一罐健怡可樂當開工儀式。
- Wolfenstein、Doom、Quake 一路解鎖的技術:從手刻組合語言的射線投射引擎、二元空間分割樹排出繪製順序,到 Quake 首度支援連線對戰,他也坦言 Quake 的野心讓公司內部繃得太緊,重來會拆成兩款遊戲做。
- 元宇宙該先讓人上癮,再擴大能力:他認為打造元宇宙該像 Doom、Quake、Minecraft 一樣先做出讓人愛不釋手的東西;VR 意外靠 Beat Saber 而非射擊遊戲打開市場,正是因為它避開了手把操作的弱點。
- 全職押注 AGI:他認為打造 AGI 的核心程式碼可能只有數萬行,關鍵突破未必是全新發現;判準是能不能訓練出像有學習障礙的孩童一樣可以互動學習的東西,這週他剛簽了投資條件書,正式全職投入。
- 跟馬斯克打賭 2030 年沒人上火星:他認為這件事高度綁在馬斯克一個人身上;也直言大公司資源浪費,Meta 一年在 Reality Labs 燒掉上百億美元讓他不太消化得了。
時間軸26 段
Carmack 回憶在 TRS-80 打出「10 print John Carmack」的第一支程式;也解釋 BASIC 年代沒有迴圈指令,GOTO 其實是不得已的技巧,不是壞習慣。
他自認不是天生的 Python 腦,偏好偏 C 風味的 C++;也談 Lisp 太靈活反而難交接給別人維護、C 語言簡單到誰都能跳進去改,JavaScript 則是靠底層工程撐起全世界。
他認為程式碼架構或技術選型不該是驕傲的來源,唯一重要的是有沒有把價值留給使用者;效能有時候乾脆不是重點。
年輕沒有家累時作息會整天往後拖;他用「小行星要撞地球,SpaceX 工程師該不該準時下班」反駁「超過 40 小時生產力就會下降」的說法,那些年也天天叫同一份披薩、靠開一罐健怡可樂當開工儀式。
他偏好有除錯器的 IDE,不走 Emacs、Vim 那條路;強調寫完程式第一件事是下中斷點單步執行,靠腦內模擬讀程式碼並不可靠。
早期 id Software 用 Unix 的 `.plan` 檔記錄每天做了什麼,粉絲靠 finger 指令追更新,比部落格早了好幾年。
他在 Softdisk 靠外包小遊戲糊口,搬到 Shreveport 後認識 John Romero,兩人技術對上眼才有後來的 id Software。
Scott Miller 靠共享軟體月入上萬美元,起初被他們當成騙子;先免費放出第一部、再靠後兩部收費的模式,讓 Commander Keen 一上市就爆紅。
Tom Hall 主導遊戲設計,Carmack 則想出讓記憶體位址溢位後自動回捲的新解法,取代原本的「adaptive tile refresh」,捲軸變得更快更自由。
他談 Stephen Levy《Hackers》對他的啟發,以及後來把 id 遊戲原始碼公開釋出的理念:分享不是零和賽局,搶功勞才是壞了規矩的事。
描述用組合語言重寫牆面繪製、解決 Catacombs 3D 沒做好的貼圖失真問題,也談「compiled scalers」這種把資料直接寫進程式碼裡的極限優化。
脫離 Wolfenstein 的方塊限制後,Doom 用不規則牆角與二元空間分割樹(BSP)排出繪製順序,也是他第一次真正被浮點數誤差纏住。
他坦言如果重來會把 Quake 拆成兩款遊戲:先做 Doom 引擎加連線對戰,晚一點再做完整六自由度的新引擎,這樣能讓公司內部少繃很多。
談到當年把 Romero 擠出公司的決策、缺乏股權機制留下的後遺症;現在兩人碰面仍會聊近況,Romero 甚至問過要不要一起做 AI 遊戲。
他認為打造元宇宙該像 Doom、Quake、Minecraft 一樣先做出讓人上癮的東西再擴張能力,而不是先蓋好一套通用能力等人來用。
手把操作經常讓人一伸手就穿過虛擬物體、破壞沉浸感,Beat Saber 完全避開這個弱點;VR 的強項其實在音效、健身與幾分鐘一輪的短循環設計。
他直言 Meta 一年在 Reality Labs 燒掉上百億美元讓他不太消化得了,也不相信大公司效率只比小公司差兩三倍;真正的差別在敢跨部門硬幹的工程師太少。
他形容兩人技術背景相近、常聊材料選擇與銲接細節;賭一萬美元反對 2030 年前人類登陸火星,因為這件事高度綁在馬斯克一個人身上,另一注則押自駕計程車會如期普及。
他形容核分裂就是「兩塊石頭放在一起就會發熱」,成本問題主要來自政治觀感而非技術本身;他自己也在弄一套離網太陽能系統。
他認為打造 AGI 的核心程式碼可能只有數萬行,不是幾百萬行;關鍵突破未必是全新發現,可能早就散落在被忽略的舊論文裡。
他提出的判準是能不能訓練出像有學習障礙的孩童一樣、可以互動學習的東西;也解釋為什麼他不相信 AI 會「快速起飛」接管世界。
他認為具身不是通往 AGI 的必要條件,模擬環境已經足夠取代真實世界;反而覺得執著於人形機器人的人是在擔心自己搶不到頭香。
過去兩年他自稱「維多利亞紳士科學家」邊玩邊學,這週剛簽了投資條件書;也回憶當年 Sam Altman 找他加入 OpenAI、Ilya Sutskever 給他一整疊論文惡補的往事。
三十多歲重拾柔道,享受被壓制過後那種謙卑感;也聊到頂尖選手能讓對手覺得「無論怎麼掙扎都逃不掉」的境界。
他強調自己的路不見得適合每個人;真正該做的是把好奇心用在深挖一個領域,等世界改變時抓住能派上用場的機會。
他不太思考死亡或身後名,做決定時比較在意問題的規模夠不夠大;最後把人生意義類比成不追求宏大願景、靠局部資訊一步步往前走的梯度下降。