Michael Abrash:我是如何加入Valve 公司的

openkk 12年前發布 | 23K 次閱讀 程序員

        英文原文:Valve: How I Got Here, What It’s Like, and What I’m Doing

        譯注:本文的作者是 Michael Abrash(邁克爾·亞伯拉什),他是計算機圖形領域首屈一指的大師! 他是著名的計算機圖形編程書籍《Graphics Programming Black Book》 的作者,同時也是一位擁有高超編程技巧的開發者。Michale Abrash 的職業經歷非常豐富,他所效力過的公司包括微軟、Id Software、Intel 等,參與過的項目涉及操作系統開發、游戲開發、人工智能項目、處理器設計項目等多個領域,同時他當然也是一位杰出的軟件顧問和技術專欄作者。 Michael Abrash 于 2011 年加入 Valve 公司,從事游戲相關的研究項目。本文就是他在加入 Valve 后,對自己的職業生涯的回顧,以及對自己在 Valve 公司的工作情況的介紹,同時,此文也是一個為 Valve 招兵買馬的招聘貼!(以下是全文)

Michael Abrash:我是如何加入Valve 公司的

Michael Abrash

        一切都是從 Snow Crash 開始的。

        如果我沒有了解到 Metaverse (虛擬世界),如果我沒有被 Metaverse (虛擬世界)的構想深深吸引,如果我沒有意識到 3D 網絡化離現實是如此地接近,如果我不夠自信能有所作為,更重要的是,如果我不是發自內心地想去做,那我就永遠不可能有機會來到 Valve 工作。

        那是 1994 年,我當時已經為微軟工作了幾年。那年的某天晚上,我的女兒正在 Sammamish Plateau 的小教授書店翻看各種書籍,我偶爾就注意到了書架上的一本書:《Snow Crash》。 我拿起這本書,翻開就讀,然后就決定要買下,接下來,只用了一個晚上,我就狼吞虎咽地讀完了。看完書以后,我自己開始意識到,書中 80% 的內容都非常可行,我能在電腦上實現他們!我的心情是如此迫切,對于與做電腦相關的事情,我的急切一如既往。我是個職業科幻迷,這次,我有一個絕佳的機會 去自己實現一把科幻!于是,在微軟公司,我就著手開始實現一個基于網絡的 3D 引擎項目。

Michael Abrash:我是如何加入Valve 公司的

科幻小說《Snow Crash

        就在我心血來潮的時候,我也開始清醒地認識到,自己絕對不會有機會去啟動這么一個項目。John Carmack 到西雅圖來探望他的母親,當時他剛剛在 Id Software 搞出了 Doom,我趁此機會約他見面一起吃個飯,就在當地的泰國餐廳。我以前只見過 Carmack 一次,但是他之前就認識我,是因為他在剛開始學 PC 編程的時候,在《PC Magazine》上讀到過我的文章,幾年前,我們還在M&T BBS 上有過幾回文字交流。上一次我和他見面的時候,他問我是否考慮加入 Id Software, 這個邀請讓我覺得有點驚訝,因為我當時正在忙于 Windows NT 的交付工作,況且微軟在職工優先認證股權方面的待遇也非常地慷慨,所以我拒絕了他。這一次見面,我知道他還是想邀請我加盟,但是我覺得我還是會拒絕他,因 為我目前在微軟的根基已經挺牢固了,況且微軟目前在股權方面的待遇更加優厚了。出乎意料的是,John Carmack 跟我聊了兩個多小時,卻對邀請我加盟的事情只字未提。他只是談到了些關于可持續性的 Internet 游戲服務器,以及玩家自己設計關卡,并在他們自己的服務器上運行,還有就是如何把眾多的玩家都聚集起來,讓他們在一個共同的虛擬空間共同成長等等事情。我 意識到了,他所說的正是 Metaverse,雖然沒有 Neal (科幻小說《Snow Crash》的作者——譯者著)在書中描寫的那么迷人,但是卻真實得令人難以置信。有了這個鋪墊,當他最后攤牌邀請我加盟的時候,我無法再拒絕了,我不能錯過創造未來的機會。

Michael Abrash:我是如何加入Valve 公司的

John Carmack, 游戲編程領域的奇才

        與 John 一起工作,就仿佛是《黑客帝國》里的 Neo 一樣,把一種又一種武術技能灌入大腦。我曾經每天晚上都蹣跚走到 Id Software 的停車場,對我一天的工作感到震驚和不知所措。我每天都在試圖跟上 John Carmack 的節奏,我們在創建一個全新的編程領域:3D,基于 Internet 的客戶端/服務器多人游戲系統,模組,腳本,所有的這些,都只有我們兩個程序員負責完成!當然,思考了這些以后,我還要擠出半小時時間,開車回 Plano. 所有的事情都以光速前進,根本沒有時間停歇和回味。在我到公司的 16 個月后,Quake 就正式完成并交付發售了。不過這一切都是值得的,不僅僅是因為我在編程方面的突飛猛進,Quake 開創了一個時代,它可不是什么“最好的游戲之一”,它是一個突破性的技術(對此,需要說明一下,Carmack 是杰出的創新家,也是創新的源動力)。該游戲創建了全新的流派,擁有了自己的社區,并且時至今日仍然非常火爆。舉個例子,當我后來在 Valve 工作的時候,我發現有不少的員工,他們的職業生涯是從給 Quake 做模組,或者在 Quake 引擎的基礎上開發而開始的。像這些員工一樣,我也給我自己創造了未來 15 年的工作機會。

Michael Abrash:我是如何加入Valve 公司的

轟動一時的第一人稱 3D 在線對戰游戲《Quake》

        1996年,Id Software 迎來了兩位客人,Mike Harrington 和 Gabe Newell,這兩個人剛剛離開微軟公司,并創辦了一家叫做 Valve 的游戲公司。他們想購買 Quake 引擎的源代碼,來構建他們自己的第一個游戲。當時,整個 Id Software 上下沒有一個人對源代碼授權這種事情感興趣,甚至大家都懶得理這兩個人。鑒于這種尷尬的局面,我出面幫他們搞定了源代碼授權的問題。因為我和 Mike 以及 Gabe 在微軟的時候就互相認識,而且當我剛到微軟工作的時候,Mike 做了很多他份外的事情來幫助我,因此我才得以在微軟生存下來,所以我覺得我現在也應該幫助他們。事實上,源代碼授權這件事情后來演變成了雙贏的局面,Id Software 從授權中賺了很多錢,Valve 也在這個源代碼的基礎上開發了他們的成名作《半條命》(也就是完全不用再多介紹的網絡對戰游戲《反恐精英》的單機版——譯者注),不過,我本人并沒有從這 件事情中獲得經濟利益(希望以后會),因為不久之后我就決定從 Id Software 離職了。我當時的計劃是,離職后返回微軟工作,不過 Mike 和 Gabe 向我伸出了橄欖枝,問我是否愿意加盟 Valve,成為第三聯合創始人。經過很長時間的思考,我認為自己在小規模的游戲公司待的時間已經足夠長了,所以最后我決定返回微軟,加入微軟自然語言處 理組(NLP Group),并在那里工作了一到兩年。我在自然語言處理組的時光非常愉快,但是我也意識到,自然語言處理這個課題不是在我有生之年能夠徹底解決的。

        從 Id Software 離職后回到微軟工作,這個決定既不是我職業生涯中做出的最好選擇,當然也不是最糟糕的。Valve 的眼光則更加長遠,他們一直與我保持著聯系,并時不時地詢問我,是否做好準備加盟了?14年之后(14年!你知道 Valve 多有遠見和耐心了吧),我結束了我在英特爾 Larrabee 項目的工作,此時我已經知道 Valve 推出過很多很酷也很成功的游戲,并且有很多我很喜歡也很尊重的朋友在 Valve 工作。單憑這些理由,就足以讓我放手一試了。所以,在我毫不了解 Value 的企業文化和組織機構的前提下,我加入了 Valve,我只是希望這家公司多少能和我以前工作過的公司一樣,不至于讓我非常不適應。

Michael Abrash:我是如何加入Valve 公司的

Valve 公司的聯合創始人之一 Gabe Newell

        Valve是如此與眾不同

        我的職業生涯已經接近 30 年,其中我經歷了不同的公司和不同的工作環境。我當過軟件顧問,也做過技術專欄作家。我曾經在不同的公司獨立開發程序,也曾經與人合作一起開發游戲。我曾 經參與的項目包括:操作系統,驅動程序,固件開發,自然語言處理,控制終端以及處理器設計。我曾經為一系列的小型創業公司做過技術顧問,其業務涉及軟件和 硬件。我曾經為微軟工作,也曾經為 Id Software 工作,還曾經為 RAD Game Tools 工作。這些公司都很有趣,對于我來說,都給我帶來了寶貴的經驗,其中的某些經驗對我來說至關重要。總的來講,在技術的領域,我幾乎已經涉及過所有可能的領 域。

        但是 Valve 卻如此與眾不同。

Michael Abrash:我是如何加入Valve 公司的

Valve 公司著名的 Logo

        Gabe 跟我說過這么一件事:當他 20 世紀 90 年代在微軟工作的時候,他曾經做過一次調查,在用戶的個人電腦上究竟哪些軟件安裝得最多。當時排名第二的軟件是,Windows 操作系統。

        排名第一的是:Id Software 開發的游戲 Doom

        一個來自于德克薩斯 Mesquite 的 10 至 20 人的小公司,他們的創意所產生的軟件居然能夠超越當時世界上最牛的軟件公司(微軟)生產的產品,成為最受用戶歡迎的軟件。這一事實讓 Gabe 對軟件生產力的本質理解發生了改變。他從歷史的角度審視了組織結構這個問題,他發現,層級式的管理制度最早是從軍隊中衍生出來的,最早的軍隊利用這種體系 來進行管理,以便讓一個 1000 人的隊伍能夠機械地翻山越嶺,向敵人開槍。當工業革命發生以后,層級式的管理依然有效,因為工業化生產的精髓,就是把每個人看作一個機器的零件,然后確保 每個零件準確無誤地重復自己的工作。

        Doom 所造就的成功則完全不屬于上述的管理學范疇。因為在 Id Software 的案例里面,重復的工作幾乎沒有任何價值。Id Software 的所有價值都體現在了如何創造新的事物上。Doom 推出以后,會有成千上萬的程序員和藝術家會照著 Doom 的模式推出類似的產品(確實很多人這么做),但是沒人能夠企及 Doom 的高度。同樣,作為一個程序員,你可以完美地重現 非死book 或者 Google 搜索引擎或者 推ter 或者瀏覽器, 或者你可以再次開發類似于《俄羅斯方塊》、《憤怒的小鳥》或者《猜字游戲》、《開心農場》等等這些已經大紅大紫的應用。但是這樣做有什么意義呢?我的觀點 是:在 Internet 時代,復制一個軟件和大面積傳播軟件的代價幾乎為零,因此,只有軟件的首創者才能真正獲得所謂的良性循環。

        鑒于 Valve 現在多數的工作都是創新,傳統的那種層級式的管理模式就很難適用了。傳統的層級管理模式強調的是重復設計和制造同樣的產品,然后在不停重復的過程中一點一 點地創新(也許就是騰訊說的“微創新”吧——譯者注)。如果你想從起步就通過持續地創新進入所謂的“良性循環”,那么層級式的管理模式確實幫不了什么忙。 因為在層級式的管理模式下,公司的高層往往是創新的瓶頸,因為你很難指望這幫高層人士能夠去提出開發什么與現有產品大相徑庭的創新產品,他們的思路往往正 好相反,他們更信任現有的產品。實際上,Valve 能夠吸引那種熱愛原創的人們,給他們提供自由的創新平臺,這也是他們能留在 Valve 專心工作的主要原因。所以,在 Valve 沒有正式的管理人員,也完全沒有什么分層級的公司結構。

        現在,我可以負責任地告訴你,事實就是這樣。也許你不太相信剛才我說的話。是的,我一開始也不信。一個 300 人規模的公司,怎么可以沒有正式的管理層呢?但實際上,根據我的觀察,新人入職 Valve 以后,需要 6 個月的時間才能融入整個團隊,其間沒有人會告訴他們應該做什么事情,也沒有所謂的管理層對其進行復核,在公司里也沒有什么升職這種事情,甚至沒有固定頭銜 和職位(不過獎金和分紅不會少哦,如果公司合伙人發現公司市值上升的話)。新人自己對自己負責,也只有他們自己對自己負責,來安排他們自己的時間(這也正 是公司最寶貴的資源)去找出為公司做出貢獻的方法,然后加以實現。如果他們想做一些與眾不同的事情,也不需要經過什么管理層的首肯;他們需要做的僅僅是, 把辦公桌移動到新的項目組所在的位置(辦公桌都是帶滑輪的,開發用的電腦就放在桌上),然后就開始開發新項目了。(顯然他們要自行判斷坐在哪個位置比較有 利于開展工作,以及便于與他人溝通,但這些都是基于他們的常識判斷,沒有硬性規定他們必須要怎么做)。項目中的每個人都是獨立的貢獻者,他們每個人都需要 負責編碼、美工、關卡設計、音樂等等,甚至包括部分管理工作。這里沒有純管理或者純構架或者純設計的職位。公司的任何一個部分都能夠隨時快速轉型,因為沒 有管理層和職位的束縛,也就不用考慮什么重組計劃,重組預算什么的。Gabe 其實挺想讓公司有個專職管理層的,以處理那些管理方面的事情,但是沒有員工愿意簽約成為專職的管理人員。

        Valve 最令人難以置信的就是信任的程度。信任無處不在。Valve 所有的源代碼毫無疑問地可以被所有員工訪問,任何員工都有權限對代碼提交修改。任何員工都有權做他們認為值得的事情。Steam 工作室就是能夠體現這一點的最近的例子。公司的所有員工都能了解到公司是如何運作的,以及公司目前的狀況。公司對于員工來說就是透明的。與其他的很多組織 機構不同,Valve 打心眼兒里就不想讓行政因素成為員工與公司的壁壘。公司充分相信員工自己的知道該干什么,以及如何體現自己的價值。

        需要澄清的是,Valve 并不曾回避軟件產品需要開發和交互的事實。我們也是人,團隊內部也會對開發什么產品和如何開發產品產生爭吵(有的時候爭吵還相當激烈),但是大家都是互相 尊重的,并且最后一定能夠達成一致。當產品接近交貨時,也會面臨很大的壓力和繁重的工作流程,尤其是應付那些主機游戲廠商的產品認證期限(PC 游戲的交付會相對靈活很多,多虧了 Steam).有時開發團隊或者開發人員甚至會徘徊不前,做很多無用功,此時就要靠其他的同事們及時出手把他們拉回正軌。

        其次需要說明的是,不要認為在 Valve,員工是想來就來想走就走,而且能夠為所欲為。在工作時間,如果一個程序員自己決定要搬到一個獨立辦公室,然后開始織毛線帽,這當然是不 OK 的(除非這個程序員是想開發一款程序,能夠幫助玩家織虛擬的毛線帽,并且成功地賣掉這個產品賺錢,這樣就 OK 了)。員工提交了項目以后,這些項目就由員工自己負責。項目會有項目負責人,但是這些負責人不是正式任命的,也不涉及到什么榮譽或者獎金什么的。負責人是 暫時的,當項目更換時,前一個項目的負責人在新項目里也許就僅僅是新項目的一個普通參與者。負責人需要得到項目組的全體人員的認可,認同挑選這個負責人做 協調工作對項目最有利。每個項目組內部會自己制定項目測試、代碼檢入規則、開會的頻率(當然不會很頻繁),以及項目的開發目標和開發途徑。綜上所述,各個 項目組之間的情況會大相徑庭。

        你很難想象這樣的組織形式居然能夠維持正常工作,但實際上我們確實正常地在工作。我想這多少有點兒“進化”的意思。一方面,我們看上去混亂無 序,貌似低效,大的 IT 公司決然不會容忍如此的工作作風;另一方面,我們卻開發出無與倫比的產品,達到偉大的成績,這些業績也不是靠傳統的層級式模式管理的大公司能夠做到的。我 們讓游戲為自己說話,于是有了 Steam 項目(當然,Steam 項目也沒有正式的管理層)。Valve 的一系列成功,甚至是很多突破性的壯舉,都無不證明了這樣一個假設的正確性:唯有具有創造力的人才,才是獲得成功的關鍵因素。所以,以這些創新型人才為中 心建立起來的松散的公司結構取得了很大的成功!

        顯然,就像我們定義的那樣。Valve 是創新人才最適合的聚居地!

        我的工作

        那么,我個人的在公司的經歷如何呢?

        像我剛才提到的那樣,我剛來到公司的時候,對公司知之甚少。別人告訴我關于這個公司的信息,多少和公司的實際情況有所差異。我原以為我來了以 后,就應當有一大堆技術工作要做,比如 Source 3D 引擎中的可見性探測,或者 DotA2 中的戰場霧化計算等等(實際上這些工作我也做了,只是它們并不是主要工作,而只是一些有趣的小優化,日后我會寫寫這些方面的內容)

        除了做技術,我從公司的這些人身上得到的一些建議讓我覺得非常新奇,沒有人會告訴我應當怎么做,沒有直接的指示!我記得最近一次有人給我指示, 是我在 Source 3D 引擎小組工作時,那時整個 Source 3D 引擎小組都正在為游戲 Portal 2 做優化工作。我當時已經為這款游戲做了很多優化工作,對該游戲的各項細節也非常熟悉了,所以我建議 Jay Stelly,是不是讓我也加入 Portal 2 開發小組,為該游戲貢獻自己的力量。Jay 回復我說:“好啊!沒問題!但是你要知道,我們最終還是要把這個游戲賣出去的。” 當時我不太明白他的意思,但是經過幾次類似的討論后,我意識到了,他的意思是要讓我弄清楚,什么才是我能做的最有價值的事情。目前已經有很多有經驗有才華 的人在為 Portal 2 做優化了,而我,應該把精力放到更有影響力的產品上去,我需要做別人都做不到的事情。就是因為這段對話,再加上我和公司其他人交流之后,促使我徹底改變了思維模式,并最終將我領入了一個美妙的領域:可穿戴計算技術

        所謂的“可穿戴計算技術”,是一種移動計算技術,該技術能夠將計算機產生的圖像和真實世界的場景融合起來,并一同呈現在用戶的眼前(想象《終結 者》里面施瓦辛格扮演的終結者的視角吧,就像那樣。此外,Google 最新啟動的 Google Glass 項目,應該就是可穿戴計算技術的典型例子——譯者注)。我們已經潛移默化地從臺式機電腦轉移到了筆記本電腦,并從筆記本電腦轉移到了上網本和平板電腦,這 是一個計算設備往隨處、隨時特性發展的趨勢。邏輯計算終端無時不在,無處不在,這就是可穿戴式計算,我很有信心地預計,在未來 20 年內,該技術就會建立起工業標準,通過眼鏡或者接觸,或者其他我所知的更直接的神經連接的形式加以實現。我也非常有信心,平臺遷移的速度將遠遠低于 20 年,最慢 10 年,最快3-5年。因為該領域最核心的部分:輸入、處理/功率/電子器件尺寸,以及輸出,這些推進可穿戴計算的關鍵技術都在順利發展,盡管目前還有差距, 但是前景樂觀。

Michael Abrash:我是如何加入Valve 公司的

終結者的視角

        當然,硬件只是作為軟件運行的基礎。目前仍有像蜘蛛網一樣錯綜復雜的各種疑問和矛盾亟待解決。例如,如何讓軟件和硬件能配合工作,可穿戴式的 UI 如何設計,如何與可穿戴式輸入設備進行交互,計算機如何判斷用戶的位置,以及用戶視點的方向,當人類的視覺系統發現一對疊加的物體,其中一個是真實物體, 一個是虛擬物體,計算機將如何判斷接受哪一個拒絕哪一個?如何界定擴展現實的范圍,使之有效?需要什么樣性能的硬件設備來驅動軟件?諸如此類,種類繁多。 每一個問題都非常深奧,值得你不惜一切代價去解決(我希望我能再以后把所有的問題都列舉出來)。實際上,我需要提到的是,從廣義上來說,通過 Quake,我們弄懂了 3D 圖形學,C/S互聯網絡通信,文件格式,等等,一切都是白手起家做出來的。事實上,我認為可穿戴式計算技術,就像 Quake 一樣,很有潛力成為一個技術轉折點,從而改變以往的一切。

        實際上,當年我試圖開發的 Snow Crash 科幻游戲,該技術可被看做是我追求的方向上的潛在的巨大的進步。因果輪回,如果我當初沒有因為試圖開發 Snow Crash 游戲,從而加入 Id Software,那我今天也就不會在 Valve 做這些事情,甚至 Valve 也不會開展這些方面的研究。

        在我經歷了這么多事情,并完成了大量的研究課題后,我決定花些時間評估一下“可穿戴式計算”是否可以作為 Valve 公司的一個開發領域,這樣做對公司會有好處。我把我的研究和結論展示給公司里很多我尊重的人看,結果他們都一致反映,說“可穿戴式計算”是項目值得一試。 其主要的理由是,“可穿戴式計算”應該先構建出一套真正的原型,以供搜集信息,然后才評判項目是否能夠成功。除此之外,大家就沒有其他的意見和建議了,并 且我也不需要獲得什么“官方認可”。一旦我搜集到了足夠的反饋,并達到了我滿意的程度,我就直接啟動了項目。

        停下了來想一想我剛才說的,然后在琢磨琢磨你自己的工作。在 Valve,只要我覺得這個事情是有意義有價值的,不出一個晚上,我就可以開啟這個項目!酷不酷?

        特別說一下,這個項目現在還是“研發”階段,目前還不到形成產品的程度,而且很可能在很長一段時間里都無法形成最終的產品。所以,拜托不要再傳 什么“在 E3 上會推出 Steam 眼鏡”這種謠言了。目前我正在對這個有趣且有前景的項目開展研發工作,并且在研究上的比例要多于開發。在 Valve 做事的方法就是,動手實踐,然后觀察結果。實驗失敗并不是災難,關鍵是我們要如何才能快速發現問題,從中吸取教訓,并繼續向前,開展下一次的實驗。這個過 程一旦開始,其推進是快速的,并且是迭代的。實驗能進行到什么程度,發展到多遠,這需要取決于我們從實驗中得到的經驗和教訓。

        這同時也取決于誰來做這些實驗。團隊不停地成長,朝好的方向發展,但是需要實驗的問題也種類繁多,我們需要更多的天才加盟。大量的聰明人,硬件 工程師,軟件工程師,固件工程師,游戲設計師,UI 設計師,或者是優秀的程序員和解決問題的高手,工業設計師,機械工程師,電氣工程師,系統程序員,電腦視覺工程師,光學工程師,無論什么類型的工程師,我 們都很需要。

        也許就是你!

        如果你有興趣深入到“可穿戴式計算”課題中去,那么你就是我們需要的人,我寫這篇帖子正是為了你!我們需要你,我覺得你也有可能樂意加入我們。不信的話,再讀一讀這個帖子你就知道了。給我發 email 吧,我們就可以共同戰斗了!

        就算我的項目無法吸引你,你也應該仔細考慮一下是不是要加入 Valve。我們是一家杰出的游戲公司,也是一家優秀的數字化發行和傳媒公司,并且還有很多優秀的特點!我們這里開展各種各樣的項目(事實上,你單從我開 展的“穿戴式計算”項目,就可以看出我們公司的項目范圍有多廣),需要各種各樣的技能,我們需要動畫師,藝術家,關卡設計師,音樂和音效設計師,編劇,網 絡應用程序員,數據庫程序員,其他領域程序員,研究型心理學家,數據挖掘和機器學習專家,統計學家,用戶體驗工程師,會計,開發者相關人員,各種硬件工程 師等等,我們需要的人才甚至不止上述這些。如果你是一流的經濟學家,請研究一下我們吧,你會有一個包含四千萬用戶的沙箱,我保證你絕不會對這個規模的案例 感到缺乏挑戰。

        如果 Valve 讓你覺得還算對胃口(未來我會發一篇帖子,專門討論 Vavle 在招聘時如何招人的細節),那么就趕快飛奔來聯系我們吧(記住要跑過來,不要散步散過來哦)!

        我們已經迫不及待地要跟你交談了!

        英文原文:MAbrash   編譯:伯樂在線 – 黃小非

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!