第181章 說說卡馬克
約翰·卡馬克,是就算是水字數也要講一下的人物。
當年卡馬克的江湖地位,就同今天的埃隆·馬斯克一樣風騷,屬於那個時代的科技英雄,無數人心中的“神”。
如果你是一位70后、80后的遊戲玩家,應該很大概率聽過卡馬克的大名。
如果你是90后、00后的遊戲玩家,可能對這個名字一點感覺也沒有,但只要你玩過任何一款第一人稱射擊遊戲,就相當於是他的用戶。
因為幾乎所有的第一人稱射擊遊戲的底層代碼中,都運行着卡馬克當年寫下的開源引擎代碼。
這也就是我們為什麼稱他為“FPS遊戲之父”的原因。。
卡馬克的經歷可以說貫穿了計算機圖形學的發展。
計算機圖形學這個概念聽着挺抽象的。
簡單來說,就是通過各種數學計算在電子屏幕上隨心所欲地顯示我們需要的圖像,這個概念具有很強的“交互”屬性,所以自然而然和遊戲密不可分。
作為與數學計算相生相伴的娛樂方式,遊戲畫面從一開始顏色單一的幾何圖形,過渡到了生動形象的像素角色,平台也從高冷的實驗室,過渡到街機,主機,個人PC,直至現在的手機。
小時候的卡馬克,在父母眼中就是個愛玩遊戲的孩子。
與其說對“玩遊戲”感興趣,小卡馬克更感興趣的是為什麼像素小人會在屏幕上動來動去。
於是他自學了Basic編程,通過製作遊戲來逐漸學習計算機圖形學相關的知識。
卡馬克在少年時代就對程序展現了極高的天賦和熱愛,
他讀初中的時候,為了從學校弄台蘋果Ⅱ型電腦,用鋁熱劑和凡士林調製了一種黏性物質把窗戶給融給了,結果被抓去少管所服刑一年
這一行為,讓他喜提“曾經鋃鐺入獄的IT名人”稱號,排在第一個的微軟的比爾·蓋茨,駕車超速。
80年代末期,遊戲市場完全是主機遊戲的天下,幾乎沒有面向遊戲的圖形加速硬件可以兼容PC。PC就是商業辦公的設備,和娛樂完全無關。
為了解決這個問題,卡馬克利用20世紀70年代出現的,用於滾動衛星照片等大型圖像的原理,編寫出名為EGA的增強型圖形適配器。這就是3D圖形加速卡的雛形的PC顯示技術。
這種技術可以提供存儲一個相對高解像度的屏幕圖像,但也可以變通成,同時存儲多個低解像度的圖像。
這裏說的高解像度,在當時也就是300X200像素。和現在比,這比渣還渣。
接下來,他又設計出屏幕刷新技術以提高遊戲圖形顯示的速度。
卡馬克不按重新渲染整幅畫面的常規邏輯出牌,而是將每幀的中心位置保留到下一幀。簡單來說,玩家向任意方向移動一格的時候只需要重渲中心位置外面的部分就行了,裏面的部分接着用。
如此一來顯存里存的東西變少,運算壓力也更小。
在此基礎上,卡馬克搗鼓了幾個晚上,居然在PC上復刻了帶有捲軸效果的“盜版”《超級馬力歐》。用現在的話說,這是做了遊戲移植。
隨後,這項PC上捲軸技術就被卡馬克開源,他放棄了專利。這貨在後面開源了很多技術,他是開源倡導者。
卡馬克對技術的追求遠不止於此,遊戲顯然是技術最好的承載,而他的目標就是構建一個栩栩如生的虛擬世界。
這就進入到卡馬克最擅長的領域,就是在有限的資源下,通過軟件算法來實現硬件做不到的事情。
他想要做的是讓人血脈僨張、快節奏的射擊遊戲,最重要的就是高幀率了,如果按照常規的技術路線在PC上實現,那遊戲得卡成PPT。
他當時萌生了一個想法,通過“光線投射算法”(RayCasting)的2D成像技術,來模擬出3D空間縱深的視覺效果。
這個算法有點類似於蝙蝠的回聲定位。因為角色的視野可能只有90°,還有270°壓根是看不到的,或者房間內如果有前面的物體遮擋了後面的物體,後面的壓根就沒必要做計算。
那如果屏幕橫向上有320個像素,就從角色的視野中發射出320道射線,只有被射線擊中的物體才會被計算和渲染。
屬於“先做判斷、再做計算”的路子。
這時候,他已經離開原來兼職的公司,以創始人的身份,創建了idSoftware公司。
“光線投射算法”實際上並非由卡馬克首創,但將這種前沿技術應用得如此接地氣的,卡馬克絕對是第一批貢獻者。
有了新的“偽3D”圖形引擎打底子,接下來需要的就是一款驚世駭俗的商業遊戲。本質上是2D遊戲的《德軍總部3D》,便是在這樣的思路下誕生。
這款遊戲在當時顛覆了人們的認知,要知道,那時候的主流還是2D遊戲,突然玩到了一款“3D”遊戲,不亞於從480P的馬賽克渣畫質一步跳到4K超高清的震撼。憑藉這款遊戲,idSoftware公司工作室也大賺了一筆。
但他們的下一款遊戲才更是重量級,因為它的名字叫《DOOM》。
為了製作更真實的“偽3D”遊戲,卡馬克再次改進了他的引擎,不僅補全了原本一筆帶過的天花板和地面,還能讓角色朝上或者朝下有視角的變化,甚至地形上也有了高低變化。
為此,卡馬克重寫了底層架構,採用了一種叫做“二叉空間分割(BSP)”的核心算法。
二叉空間分割,太複雜了,感興趣的同學就自己去了解一下吧。
這時的引擎本質上還是2D,可以說是將當時PC的性能壓榨到了極限。
《DOOM》這個遊戲火到什麼程度呢?由於遊戲太好玩,好多人都在公司電腦上偷偷下載了遊戲偷摸玩,以至於許多公司明令禁止在電腦上下載《DOOM》
除此之外,《DOOM》最牛逼的地方在於它支持玩家間的聯網對戰,也就是著名的“死亡競賽”模式,讓玩家們靠技術互相廝殺,瞬間點燃了整個遊戲的討論熱情,相關的比賽也層出不窮,也就是說DOOM實際上還是電子競技的鼻祖。
卡馬克是電競祖師爺的說法,就是由此而來。
隨着《DOOM》的大賣,id的下一款真·3D射擊遊戲《Quake雷神之錘》也開始進入開發階段。
卡馬克去邀請了自己的童年偶像邁爾克·亞伯拉什來一起開發。這位可以說是計算機圖形學泰山北斗級的人物,當時正在微軟負責開發WINDOWSNT。
據說這事把蓋茨氣得直接吹了一瓶二鍋頭。
卡馬克在開發中有很多神來之筆,比如“倒數平方根”的速算法。
對於計算機來說,除法和開根號是老大難問題,但卡馬克引入了一個神奇的數字0x5f3759df,把對於CPU異常苦手的除法和開根號運算變成了簡單的乘法運算,以很小的精度為代價,運算速度直接快了4倍。
甚至卡馬克使用這串數字時自己都是懵逼的,索性直接在後面註釋了一句“whatthefuccccccck”。
除了開發遊戲,卡馬克還有一個愛好,就是“造火箭”,並且在NASA舉辦的競賽中兩度獲獎。
說起造火箭,必須出現鋼鐵俠馬斯克,但就在馬斯克向他拋出橄欖枝的時候,卡馬克卻說:“你玩蛋去吧,我已經找到了新的樂趣。”
2010年之後,隨着VR技術逐漸冒頭,“摸魚”多年的卡馬克找到了新的目標,因為VR和他的理想不謀而合,都是創造一個遠比3D遊戲更加沉浸、更加真實的虛擬世界。
卡馬克加入OculusRift團隊,並且擔任首席技術官一職,就是給FB的扎克伯格打工。不過他幹了一年多就跑了。
他現在重新創業,成立了一家研究通用人工智能的公司,並獲得了2000萬美元的融資。
卡馬克稱自己並不缺錢,完全可以自己開一張2000萬美元的支票,但為了讓自己在創業這件事上下定決心並更加自律,他才選擇花投資人的錢。
來,大家都學習一下這種處處為投資人考慮的精神,非常值得學習。
另外,補充一點,據說卡馬克是個妻管嚴。因為造火箭那事,是她老婆不願意玩了。
“我是看到機會才做此決定的,花了大概250萬美元卻未能如願,我當然很失望,雖然我還能張羅200萬美元再試一次,但明智的老婆大人阻止了我。”
證據就是這句話,我終於找到了和卡馬克的共同點。
最後用卡馬克的話結尾。
“在資訊時代,客觀障礙已不復存在,所謂障礙都是主觀上的。如果你想動手開發什麼全新的技術,你不需要幾百萬美元的資金,你只需要在冰箱裏放滿比薩和可樂,再有一台便宜的計算機,和為之獻身的決心。我們在地板上睡過,我們從河水中蹚過。”
卡馬克的話不行,要用姜安的話結尾。
“不是天才的人別聽卡馬克瞎扯,他這麼說因為他是天才。”