藏在幕后的人
John
Carmack是一個(gè)幾乎不需要介紹的人——Id
Software的創(chuàng)始人。該公司開(kāi)創(chuàng)了第一人稱射擊類游戲,并且獨(dú)立地改變了PC動(dòng)作游戲的定義。從Commander
Keen到Doom,再到Quake,Carmack/id的游戲吸引了數(shù)百萬(wàn)玩家通宵達(dá)旦地在計(jì)算機(jī)屏幕前擊退他們的對(duì)手。
去
年12月底,F(xiàn)iringsquad和Gamers.com獲得了一個(gè)難得的機(jī)會(huì),與John
Carmack進(jìn)行一次長(zhǎng)時(shí)間的、面對(duì)面的訪談。我們利用這次機(jī)會(huì)進(jìn)一步了解了John作為一個(gè)普通人——而不是一個(gè)程序員——的一面。我們還向John
詢問(wèn)了他和Id未來(lái)的發(fā)展計(jì)劃,以及他對(duì)于游戲行業(yè)的現(xiàn)狀及其發(fā)展方向的看法。下面問(wèn)題以粗體字顯示,John的回答以普通文字顯示。
Firingsquad: 你今年多大?
John: 29歲。
FS: 你是否認(rèn)為結(jié)婚會(huì)影響你的編程工作?
John:不。如果這樣想我就不會(huì)結(jié)婚了。
FS: 那么你和Anna Kang(John的妻子,原來(lái)在id software供職)通常是怎樣渡過(guò)一天的?
John:
最近我們一直在搭建一些火箭模型。我接受了一次訪問(wèn),有人問(wèn)我在十幾歲時(shí)的情況,我提到了火箭、炸彈和一些類似的物品。我想這很有趣,我喜歡這樣。當(dāng)然,
現(xiàn)在您可以到互聯(lián)網(wǎng)上說(shuō)“我想要這個(gè)、這個(gè)和這個(gè)。” 他們現(xiàn)在擁有比我以前所用的強(qiáng)大得多的火箭——這些動(dòng)力強(qiáng)勁的火箭具有每秒2000牛頓的推動(dòng)力!
FS: 你和Anna會(huì)進(jìn)行一對(duì)一的網(wǎng)絡(luò)對(duì)戰(zhàn)嗎?
John:
就在昨天我們還一塊玩了Apple這個(gè)游戲,Anna與其中的一個(gè)玩家開(kāi)玩笑——她踢了他一腳。我當(dāng)時(shí)正在與其他一些人開(kāi)會(huì),所以他們玩了一會(huì),而她一直
在逗他玩。但是當(dāng)我開(kāi)完會(huì)時(shí),他們把我逼進(jìn)這個(gè)家伙的房間里,讓我坐下。我進(jìn)行了反擊,取得了一次小規(guī)模的勝利。正如我所預(yù)料的,我聽(tīng)到了她從建筑物的另
一側(cè)發(fā)出的詛咒聲。她仍然認(rèn)為另外一個(gè)家伙在游戲最后魔術(shù)般地獲得了技能!
FS: 我閱讀了你在以前接受的一些訪談的內(nèi)容,其中你提到了炸彈等物品。你是一個(gè)不聽(tīng)話的小孩,對(duì)嗎?
John: 是的,現(xiàn)在回憶起來(lái),十幾歲時(shí)的我在很多方面就像是一個(gè)傲慢自大的小討厭鬼。這些年來(lái)我已經(jīng)逐漸成熟起來(lái)。現(xiàn)在回想當(dāng)年,我認(rèn)為當(dāng)時(shí)的我表現(xiàn)并不好。我的意思是,盡管我很聰明——我當(dāng)時(shí)已經(jīng)開(kāi)始編寫計(jì)算機(jī)程序,但是我經(jīng)常分不清是非。
FS: 如果你需要給在自己的學(xué)校中存在像你這樣的孩子的人提點(diǎn)建議,你會(huì)說(shuō)什么?
John:
我已經(jīng)清楚地知道了我想要做什么。我想要編程——我在12歲時(shí)就深知這一點(diǎn)。我知道,這是我想要做的,而且我清楚地知道我想要實(shí)現(xiàn)的目標(biāo)。你不能總是說(shuō)世
界虧欠你想要得到的。但是的確有些時(shí)候需要為一個(gè)孩子提供一些必要的幫助。我的父母從來(lái)沒(méi)有真正地了解我,因而我沒(méi)有得到我想要的計(jì)算機(jī)。我為此責(zé)怪了我
母親將近十年,但是我們現(xiàn)在都已經(jīng)淡忘這件事情了。
當(dāng)
時(shí)我感到非常沮喪,因?yàn)槲仪宄刂牢蚁胍鍪裁矗俏覅s無(wú)法做到。人們習(xí)慣于認(rèn)為:如果你想要從事計(jì)算機(jī)工作,你需要進(jìn)入MIT,再到一家公司工作,
成為一名工程師,遵循“公認(rèn)的發(fā)展道路”。但是我從大學(xué)輟學(xué)了,隨后創(chuàng)建了我自己的公司。我的弟弟選擇了一條更加符合慣例的道路。他獲得了一個(gè)學(xué)位,成為
了一名股票經(jīng)紀(jì)人,而這正是我母親希望他做到的。他干得不錯(cuò),但是并不能像我一樣擁有很多輛法拉利跑車來(lái)讓父母感到自豪。
我現(xiàn)在可以說(shuō),我和我的母親現(xiàn)在相處得很好。我們可以討論這些事情和回憶過(guò)去,她意識(shí)到她在某些方面犯了錯(cuò)誤。但是這有什么用?她不會(huì)再撫養(yǎng)別的孩子。
Carmack 對(duì)于錢的態(tài)度
FS: 你現(xiàn)在已經(jīng)非常富有——這對(duì)你有什么影響?
John: 我現(xiàn)在擁有的財(cái)富足以讓我無(wú)需再繼續(xù)工作;我的確不需要再工作了。這種自由的感覺(jué)非常好。因?yàn)橹灰銚碛凶銐虻腻X來(lái)維持你的生活,你就不必聽(tīng)命于任何人,也不需要想法設(shè)法賺更多的錢。盡管有很多人已經(jīng)非常富有,但是他們?nèi)匀磺鼜挠趽碛懈嘭?cái)富的誘惑。
我基本上擁有我所需要的一切。我已經(jīng)擁有足夠的財(cái)富來(lái)維持我自己和我的家人的正常生活,因此,沒(méi)有任何人、任何公司可以對(duì)我產(chǎn)生嚴(yán)重的影響。
FS: 是否存在一些領(lǐng)域,你認(rèn)為你可以利用你的財(cái)富施加影響?
John: 我盡量不像這樣考慮問(wèn)題。在推動(dòng)其他事情方面,我盡量做到不要太主動(dòng)。我希望直接解決事情的技術(shù)方面的問(wèn)題。當(dāng)然我可以用錢來(lái)解決一些事情,但是我更希望用直接的方式解決問(wèn)題。
這就是為什么我不是一位很好的經(jīng)理。我是一位工程師,所以我想要直接解決問(wèn)題。我希望把環(huán)境建立一起,以便更好的解決問(wèn)題,盡管在很多情況下我意識(shí)到還需要完成更大規(guī)模的項(xiàng)目。但是這并不是只有我才能做到的。
我非常擅長(zhǎng)這個(gè)領(lǐng)域的工作,而且恰好我很喜歡它,因而我并不想轉(zhuǎn)到其他的領(lǐng)域。我的財(cái)富足以讓我提前退休,但是我喜歡我現(xiàn)在的狀態(tài)。
在這方面我很反感某些公司的做法。一些創(chuàng)始人原先是非常出色的工程師,但是現(xiàn)在成了他們的部門的主管,因而主要從事管理工作,而不是工程項(xiàng)目。同時(shí),他們所管理的大部分員工在處理實(shí)際工作方面遠(yuǎn)遠(yuǎn)不如他們當(dāng)初的水平。
我
希望這樣的事情永遠(yuǎn)不要發(fā)生在我身上。我希望永遠(yuǎn)處于行業(yè)前沿,從事實(shí)際的開(kāi)發(fā)工作。當(dāng)然,回到幕后閱讀資料、研究理論和獲得更加廣泛的視角也會(huì)帶來(lái)一些
好處,但是如果你不了解開(kāi)發(fā)的具體細(xì)節(jié),例如工程項(xiàng)目與真實(shí)世界的聯(lián)系,你就會(huì)變成一個(gè)只會(huì)夸夸其談的理論家。你可以從理論家的所作所為和一個(gè)從事真正的
開(kāi)發(fā)工作的工程師的工作之間看到這種巨大的差別。
在
過(guò)去的兩個(gè)項(xiàng)目中,我的時(shí)間被分成了幾段。我有大約三個(gè)月的時(shí)間進(jìn)行純粹的理論研究。我目前正處于這個(gè)階段,在這期間我需要與不同的人進(jìn)行合作。隨后我將
用大約16個(gè)月的時(shí)間從事項(xiàng)目的開(kāi)發(fā)工作。更多的關(guān)注研究性質(zhì)的工作對(duì)我來(lái)說(shuō)相當(dāng)重要,但是我并不希望將我的大部分時(shí)間用于理論研究。我認(rèn)為,研究的關(guān)鍵
在于找出一種新的方法,但是當(dāng)您想要真正地采取行動(dòng)時(shí),僅僅擁有這些理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的。
FS: 你對(duì)工作的專注讓人驚嘆。看來(lái)你是唯一適合現(xiàn)在這項(xiàng)工作的人。
John: 專注非常有用。在現(xiàn)在這個(gè)環(huán)境中,我認(rèn)為軟件是一種幾乎最理想的介質(zhì)。但是如果不做這一行,我可能會(huì)成為一名工程師或者某種意義上的科學(xué)家。我可以從事任何一種“硬科學(xué)”。
軟
件具有很多與眾不同的優(yōu)點(diǎn)。從事物理試驗(yàn)的研究人員需要用一年的時(shí)間進(jìn)行準(zhǔn)備和制作工具,然后還要花一年時(shí)間來(lái)分析試驗(yàn)結(jié)果。但是在開(kāi)發(fā)軟件時(shí),你可以立
即看到運(yùn)行結(jié)果。你只需要坐在那里對(duì)程序進(jìn)行反復(fù)的調(diào)試。你可以立即運(yùn)行程序。對(duì)于所有智力探索活動(dòng)來(lái)說(shuō),這是最容易適應(yīng)的工作方式。我很慶幸自己生活在
這個(gè)軟件業(yè)非常繁榮的時(shí)代。
我再次想起當(dāng)我還是一個(gè)年輕人時(shí),我沒(méi)有我想要的計(jì)算機(jī)。我感到非常沮喪。我覺(jué)得
我“正在錯(cuò)過(guò)一個(gè)很好的機(jī)會(huì)”。我覺(jué)得自己應(yīng)當(dāng)編寫這些游戲,例如早期的Apple
II游戲。我之所以感到由衷的沮喪,是因?yàn)槲矣X(jué)得自己錯(cuò)過(guò)了最佳時(shí)機(jī)。當(dāng)然當(dāng)時(shí)我并不知道我可以抓住“下一個(gè)”最佳時(shí)機(jī)。
你讀過(guò)Steven Levy寫的《黑客》嗎?
FS: 讀過(guò),這本書非常棒!
John: 我在十幾歲的時(shí)候讀了這本書。在看到第三章時(shí),我感到“天啊,這才是我應(yīng)該做的!”大約10年以后,我回想起來(lái)自己當(dāng)時(shí)的想法:“如果那本書有第四章,也許我會(huì)加入那個(gè)行業(yè)。”這是一個(gè)非常有趣的想法。
現(xiàn)在看這段經(jīng)歷會(huì)覺(jué)得很有意思。當(dāng)我是一個(gè)年輕人時(shí)我覺(jué)得錯(cuò)過(guò)了自己的最佳時(shí)機(jī)。因?yàn)楫?dāng)時(shí)是PC的早期發(fā)展階段的黃金時(shí)期,我為自己沒(méi)有抓住那次機(jī)會(huì)深感遺憾。
FS: 你是否認(rèn)為編程工作和將想法轉(zhuǎn)變?yōu)槌绦虼a的過(guò)程激發(fā)了你對(duì)編程的興趣?或者是你在Apple II和PC發(fā)展早期所玩的某些游戲?
John: 我可以說(shuō)出我當(dāng)時(shí)非常喜歡的游戲的名字,但是我真正喜歡的是進(jìn)行抽象的編程。我喜歡這項(xiàng)工作的很多獨(dú)特之處。
很多人加入游戲行業(yè)的原因就是他們喜歡游戲,而且樂(lè)于創(chuàng)新。
我
對(duì)編程的熱愛(ài)則來(lái)自于一種更加抽象的感覺(jué)。我可以從為L(zhǎng)inux編寫設(shè)備驅(qū)動(dòng)程序中獲得很大的樂(lè)趣。我還喜歡編寫數(shù)據(jù)庫(kù)管理程序或者其他程序,因?yàn)樵陂_(kāi)發(fā)
過(guò)程中總是會(huì)遇到一些有趣的問(wèn)題。有些事情可以給我?guī)?lái)更多的滿足感。圖像和游戲很可能是編程工作中最能給人帶來(lái)成就感的領(lǐng)域。
FS: 為什么呢?
John:
因?yàn)槟憧梢缘玫椒浅P蜗蟮姆答佇畔ⅰ.?dāng)你編寫一個(gè)圖像算法時(shí),它可以為你繪制一副圖片。盡管數(shù)據(jù)編程會(huì)通過(guò)其他的方式給人以滿足感,但是人類顯然對(duì)可視的
對(duì)象和必須通過(guò)符號(hào)理解的事物更感興趣。這是圖像編程極具吸引力的基本原因。但是我們必須進(jìn)行很多方面的研究。我喜歡這項(xiàng)工作的所有領(lǐng)域,但是游戲開(kāi)發(fā)總
是會(huì)讓你在克服一些極具挑戰(zhàn)性的問(wèn)題之后才能領(lǐng)會(huì)到它給你帶來(lái)的滿足感。
我在早期很喜歡RPG游戲,例如Ultimas,Wizardrys和所有類似的游戲。我為Apple II開(kāi)發(fā)的一些非常早期的游戲基本上就是Ultima的翻版。我還喜歡所有的經(jīng)典決斗游戲。
FS: 從某種意義上說(shuō),你是否認(rèn)為“龍與地下城”是你所希望看到的、帶有一定的文字和對(duì)話的游戲模式?它是否像Quake引擎一樣,是一種可以在其中添加各種內(nèi)容的游戲結(jié)構(gòu)?
John: 它就像是能夠從頭開(kāi)始開(kāi)發(fā)新的游戲,使用一種對(duì)你沒(méi)有任何限制的方法。
事
實(shí)上,我們最初打算將Quake開(kāi)發(fā)為一個(gè)RPG游戲——并不是一個(gè)完全意義上的RPG游戲,而是一個(gè)奇幻游戲。但是因?yàn)镼uake的復(fù)雜的開(kāi)發(fā)流程,它
后來(lái)的發(fā)展完全偏離了這個(gè)軌道。我一直非常愿意說(shuō)明我們?cè)趧傞_(kāi)始時(shí)對(duì)我們所開(kāi)發(fā)的游戲制定的目標(biāo)。盡管它們成為了與我們的目標(biāo)截然不同的游戲,但是我很滿
意最終的結(jié)果。我們不大可能在開(kāi)發(fā)一款奇幻/角色扮演游戲。
FS: 我聽(tīng)說(shuō)你減少了你對(duì)“龍與地下城”的管理工作。
John:
從Wolfenstein開(kāi)始,整個(gè)公司都在每個(gè)周末玩我們所開(kāi)發(fā)的游戲。玩游戲的時(shí)間在我們開(kāi)發(fā)Doom階段有所減少。我們?nèi)ツ昙兇鉃閵蕵?lè)開(kāi)發(fā)了幾款游
戲。但是它花了我們不少時(shí)間。要完成出色的工作,你必須用一天時(shí)間玩游戲,再用一天時(shí)間準(zhǔn)備,但是我現(xiàn)在不可能再為其他的工作犧牲20%的時(shí)間。
FS: 你有一種特別的專注和靈感——你可以怎樣改進(jìn)一個(gè)算法或者技術(shù)。你多久會(huì)遇到一次這樣的頓悟?
John:
我認(rèn)為很多人都過(guò)于強(qiáng)調(diào)頓悟的重要性。頓悟的確很重要,但是只有在你清楚地了解一項(xiàng)工作的來(lái)龍去脈之后獲得頓悟。事實(shí)上,很多出色的工作并不是頓悟的結(jié)
果,而是辛勤工作的結(jié)果。很多人都誤以為頓悟是最重要的。有時(shí)候它的確是,但是在95%的情況下它僅僅是你對(duì)你所掌握的知識(shí)的冷靜分析的結(jié)果。
讓工作成功的關(guān)鍵并不是一個(gè)天才的決策,而是500個(gè)明智的選擇。更加重要的是始終做出明智的決策。制定一個(gè)天才的決策和很多平庸的決策還不如在整個(gè)過(guò)程中始終制定比較明智的決策。你必須要做出很多正確的決定。
即
使在開(kāi)發(fā)完Quake
3之后,我的任務(wù)清單上仍然有數(shù)千個(gè)有待進(jìn)一步改進(jìn)的細(xì)節(jié)。因此,關(guān)鍵在于了解所有必須完成的工作,進(jìn)而找出“最有效的擊球點(diǎn)”。例如“這些工作可以完成
大量的任務(wù),但是會(huì)帶來(lái)一定的副作用。”或者“完成這項(xiàng)工作可能需要幾天時(shí)間,但是它會(huì)讓其他一些環(huán)節(jié)變得不太穩(wěn)定,因此我不會(huì)去做這項(xiàng)工作。”
我當(dāng)然希望遇到頓悟——當(dāng)時(shí)我可能正在做某項(xiàng)工作,忽然間意識(shí)到可以采用一種更好的方法。這的確非常有用,但是我不能指望這種情況每天都會(huì)發(fā)生。實(shí)際上比較常見(jiàn)的情況是,當(dāng)我回到家里時(shí)我可以告訴Anna:“今天我想出了一個(gè)新主意!”這種情況相當(dāng)常見(jiàn),而且非常有用。
FS: 很多人都認(rèn)為你是全世界最出色的游戲工程師之一。你認(rèn)為在今后幾年中,這個(gè)世界上是否還有足夠的任務(wù)和深度來(lái)讓你保持足夠的興趣?
John:
當(dāng)然,還有很多難題需要解決。目前,我正在利用我的很多閑暇時(shí)間開(kāi)發(fā)一些基于Linux平臺(tái)的程序。我已經(jīng)完成的一項(xiàng)工作是為L(zhǎng)inux編寫兩個(gè)3D驅(qū)動(dòng)
程序,即在這個(gè)平臺(tái)上進(jìn)行大量的編程。作為一名開(kāi)發(fā)人員,這對(duì)我非常有用,因?yàn)槲易隽舜罅扛邔哟蔚摹PI級(jí)別的編程工作,但是我應(yīng)當(dāng)繼續(xù)深入到系統(tǒng)底
層。通過(guò)開(kāi)發(fā)設(shè)備驅(qū)動(dòng)程序,編寫一些深入到硬件內(nèi)部的部署級(jí)程序可以開(kāi)闊我的眼界,讓我可以從整個(gè)流程的角度看待各項(xiàng)工作。有很多程序員只知道頂層的開(kāi)發(fā)
方法,而不知道程序工作的基本原理,這主要是因?yàn)樗麄儫o(wú)法“看到”系統(tǒng)的內(nèi)部結(jié)構(gòu)。
我正在考慮著手的另外一項(xiàng)工作是(因?yàn)槲蚁矚g清楚地從最高層到最
底層的所有技術(shù)細(xì)節(jié))花一些時(shí)間開(kāi)發(fā)我自己的網(wǎng)絡(luò)堆棧,以便進(jìn)行研究和學(xué)習(xí)。我還做了一些我想要嘗試的試驗(yàn),以便在串行驅(qū)動(dòng)程序和分組驅(qū)動(dòng)程序的層次上了
解操作系統(tǒng)實(shí)際上為路由時(shí)間和排序所支出的開(kāi)銷。我希望從我們通常用于通信的協(xié)議層下面獲得一些信息。
FS: 僅僅是在Linux平臺(tái)上,還是也包括Windows和Mac平臺(tái)?
John: 關(guān)鍵是在Linux平臺(tái)上開(kāi)展這些工作更加方便,因?yàn)槟隳軌颢@得你所需要的所有信息。盡管Linux還不能取代Windows成為主流的桌面操作系統(tǒng),但是它的確具有一些獨(dú)到之處。
吸引我這樣做的原因是有人為Matrox顯卡編寫了一個(gè)
Linux驅(qū)動(dòng)程序。我對(duì)它進(jìn)行了測(cè)試。顯然它不能兼容Quake
3。因此我決定將它下載下來(lái)仔細(xì)研究。我對(duì)它的出色的工作機(jī)制留下來(lái)深刻的印象。盡管它的速度不快,但是它幾乎可以說(shuō)是一個(gè)功能齊全的、高質(zhì)量的程序。但
是它在紋理的交換方式方面存在明顯的缺陷。他們交換的是最近使用的紋理,而不是最少使用的紋理,因而你可以在屏幕上看到明顯的失真。
我很清楚它的工作方式,因而我想“太好了,它提供了源代碼。”因此我決定下載源程序、進(jìn)入CVS庫(kù)和所有文件,按照我的想法改進(jìn)代碼,發(fā)現(xiàn)程序缺陷,并將其消除!整個(gè)過(guò)程非常明確。
由此得出的結(jié)論是,Apple的驅(qū)動(dòng)程序曾經(jīng)也存在相同的缺陷。
因此我們可以在兩個(gè)驅(qū)動(dòng)程序中發(fā)現(xiàn)相同的缺陷,但是對(duì)于Linux程序來(lái)說(shuō),我可以直接進(jìn)入源程序,消除這個(gè)缺陷。盡管在很多層次上仍然存在不少障礙,但
是具備這種能力非常重要。從根本上說(shuō),如果你在使用一個(gè)源碼完全開(kāi)放的系統(tǒng)時(shí)遇到了一些問(wèn)題,你可以花時(shí)間自行解決這個(gè)問(wèn)題。你不需要等待別人的幫助。你
不需要低聲下氣地尋求幫助,也不需要等待補(bǔ)丁發(fā)布,而通常這樣做會(huì)降低時(shí)間的利用效率,但是如果某個(gè)問(wèn)題真的讓你頭疼不已,你可以直接查看源代碼,解決這
個(gè)問(wèn)題。這會(huì)讓人感到非常振奮。
FS: 這就是你對(duì)待問(wèn)題的態(tài)度——親手解決問(wèn)題。你并不想等待別人來(lái)發(fā)布一個(gè)升級(jí)程序,而是愿意自己動(dòng)手。
John: 是的,這就正是為什么在我對(duì)網(wǎng)絡(luò)或者其他問(wèn)題進(jìn)行研究時(shí),我更愿意使用Linux平臺(tái)。如果需要,你可以取出操作系統(tǒng)的某些部分,告訴自己:“好的,現(xiàn)在我想要把這一部分完全刪除,因?yàn)槲蚁胍鲆粋€(gè)試驗(yàn)。”你可以獲得自由發(fā)揮的空間。
我認(rèn)為,在未來(lái)幾年中,軟件的可用性將日益得到重視。有很多經(jīng)濟(jì)趨勢(shì)與此有關(guān)。你將看到價(jià)格低于500美元的PC和90美元的Windows使用許可。如果人們只想執(zhí)行一些非常基本的任務(wù),他們很可能希望獲得一個(gè)免費(fèi)的操作系統(tǒng)。
Linux界有很多瘋狂的支持者,他們的觀點(diǎn)有時(shí)缺乏足夠的理性。但是,在關(guān)于Linux的實(shí)際優(yōu)勢(shì)的宣傳中的確存在著一些真實(shí)情況。
FS: 你很關(guān)注技術(shù),而且你鞭策自己不斷進(jìn)步。但是你是否考慮過(guò)找一個(gè)上司來(lái)幫助你學(xué)習(xí)新的技能?
John:
我知道在某些工作上聘請(qǐng)管理人員可以帶來(lái)很多好處。我們?cè)诘谌径饶┢刚?qǐng)了Graeme來(lái)幫助我們管理部分業(yè)務(wù)。但是它并沒(méi)有對(duì)我的工作方式產(chǎn)生實(shí)際的影
響,因?yàn)镚raeme還沒(méi)有蠻橫到干涉每項(xiàng)具體的工作。事實(shí)上,我自己對(duì)工作的安排往往好過(guò)大部分管理人員給我制定的工作計(jì)劃。
我也意識(shí)到了我的個(gè)人組織能力的局限性。我會(huì)將幾千件事情放在我
的任務(wù)清單上,而且常常是從頭開(kāi)始對(duì)所有事情進(jìn)行排序。我的確認(rèn)為如果有個(gè)人的主要工作就是確保我知道和了解所有這些任務(wù)的重要性就好了,因?yàn)槊總€(gè)人的組
織能力都存在一定的不足。你自己可能不會(huì)這樣做,但是有些事情就是因?yàn)槟阋恢辈辉敢馊ヌ幚矶罱K泡湯。我已經(jīng)意識(shí)到了讓某個(gè)人幫我安排工作的好處。
最近我在找一個(gè)人來(lái)對(duì)一些程序——尤其是Linux驅(qū)動(dòng)程序——
的OpenGL性能進(jìn)行兼容性測(cè)試。我為此編寫了大量的程序,我也盡量設(shè)法將這件事負(fù)責(zé)到底,但是我知道我需要采取多種方法來(lái)實(shí)現(xiàn)我的目標(biāo)。我希望編寫一
個(gè)完美的程序,但是我也深深意識(shí)到,在我的有限的時(shí)間里,我不可能做到面面俱到。
有時(shí)候有一個(gè)專門負(fù)責(zé)幫助你的助手會(huì)帶來(lái)很大的方便。但是這對(duì)我來(lái)說(shuō)仍然只是一個(gè)理論上的問(wèn)題。我相信這樣做會(huì)有所幫助,但是還沒(méi)有看到實(shí)際的效果。
FS: 出了組織能力以外,能否將一位管理人員視為老師?你覺(jué)得可以從誰(shuí)身上學(xué)到對(duì)自己有用的知識(shí)?
John:
實(shí)際上,我?guī)缀跸蛎總€(gè)人學(xué)習(xí)。這是十幾歲時(shí)的我和現(xiàn)在的我的主要區(qū)別之一。當(dāng)我十幾歲時(shí),我的想法是:“我比我周圍的人都聰明,因此我完全不用理會(huì)別人說(shuō)
什么。”我在大學(xué)的幾個(gè)學(xué)期中都是如此。現(xiàn)在回想起來(lái),我覺(jué)得我采用了錯(cuò)誤的處世方法。是的,也許我的確比教授聰明,但這并不意味著我不能從他身上學(xué)到對(duì)
我有用的知識(shí)。
現(xiàn)在我的處世方法是,我愿意向與我一同進(jìn)行編程的任何同事身上學(xué)習(xí)知識(shí)。我很珍惜我與Brian
Hook一同工作的時(shí)光。我從他身上學(xué)到了一些更好的C語(yǔ)言編程標(biāo)準(zhǔn)和如何更加嚴(yán)格地使用struct和const——而我過(guò)去并不這樣做。這對(duì)我非常重
要,因?yàn)槲彝ㄟ^(guò)他提高了自己的技術(shù)水平。另外還有Graeme——我看到他從Java庫(kù)中迅速地找到自己所需要的信息——而我往往是從頭做起,到處查找這
些信息,因而花的時(shí)間比他長(zhǎng)得多。
某人并非要成為一個(gè)“更好的”開(kāi)發(fā)人員或者程序員才有值得你學(xué)習(xí)的知識(shí),這是我在過(guò)去10年中獲得的一個(gè)非常重要的經(jīng)驗(yàn)。到處都有值得你學(xué)習(xí)的知
識(shí)。如果你擁有正確的學(xué)習(xí)態(tài)度,那么把自己放在一個(gè)信息豐富的環(huán)境中會(huì)對(duì)你很有幫助。如果你想從任何地方獲得你想要學(xué)習(xí)的知識(shí),而不是尋找一個(gè)將所有信息
都集中到一起的有用信息 “寶庫(kù)”,你必須能夠從你所能接觸到的任何地方搜集對(duì)你有用的信息。
在開(kāi)發(fā)Quake的過(guò)程中,我們聘請(qǐng)了Michael
Abrash。我為此激動(dòng)不已,因?yàn)槲以?jīng)通過(guò)他以Dobbs博士為筆名發(fā)表的很多文章中學(xué)習(xí)了大量基本的PC編程技能——包括匯編語(yǔ)言和圖像編程。因此
我對(duì)能夠于他合作感到非常高興。我從他那里又學(xué)到了很多知識(shí),但是有趣的是,我有一陣子感到非常不舒服,因?yàn)樗诰幊谭矫鎸?duì)我非常順從。Michael的
知識(shí)非常淵博,但是我的長(zhǎng)處是學(xué)習(xí)新知識(shí)的能力很強(qiáng)。
因此,我?guī)缀鯊奈液献鬟^(guò)的所有程序員身上都學(xué)到了很多知識(shí)。
FS: OK,你剛才提到從周圍搜集有用的信息。你怎樣看待非技術(shù)性的信息來(lái)源——例如書籍和電影?
John: 我這幾年來(lái)最喜愛(ài)的書是由Vernor Vinge撰寫的《A Deepness in the Sky》。在電影方面,我不知道我所說(shuō)的是否有參考意義。我欣賞了大部分好看的電影。《玩具總動(dòng)員2》非常出色——我很喜歡這部電影。
FS: 《黑客帝國(guó)》呢?
John: 《黑客帝國(guó)》非常精彩。我喜歡所有精彩的科幻、動(dòng)作和類似的電影。我不是很喜歡意義深刻的電影。我看電影的目的純粹是為了娛樂(lè)。有些電影實(shí)際上改編自我們開(kāi)發(fā)的游戲。我們的游戲相當(dāng)于計(jì)算機(jī)游戲界的施瓦辛格電影。
FS: 你認(rèn)為人們?yōu)槭裁聪矚gQuake 3?
John: 我們希望通過(guò)Quake
3達(dá)到的目的就是讓你可以在玩游戲時(shí)全身心地投入其中。對(duì)于華麗設(shè)計(jì)或者其他特點(diǎn)的吹噓,以及試圖在游戲上強(qiáng)加一個(gè)傳奇或者故事的做法毫無(wú)意義。一個(gè)游戲
的真正價(jià)值在于讓你在玩游戲時(shí)感到有趣。關(guān)鍵并不是擊敗游戲?qū)κ只蛘咄瓿赡稠?xiàng)任務(wù),而是要讓戰(zhàn)斗真正有趣。
必須有些讓你想要采取行動(dòng)的任務(wù)。人們不會(huì)因?yàn)橥鎵厩蛴螒蚨娴娜ネ鎵厩颍槐仨氂幸粋€(gè)本身很有意思的戰(zhàn)斗。我認(rèn)為我們?cè)谶@方面做得不錯(cuò)。我們期望,并且的確從我們的擁護(hù)者那里得到了大量的反饋信息。
肯定有些玩家希望玩更加復(fù)雜、更加具有挑戰(zhàn)性的游戲。對(duì)于游戲來(lái)說(shuō),這是一個(gè)可行的發(fā)展方向,但是它可能會(huì)導(dǎo)致游戲內(nèi)核的發(fā)展停滯不前。你可以在玩
飛行模擬游戲時(shí)體會(huì)到這一點(diǎn),因?yàn)檫@些游戲要求你在開(kāi)始游戲之前閱讀漫長(zhǎng)的使用手冊(cè)。而在過(guò)去的飛行模擬游戲中,你要做的就是跳進(jìn)飛機(jī)、起飛和射擊。這些
游戲可以給玩家?guī)?lái)真正的快樂(lè)。而在有些嚴(yán)肅的模擬游戲中,你必須讓自己相信你真的達(dá)到了娛樂(lè)的目的。
也可以像這樣來(lái)開(kāi)發(fā)第一人稱射擊游戲,即要求玩家了解現(xiàn)在發(fā)生的情況,各種工具的使用方法,以及各種戰(zhàn)略等——而玩家并不想要知道這些,他們希望的
只是坐下來(lái)玩游戲。也許有很多人喜歡這樣的游戲,但是我并非如此。我沒(méi)有時(shí)間學(xué)習(xí)游戲的各種知識(shí)。我從來(lái)不玩那種需要學(xué)習(xí)大量復(fù)雜的知識(shí)的游戲。我只喜歡
玩一些簡(jiǎn)單的、迅速上手的游戲,它們讓我可以立即進(jìn)入游戲,享受一段美好時(shí)光。我認(rèn)為與我一樣的游戲玩家是上面那種喜歡復(fù)雜游戲的玩家的五倍以上。
FS: 你最近一次玩超過(guò)2小時(shí)的、非id出品的游戲是什么?
John: 很可能是Nintendo 64平臺(tái)上的F-Zero X ——一款賽車游戲。
FS: 你是否考慮過(guò)開(kāi)發(fā)一款賽車游戲?
John: 我們?cè)?jīng)在推出Wolfenstein 之后討論過(guò)這個(gè)問(wèn)題。
當(dāng)時(shí)我正在研究一些三維象素-landfield技術(shù),我們制作了一些汽車行駛的簡(jiǎn)單演示。但是我們從來(lái)沒(méi)有采取任何措施來(lái)將這個(gè)想法付諸實(shí)施。但是如果
我們真的開(kāi)發(fā)一款賽車游戲,那肯定也屬于非常有趣的賽車類游戲——例如F-Zero游戲,而不是非常嚴(yán)肅的賽車模擬游戲。這里我要再次指出,游戲界有很多
有效的發(fā)展途徑,但是我有我自己的個(gè)人愛(ài)好。我的愛(ài)好恰好讓我們既可以開(kāi)發(fā)出成功的游戲,又可以讓游戲具有我所認(rèn)為的真正的娛樂(lè)性。
Id公司的下一款游戲
FS: 你認(rèn)為你的個(gè)人愛(ài)好并不是開(kāi)車,而是火箭發(fā)射器?
John: 游戲的目的就是娛樂(lè)。模擬游戲從來(lái)沒(méi)有讓我獲得愉快的感覺(jué),包括飛行模擬、賽車模擬和所有類似的模擬游戲。我知道它們?cè)谀承┓矫婢哂幸欢ǖ膴蕵?lè)性。它肯定不會(huì)像我說(shuō)的:“這些游戲非常枯燥,所有人會(huì)喜歡它們”。但是,它們并不是我喜歡的游戲類型。
在我剛剛喜歡上RGP游戲時(shí),我的生活因?yàn)槠渌恍┦聞?wù)而變得越來(lái)越忙碌,因而我沒(méi)有很多時(shí)間用來(lái)玩游戲。我一直都很喜歡簡(jiǎn)單的卷軸游戲。盡管從
Gauntlet到Quake
3,它們已經(jīng)發(fā)生了很大的變化,它們的基本理念仍然沒(méi)有改變——你需要四處奔跑、打敗敵人、拾起武器、及時(shí)進(jìn)入下一關(guān)。這是一個(gè)從根本上非常有效的、核心
的、首要的游戲元素,我對(duì)將相對(duì)較為類似的游戲(例如Quake、Quake 2和Quake
3)制作成具有不同風(fēng)格的游戲并不覺(jué)得有什么不好。就像總有人玩賽車游戲和飛行游戲一樣,現(xiàn)在也總是會(huì)有各種各樣的第一人稱射擊游戲。我認(rèn)為我們的每個(gè)項(xiàng)
目都得到了重要的收獲。我們的下一個(gè)游戲可能會(huì)采用一種完全不同的方式,因?yàn)椴⒉皇枪局械拿總€(gè)人的想法都與我一樣。因此下一次我們可能會(huì)稍微改變一下我
們的策略,但是我們還沒(méi)有做出最終的決定。
FS:它仍然是一款第一人稱游戲嗎?
John: 它很可能仍然是一款第一人稱游戲,但是它不一定是一款動(dòng)作游戲。Graeme和我一直在討論很多游戲的設(shè)計(jì)創(chuàng)意,并且探討了我們目前擁有的各種選擇,但是我們還沒(méi)有準(zhǔn)備好討論任何細(xì)節(jié)。它很可能是一款第一人稱游戲——這幾乎是肯定的。
FS: 我剛才在想,如果id進(jìn)入RTS或者其他類型的游戲領(lǐng)域,可能會(huì)出現(xiàn)非常有趣的情況——這就像Blizzard從RTS轉(zhuǎn)向開(kāi)發(fā)動(dòng)作RPG一樣。
John: 我不是一個(gè)真正的實(shí)時(shí)戰(zhàn)略游戲玩家。實(shí)際上,我從來(lái)沒(méi)有真正坐下來(lái)玩過(guò)一款SLG游戲。這不是我喜歡的類型。它與第一人稱游戲完全不同——后者是最有現(xiàn)場(chǎng)感的游戲。
實(shí)時(shí)戰(zhàn)略游戲是最沒(méi)有現(xiàn)場(chǎng)感的游戲之一。你只是指揮你的軍隊(duì),而不是你自己在游戲中沖鋒陷陣。我想我們還是會(huì)繼續(xù)開(kāi)發(fā)第一人稱類游戲。從第一人稱游
戲轉(zhuǎn)向第三人稱游戲只是一小步,但是我認(rèn)為肯定有其他一些公司更加擅長(zhǎng)開(kāi)發(fā)第三人稱游戲,例如那些在開(kāi)發(fā)指揮戰(zhàn)略方面更具實(shí)力的公司。
與游戲行業(yè)的很多人不同,我并沒(méi)有在計(jì)算機(jī)上制作電影的想法。而正是這種想法導(dǎo)致了很多公司陷入困境。有些游戲設(shè)計(jì)人員認(rèn)為他們是導(dǎo)演,而我認(rèn)為你
應(yīng)當(dāng)擺正自己的位置。我只是一名游戲設(shè)計(jì)師,而不是一名電影導(dǎo)演。這也是促使很多公司轉(zhuǎn)向第三人稱游戲的原因。第三人稱顯然更適于顯示人物動(dòng)畫這樣的特
效。Steed肯定希望開(kāi)發(fā)更加重視動(dòng)畫的游戲,但是這可能并不是我們的下一款游戲的開(kāi)發(fā)重點(diǎn)。我們還沒(méi)有最終決定,但是我肯定將繼續(xù)開(kāi)發(fā)第一人稱游戲。
FS: 你把在計(jì)算機(jī)上制作電影視為“很多公司陷入困境的原因”的說(shuō)法很有意思,因?yàn)橛泻芏?D顯卡公司——例如3dfx和Nvidia——實(shí)際上將“把好萊塢引入臺(tái)式機(jī)”作為他們的宣傳重點(diǎn)。
John: 這個(gè)現(xiàn)象存在很多有趣的問(wèn)題——
一個(gè)是以最高的質(zhì)量發(fā)揮今天的3D引擎的威力所需要的人力正在迅速接近好萊塢所需要的電影布景人員的數(shù)量。就像現(xiàn)在,Quake
3遠(yuǎn)遠(yuǎn)沒(méi)有真正地達(dá)到我們所能制作的視覺(jué)效果的最高水平,但是只有這樣我們才能保持足夠快的開(kāi)發(fā)速度。
但是如果有人根據(jù)這個(gè)圣誕節(jié)推出的產(chǎn)品了解了今年的技術(shù)水平之后說(shuō):“我想要制作出視覺(jué)效果最驚人的、最接近電影的游戲”,那么他可以制作出遠(yuǎn)遠(yuǎn)超
過(guò)人們目前所看到的視效水平的游戲。相關(guān)的技術(shù)都是現(xiàn)成的。這就是過(guò)去一年中游戲行業(yè)的發(fā)展趨勢(shì),尤其是一些特殊的效果,例如各個(gè)層次的完全紋理渲染,需
要場(chǎng)景設(shè)計(jì)人員加入進(jìn)來(lái),以不同的方式設(shè)計(jì)他們的場(chǎng)景,以及利用模型構(gòu)建所有這些特效。這樣的努力現(xiàn)在可以被用在計(jì)算機(jī)游戲中。而過(guò)去并不是這樣。
在我們開(kāi)發(fā)Doom和Quake時(shí),我們并沒(méi)有能力投入如此多的人力。如果你需要設(shè)計(jì)一個(gè)房間、一條走廊和另外一個(gè)房間,你應(yīng)當(dāng)采用的方法是:走廊、模塊、模塊、天花板。這就是你所能做的一切,因此我們所能開(kāi)展的工作受到了嚴(yán)重的限制。
FS: 你總是支持以規(guī)模較小的團(tuán)隊(duì)開(kāi)發(fā)游戲;這是否意味著孩子們可以在自家的車房中和伙伴們一同開(kāi)發(fā)游戲?
John:
我們還沒(méi)有充分地發(fā)掘出所有可能的游戲種類。很多人在很多方面對(duì)游戲行業(yè)有所不滿,而事實(shí)上的確很多發(fā)行商并不喜歡發(fā)行創(chuàng)意新穎的游戲。來(lái)自
Definition 6的Chris Hecker
一直在用多種方法推廣物理游戲;他開(kāi)發(fā)了一些新奇的游戲。他所開(kāi)發(fā)的游戲使用了一個(gè)新穎的創(chuàng)意。他還制作了一個(gè)簡(jiǎn)短的游戲演示。這個(gè)游戲?qū)⑽锢碜鳛樗暮?
心原理,但是它并不是像“讓我們將物理加入一個(gè)第一人稱設(shè)計(jì)游戲”一樣。它是一個(gè)非常獨(dú)特的游戲。它采用了一個(gè)很好的游戲設(shè)計(jì),而且與物理學(xué)密切相關(guān)。但
是發(fā)行商對(duì)它一點(diǎn)都不感興趣。
這的確非常糟糕,但是與此同時(shí),我們也可以從其他一些事情上看到一些積極的跡象,例如有些人通過(guò)在互聯(lián)網(wǎng)上銷售他們所開(kāi)發(fā)的一些簡(jiǎn)單的小游戲而賺了
大錢,例如每年通過(guò)被下載的游戲獲得幾千美元的收入。我對(duì)此感到非常振奮,因?yàn)槲覀兛梢郧宄乜吹剑行┤丝梢酝ㄟ^(guò)開(kāi)發(fā)主流之外的游戲賺錢;這種情況因?yàn)?
互聯(lián)網(wǎng)而成為了可能。
我們?cè)诠緞?chuàng)建早期以共享軟件的形式獲得了成功。通過(guò)最初的Keen三部曲,我們每年的收入達(dá)到了10萬(wàn)到15萬(wàn)美元。通過(guò)第二個(gè)三部曲,我們每年
借助共享軟件獲得的收入達(dá)到了50萬(wàn)美元。這還是在我們進(jìn)入正式的商業(yè)銷售市場(chǎng)之前。現(xiàn)在看來(lái)可以比當(dāng)時(shí)做得更加出色。這的確很有意思。但是由于貨架上需
要占用成本費(fèi)用和貨架空間,發(fā)行商并沒(méi)有興趣發(fā)行創(chuàng)意新穎的游戲。我確信肯定有一些新的游戲種類正準(zhǔn)備嶄露頭角,但是面臨著一些阻力。
Id不是一個(gè)發(fā)行商
FS: 你對(duì)Halo感興趣嗎?
John:
我看過(guò)它的影片;看起來(lái)非常出色。現(xiàn)在的問(wèn)題是無(wú)法根據(jù)屏幕截圖來(lái)判斷一個(gè)游戲的好壞,因?yàn)槿魏我粋€(gè)不夠勝任的渲染引擎都可以渲染某個(gè)特定的場(chǎng)景。關(guān)鍵在
于各個(gè)對(duì)象能否無(wú)縫地連接到一起。Bungie擁有很多杰出的游戲設(shè)計(jì)人才。他們從事游戲行業(yè)的時(shí)間和我們差不多。他們很多年來(lái)就像是id在Mac平臺(tái)上
的影子。但是現(xiàn)在他們已經(jīng)走在了前面,并在PC平臺(tái)上取得了一些重要的成果。他們表現(xiàn)得非常不錯(cuò)。
FS: 再回到開(kāi)創(chuàng)新的游戲種類和來(lái)自發(fā)行商的阻力的話題,你是否有興趣幫助推廣新的游戲種類,例如提供一些資金來(lái)發(fā)行這些游戲?
John:
我肯定不想成為一個(gè)發(fā)行商。Id內(nèi)部就這個(gè)問(wèn)題討論了很多年。五年以前,所有的游戲開(kāi)發(fā)公司都希望成為發(fā)行商,因?yàn)楫?dāng)時(shí)有很多小型發(fā)行商。后來(lái)這些小型開(kāi)
發(fā)商逐漸被合并為少量大型發(fā)行商。我們就這個(gè)問(wèn)題討論了很長(zhǎng)時(shí)間,而且我們自己發(fā)行了最初的Quake共享軟件,但是當(dāng)與發(fā)行商達(dá)成協(xié)商之后,我們很可能
損失了一些利潤(rùn),因?yàn)榘l(fā)行商的業(yè)務(wù)管理往往相當(dāng)糟糕。但是最后所有人都達(dá)成了一致意見(jiàn)——尤其是在我們看到很多發(fā)行商的合并和倒閉之后——做一個(gè)開(kāi)發(fā)商比
做一個(gè)發(fā)行商好得多。因?yàn)檐浖_(kāi)發(fā)商是這個(gè)行業(yè)中比較清楚的部分,你只需要交付CD,再通過(guò)郵件接收支票。但是,作為一個(gè)發(fā)行商,你需要處理行業(yè)中的很多
你根本不想接觸的混亂部分,例如代理商在取走并售出你的產(chǎn)品之后付費(fèi)等。我一點(diǎn)也不想接觸這方面的業(yè)務(wù)。
FS: 或者利用你的影響力來(lái)說(shuō)服一些發(fā)行商,你知道,也許你應(yīng)該利用這個(gè)機(jī)會(huì)。
John:
我不會(huì)投入太多。我會(huì)對(duì)這樣的事情臨時(shí)發(fā)表一些意見(jiàn),但是我不會(huì)對(duì)一些我知道沒(méi)有足夠的時(shí)間和精力來(lái)努力的事情提出承諾。事實(shí)上,這對(duì)于我保持對(duì)主要工作
的專注非常重要。我愿意不去理睬大量的瑣事。這一點(diǎn)非常重要,因?yàn)槿绱硕嗟氖虑槎伎赡苄枰加梦业臅r(shí)間。可以從很多面臨類似處境的人的生活中看到這樣做的
重要性:整天都有人不停地找他們,從而使得他們無(wú)法開(kāi)展任何工作,因?yàn)橄胍_(dá)到某個(gè)目的的人會(huì)給他們撥打電話和發(fā)送電子郵件——對(duì)他們進(jìn)行訪問(wèn),或者請(qǐng)他
們提出一個(gè)業(yè)務(wù)建議。
有時(shí)候我會(huì)因?yàn)闆](méi)有完成更多的工作而感到內(nèi)疚。尤其是在即將到來(lái)的一年中,有很多不同的硬件設(shè)計(jì)工作需要完成,而且每個(gè)人都沒(méi)有一個(gè)明確的發(fā)展方
向。我告訴自己,我應(yīng)當(dāng)參與到開(kāi)發(fā)工作中,幫助所有人達(dá)成一致意見(jiàn),因?yàn)槲业牡匚皇沟梦冶容^適合扮演這樣的角色。微軟在很多方面很樂(lè)于聽(tīng)從我的建議,很多
硬件公司肯定也愿意這樣做。他們對(duì)我存在一定程度的尊重。但是在開(kāi)發(fā)Quake 3期間,我沒(méi)有時(shí)間來(lái)從事這方面的工作。
現(xiàn)在我可以四處宣傳一些想法,但是我深知,即使是現(xiàn)在,我也不能完全投入這項(xiàng)工作,因?yàn)閲L試并帶領(lǐng)整個(gè)行業(yè)沿著我所希望的方向向前發(fā)展實(shí)際上是一個(gè)全職的工作。我還沒(méi)有狂妄到認(rèn)為世界沒(méi)有我就轉(zhuǎn)不了。因此我想要說(shuō)的是,我會(huì)盡量提供幫助,但是我不會(huì)全身心地投入這項(xiàng)工作。
FS: 讓我們換個(gè)話題,我讀到的一篇文章提到在Quake 3成功推出之后,你準(zhǔn)備花更多的時(shí)間研究引擎。
John: 我目前正在開(kāi)展多項(xiàng)引擎研究工作。
FS: Trinity是其中之一嗎?我想人們一直對(duì)“Trinity”有些迷惑不解。
John:
我一直不知道為什么每個(gè)人都對(duì)Trinity感到迷惑不解。在推出Quake之后,我開(kāi)始研究新的渲染技術(shù),人們都將其稱為“下一個(gè)引擎”或者其他名稱。
Michael
Abrash建議我們采用Intel的做法:用一條附近的河流命名你的下一個(gè)項(xiàng)目。達(dá)拉斯有條名為Trinity的河,所以我們就下一個(gè)項(xiàng)目的名字取為
“Trinity引擎”。當(dāng)然,我們最終沒(méi)有將其用于某個(gè)項(xiàng)目,因?yàn)镼uake II是Quake I的續(xù)作,而且我沒(méi)有在Quake
II上使用[Trinity],因而沒(méi)有任何一個(gè)項(xiàng)目采用了這項(xiàng)技術(shù)。剛才我們談到了我當(dāng)時(shí)所做的工作。在開(kāi)始開(kāi)發(fā)Quake
III時(shí),我針對(duì)不同的渲染技術(shù)編寫了六個(gè)不同的研究引擎。
但是這仍然只是我所從事的研究工作。其中包括2個(gè)三維象素項(xiàng)目,1個(gè)空間扭曲項(xiàng)目,1個(gè)照明圖項(xiàng)目,其中的一部分工作成果后來(lái)成為了Quake III引擎。
有一件事一直是id和我的技術(shù)指導(dǎo)工作的真正實(shí)力之一。你可以看
到一些公司緊緊抓住某個(gè)聰明的創(chuàng)意不放;有些你可能耳熟能詳?shù)挠螒騽t是以一個(gè)創(chuàng)意為核心進(jìn)行游戲開(kāi)發(fā)。而我并不受限于某個(gè)特定的創(chuàng)意的束縛。正如我剛才所
說(shuō)的,在開(kāi)始開(kāi)發(fā)Quake
III時(shí),我有六個(gè)不同的任務(wù)需要完成。我觀察了所有這些任務(wù),然后對(duì)自己說(shuō):“這些任務(wù)更加簡(jiǎn)單明了。”但是我們?yōu)镼uake
III所做的工作實(shí)際上是很多方法中的一種比較正確的方法。我現(xiàn)在還有很多任務(wù)需要完成。但是沒(méi)有人會(huì)在上面貼上魔法標(biāo)簽,所以我需要親自評(píng)估所有這些不
同的任務(wù)。
FS: 你剛才提到了三維象素,而且你正在開(kāi)展這方面的研究。你是否認(rèn)為3D硬件公司應(yīng)當(dāng)關(guān)注三維象素加速?你怎樣看待已經(jīng)推出的三維象素游戲,例如“三角洲部隊(duì)”?
John:
三維象素開(kāi)發(fā)?我過(guò)去編寫過(guò)一些三維象素引擎。實(shí)際上Shadowcaster——即Raven的最初名稱——的早期版本中就曾經(jīng)使用了三維象素地面。但
是在我們重新編寫該程序,以便更多地使用多邊形時(shí),我們將三維象素地面刪除了。用三維象素技術(shù)顯示對(duì)象可以帶來(lái)一些實(shí)際的好處,因?yàn)樗梢酝ㄟ^(guò)多種方式為
您提供完整的紋理和輪廓細(xì)節(jié)。我在剛開(kāi)始開(kāi)發(fā)Quake
III時(shí)編寫了這兩個(gè)三維象素引擎,我當(dāng)時(shí)認(rèn)為我可以讓它們完全通過(guò)軟件運(yùn)行,但是它只能提供相當(dāng)?shù)偷姆直媛省8鶕?jù)你所能達(dá)到的水平,以及硬件多邊形的生
成速度,在這種情況下并沒(méi)有必要使用這項(xiàng)技術(shù)。
我分析了內(nèi)存存取模式;你可以用硬件做一個(gè)三維象素光跡追蹤器,它所使用的硬件資源遠(yuǎn)遠(yuǎn)少于我們現(xiàn)在在進(jìn)行各種三角形光柵處理時(shí)實(shí)際所用的資源。我
認(rèn)為它在很多情況下可以提供更加具有吸引力的視覺(jué)效果。但是它的確很難理解,因此我不太愿意向人們推薦這樣的技術(shù)。我知道我做了一些介紹性的演示,但是
PC行業(yè)能達(dá)到現(xiàn)在的硬件水平的根本原因是我們都可以借鑒SGI這個(gè)例子。我們擁有“這顯然可以發(fā)揮作用,你看他們已經(jīng)做到了”的說(shuō)法的實(shí)際證據(jù),因而問(wèn)
題就在于如何挑戰(zhàn)并最終超過(guò)他們的成績(jī)。
如果要推薦某種全新的技術(shù),有人會(huì)說(shuō):“你應(yīng)當(dāng)讓你的工廠生產(chǎn)三維象素芯片,你應(yīng)當(dāng)嘗試這項(xiàng)技術(shù),并向它投資幾百萬(wàn)美元。”我不愿意這樣做,因?yàn)槲?
們并沒(méi)有一個(gè)完整的證據(jù)來(lái)表明我們?cè)陂_(kāi)發(fā)引擎時(shí)有必要采用這項(xiàng)技術(shù),也不能證明它可以帶來(lái)足夠的渲染改進(jìn)。如果有人真的做了一個(gè)三維象素開(kāi)發(fā)工具,你可以
得到它的深度值,并將其與現(xiàn)有的三角形混合,這可能會(huì)是一個(gè)有趣的中間步驟,但是坦白的說(shuō),我并不認(rèn)為它會(huì)占用如此多的硬件資源。由于現(xiàn)在每個(gè)人都在想方
設(shè)法讓自己的產(chǎn)品獨(dú)樹一幟,所以可能會(huì)有人用這種技術(shù)作為宣傳的噱頭,但是肯定僅此而已,因?yàn)樗麄冞€不知道具體怎樣使用這項(xiàng)技術(shù)。
我認(rèn)為現(xiàn)在有些非常具有潛力的技術(shù),但是我并不能肯定這就是未來(lái)的發(fā)展方向,因?yàn)楸M管這些技術(shù)適用于環(huán)境的開(kāi)發(fā),而且你可以將它們用于一些出色的應(yīng)
用,但是還不清楚它們是否適用于角色的開(kāi)發(fā)。你可能會(huì)說(shuō):“也許你必須用一個(gè)變形矩陣構(gòu)建這個(gè)模型,然后當(dāng)你對(duì)它進(jìn)行Raycast渲染時(shí),讓光線在接觸
變形網(wǎng)格時(shí)轉(zhuǎn)向。”但是我還沒(méi)有編寫過(guò)這種軟件版本。只有在我可以提供一個(gè)顯示這種技術(shù)的工作方式,而且它看起來(lái)比你直接可以實(shí)現(xiàn)的效果更好的情況下,我
才會(huì)向別人推薦這項(xiàng)技術(shù)。我現(xiàn)在還沒(méi)有時(shí)間來(lái)做這件事情,因?yàn)槲矣幸恍┢仍诿冀薜难芯咳蝿?wù)需要完成。
但是我認(rèn)為這項(xiàng)技術(shù)具有一些重要的潛力,有可能會(huì)成為一個(gè)有趣的發(fā)展方向。我現(xiàn)在真正想向所有人介紹的技術(shù)是更高階的表面渲染,包括曲線、細(xì)分表面
等。現(xiàn)在每個(gè)人都對(duì)這些技術(shù)非常感興趣。在使用了兩年時(shí)間之后,我發(fā)現(xiàn)它們并不像宣傳得那樣出色;它們存在不少問(wèn)題。你直接從外面往往發(fā)現(xiàn)不了,對(duì)于一個(gè)
開(kāi)發(fā)人員來(lái)說(shuō),必須要深入內(nèi)部才能看到這些技術(shù)的本質(zhì)。
如果你曾經(jīng)讀過(guò)相關(guān)的研究文獻(xiàn),了解貝賽爾曲線的工作方式,你可能會(huì)想,哦,這項(xiàng)技術(shù)非常出色,這正是我們?cè)谌切螁卧蟮那斑M(jìn)方向。你并沒(méi)有意
識(shí)到所有的“實(shí)際”問(wèn)題,例如使用無(wú)效的、標(biāo)準(zhǔn)的,但是退化的邊緣。你不能隨意地劃分一條曲線——除非將其提高到兩側(cè)的平面。你不能通過(guò)調(diào)整其他部分連接
兩個(gè)交叉點(diǎn)。所有這些細(xì)微的不足最終會(huì)造成很大的不便,尤其是在比較困難的情況下,你很難全面地了解發(fā)生問(wèn)題的環(huán)節(jié)。三維象素技術(shù)也存在所有這些問(wèn)題,這
就是我為什么不愿意上臺(tái)演講,描繪未來(lái)的遠(yuǎn)景,因?yàn)楹芏嗉夹g(shù)從表面上看來(lái)很出色,但是當(dāng)你深入到它們的內(nèi)部時(shí),往往會(huì)得出相反的結(jié)論。
FS: 既然你打算重新開(kāi)展研究工作,那么這是否會(huì)對(duì)id的下一款游戲的推出時(shí)間產(chǎn)生一定的影響?
John: 這取決于我們最終決定下一步采取什么措施。我目前正在開(kāi)發(fā)的兩種技術(shù)都適用于現(xiàn)有的Quake 3框架,因此這些新技術(shù)可能會(huì)被加入到下一個(gè)產(chǎn)品中。
目前我們得到了一個(gè)非常重要的機(jī)會(huì),即我們可以使用這個(gè)牢固的、
穩(wěn)定的、可擴(kuò)展的、靈活的引擎,從而將我們的開(kāi)發(fā)重點(diǎn)放在游戲設(shè)計(jì)上,而不需要考慮引擎的開(kāi)發(fā)。。。
從一位管理人員的角度來(lái)說(shuō),這無(wú)疑非常有利。但是,如果我們這樣做,我現(xiàn)在正在開(kāi)發(fā)的技術(shù)很可能不會(huì)在三年、四年甚至更長(zhǎng)的時(shí)間內(nèi)被用于新的產(chǎn)品。對(duì)于技
術(shù)的發(fā)展來(lái)說(shuō),這是相當(dāng)長(zhǎng)的一段時(shí)間。因此我們需要一個(gè)真正強(qiáng)有力的激勵(lì)來(lái)促使我們將一些新技術(shù)加入到下一個(gè)產(chǎn)品中。
FS: 你是否通過(guò)玩其他游戲和觀看競(jìng)爭(zhēng)對(duì)手的產(chǎn)品來(lái)開(kāi)展研究工作?
John:
我經(jīng)常玩Unreal,將來(lái)我可能會(huì)喜歡玩Unreal
Tournament——盡管我現(xiàn)在還沒(méi)有玩這款游戲。另外,我還會(huì)玩很多演示版的游戲。我不會(huì)進(jìn)行一次真正徹底的調(diào)查,玩遍市場(chǎng)上的每款游戲。通常我只
是在別人玩最熱門的新游戲時(shí)旁觀一下。而我不會(huì)花很多的時(shí)間玩其他的游戲。當(dāng)然,我玩Quake 3的時(shí)間超出了其他任何一款游戲。
FS: 公司中是否有專人負(fù)責(zé)這項(xiàng)工作?
John:
Christian和Graeme會(huì)玩大部分新游戲。過(guò)去是Brandon負(fù)責(zé)玩每個(gè)游戲。當(dāng)他在id時(shí),所有信息都會(huì)從他那里過(guò)濾一下。Tim也經(jīng)常出
于一些研究目的玩游戲;Tim在瀏覽其他游戲方面表現(xiàn)得相當(dāng)盡責(zé),而Graeme和 Christian 玩其他游戲的主要目的只是娛樂(lè)。
FS: 你能否簡(jiǎn)單地介紹一下你的研究?jī)?nèi)容?
John:我現(xiàn)在正在開(kāi)發(fā)的一個(gè)渲染引擎技術(shù)是一個(gè)更好的照明模
型。Quake 2
在計(jì)算中添加了發(fā)射性照明,它可以帶來(lái)真實(shí)的光線反射效果,但是很多人實(shí)際上并不喜歡這種技術(shù),因?yàn)樗艘恍╆幱埃瑥亩尭嗟膶?duì)象陷入黑暗之中,盡
管這比較符合實(shí)際情況——很多人都喜歡更為明顯的陰影。在Quake
3中,我們重新只使用了一個(gè)直接照射燈,這在一定程度上是因?yàn)槲也幌朐谇€上進(jìn)行有限元放射計(jì)算。另外一項(xiàng)技術(shù)將讓設(shè)計(jì)人員可以在任何地方渲染紋理和劃分
輪廓,從而讓我們可以手動(dòng)改進(jìn)對(duì)象的顯示效果。因此,主要有兩個(gè)研究方向。實(shí)際上,它們可以被結(jié)合到一起,或者共同使用。它們都給我?guī)?lái)了一些有趣的技術(shù)
難題。這些技術(shù)可能會(huì)在我們的下一款產(chǎn)品中得到展示。
我的其他一些研究?jī)?nèi)容與游戲引擎無(wú)關(guān)。我正在利用Web攝像頭進(jìn)
行一些視覺(jué)研究,例如一種頭部跟蹤裝置。我可以利用這種裝置,在游戲中加入一些有趣的內(nèi)容。例如當(dāng)你來(lái)回?fù)u你的頭時(shí),你在游戲中扮演的角色也會(huì)做出同樣的
動(dòng)作。或者像一種支持全息照相的窗口界面,你只需要移動(dòng)你的頭,就可以改變你的形象。我并不認(rèn)為Web攝像頭用于足夠快的速度,在沒(méi)有顯著延時(shí)的情況下實(shí)
現(xiàn)上述目標(biāo),但是這仍然是一個(gè)相當(dāng)有趣的技術(shù)。你可以利用面部表情等,將它提高到新的水平。
我認(rèn)為這些技術(shù)的應(yīng)用將會(huì)超過(guò)我的想象。所有短時(shí)間的不連續(xù)都是
由于輸入/輸出設(shè)備的變化所引起的。當(dāng)人們開(kāi)始用鼠標(biāo)進(jìn)行各種操作時(shí),事情發(fā)生了變化。我認(rèn)為“計(jì)算機(jī)視覺(jué)”已經(jīng)具備足夠的實(shí)用性,足以對(duì)對(duì)象產(chǎn)生“鼠標(biāo)
式”的影響。畢竟,有些事情只能通過(guò)鼠標(biāo)完成,而不能依靠鍵盤。這仍然處于自由猜想階段。
現(xiàn)在出現(xiàn)了一些有趣的應(yīng)用,因?yàn)槲覀儸F(xiàn)在運(yùn)用了足夠強(qiáng)大的CPU運(yùn)算能力,可以進(jìn)行一些相當(dāng)復(fù)雜的計(jì)算。與很多圖像技術(shù)不同,它還有很多尚未解決的研究問(wèn)題。很多人正在研究這些難題,但是我們沒(méi)有“SGI實(shí)例”來(lái)知道怎樣將對(duì)象組合到一起和提高運(yùn)算速度。
我所感興趣的最后一個(gè)研究方向是實(shí)現(xiàn)更加通用的3D技術(shù),例如能
夠在3D世界中利用其他的渲染工具(例如HTML)開(kāi)展工作,以及能夠建立不與某個(gè)特定游戲相關(guān)聯(lián)的小型網(wǎng)絡(luò)空間。我認(rèn)為我們可以構(gòu)建一個(gè)基礎(chǔ)設(shè)施框架。
我們可以開(kāi)發(fā)一款第一人稱設(shè)計(jì)游戲,但是框架具有足夠的通用性,因而我們可以用它完成其他任務(wù)。
所有現(xiàn)有的軟件顯然都是針對(duì)第一人稱射擊游戲而設(shè)計(jì)的,但是人們
以后可以利用這些技術(shù)執(zhí)行其他一些有趣的任務(wù)。通用化總是要付出不菲的成本。你可以通過(guò)技術(shù)的專用化提高它的工作效率,但是在某個(gè)轉(zhuǎn)折點(diǎn)你可能會(huì)發(fā)現(xiàn)通用
化的成本并不是很高,而擁有一個(gè)更加通用的平臺(tái)所帶來(lái)的好處更加顯著。我認(rèn)為3D游戲目前正處于一個(gè)這樣的轉(zhuǎn)折點(diǎn)。
現(xiàn)在的我們與兩年前大不相同。當(dāng)時(shí)我們?nèi)匀恍枰紤]每一個(gè)很短的
幀來(lái)提高一點(diǎn)點(diǎn)性能。由于硬件加速的發(fā)展——尤其是輪廓加速的實(shí)現(xiàn),以及速度更快的CPU和容量更大的RAM的出現(xiàn),這種情況已經(jīng)不復(fù)存在。我認(rèn)為我們的
通用平臺(tái)的速度可以達(dá)到專用版本的90%以上,同時(shí)可以利用這個(gè)平臺(tái)處理大量其他的、有趣的任務(wù)。
FS: 你希望建立一個(gè)永久性的Quake世界,讓人們可以在其中進(jìn)行對(duì)話和交流吧?
John:
是的,甚至不一定與Quake有關(guān)。我認(rèn)為在利用介質(zhì)通信方面有很多有趣的工作需要完成。你會(huì)看到人們互相交流,在一個(gè)服務(wù)器上會(huì)面等。這方面有很多潛在
的發(fā)展方向。我不會(huì)將其稱為虛擬現(xiàn)實(shí),因?yàn)閂R已經(jīng)成了一個(gè)與死亡和毀滅聯(lián)系在一起的名次。從來(lái)沒(méi)有一家成功的VR公司,但是我認(rèn)為其中很多公司失敗的原
因都是當(dāng)時(shí)并沒(méi)有相應(yīng)的技術(shù)來(lái)實(shí)現(xiàn)他們的創(chuàng)意。在很多情況下,創(chuàng)造力和創(chuàng)新精神都會(huì)受到技術(shù)發(fā)展的限制。
Doom就是一個(gè)典型的例子。我們用了很多的聰明、才智和創(chuàng)造力才開(kāi)發(fā)出了Doom,但是所有這些聰明才智在五年之前并不能產(chǎn)生任何作用,因?yàn)楫?dāng)時(shí)的技術(shù)限制使得人們不可能開(kāi)發(fā)出像Doom這樣的游戲。有些時(shí)機(jī)是適合出現(xiàn)新的創(chuàng)新技術(shù)的。
我認(rèn)為在未來(lái)幾年中,將會(huì)出現(xiàn)很多這樣的創(chuàng)新技術(shù),例如3D界面的通用化。每個(gè)人都用一種含糊的、空想的方法預(yù)言互聯(lián)網(wǎng)和Web在未來(lái)的某個(gè)時(shí)候擁有一個(gè)3D界面。但是沒(méi)有人提出真正實(shí)現(xiàn)這個(gè)目標(biāo)所需要的具體細(xì)節(jié)。現(xiàn)在可能是實(shí)現(xiàn)這個(gè)目標(biāo)的時(shí)機(jī),但是也可能不是。
我很關(guān)注這些研究方向,而且我將從事所有這些研究工作。最終我將把那些最有前途的技術(shù)研究到底。
FS: 你是否建議年輕人上學(xué)?
John: 如果你是為了正確的理由上學(xué),那么學(xué)校將是一個(gè)很好的學(xué)習(xí)知識(shí)的場(chǎng)所。大學(xué)可能是一個(gè)信息極為豐富的環(huán)境。我現(xiàn)在回想我的大學(xué)生活,會(huì)覺(jué)得我浪費(fèi)了很多寶貴的時(shí)光。我當(dāng)時(shí)應(yīng)當(dāng)使用他們的圖形工作站和其他設(shè)備學(xué)習(xí)知識(shí)。
如果你只是為了獲得一個(gè)學(xué)位,以便找到一份滿意的工作,那么我并不支持。如果你上學(xué)是為了結(jié)識(shí)聰明人、拓展知識(shí)面和學(xué)習(xí)新知識(shí),那么我完全支持。有
些人在大學(xué)的收獲比我上面列出的多得多。至于我,我一直都是那種只會(huì)看產(chǎn)品手冊(cè)的學(xué)生。我喜歡這種學(xué)習(xí)方式,但是并不是所有人都喜歡這樣。我并不認(rèn)為大學(xué)
是一個(gè)不好的地方,但是我并不支持這樣的觀點(diǎn):“你必須上大學(xué),這是唯一的成功之路”。原因很簡(jiǎn)單,它并不是唯一的成功之路。
我認(rèn)為,至少對(duì)于一些年輕的、發(fā)展迅速的行業(yè)(例如互聯(lián)網(wǎng)和游戲設(shè)計(jì))而言,才能和一份表明你的工作經(jīng)驗(yàn)的簡(jiǎn)歷比學(xué)位更加重要。我從來(lái)不問(wèn)別人“你
是否有一個(gè)學(xué)位?”我更關(guān)心的是“你做過(guò)什么?”如果要從坐在課堂里參加考試或者在家里編寫游戲程序來(lái)證明你所擁有的天賦之間進(jìn)行選擇,我認(rèn)為后者不失為
一條合理的成長(zhǎng)道路。
FS: 最后一個(gè)問(wèn)題——你現(xiàn)在玩的是什么游戲機(jī)?
John: 我在家經(jīng)常玩的游戲機(jī)是Nintendo 64,但是除此以外我們還擁有Playstation、Saturn和其他一些游戲機(jī)。
Firingsquad 和 Gamers.com 非常感謝John和Anna抽出時(shí)間接受我們的訪問(wèn)。我們的這篇文章得到了廣泛的好評(píng),我們希望在不久的將來(lái)訪問(wèn)您所喜愛(ài)的其他程序員。請(qǐng)到我們的留言板上發(fā)表您對(duì)本訪問(wèn)的看法。