Sunday, December 04, 2016

譯文:Valve: 我怎麼來,它是怎樣的公司,及我在做甚麼 (Michael Abrash)


左至右分別是: Michael Abrash, Palmer Luckey (Oculus 共同創辦人), Gabe Newell (Valve 共同創辦人) 2012 年相片

前言:今 (2016) 被稱為 VR 元年,同時有 Oculus, HTC, Samsung 發表 VR 產品。其中一位幕後推手 MichaelAbrash 早在 2012 年剛去 Valve 這家遊戲公司開始研究「穿戴式計算」(wearable computing) 時,就為整件事鋪路了。

Michael 2014年被 John Carmack 邀去 Oculus 擔任 Chief Scientist。而 HTC 後來也和 Valve 合作推出 HTC ViveMichael VR 革命的影響不可謂不大。從這篇4年前的blog就可看出些端倪。4 年前剛讀到時就想翻譯,讓更多人能了解科技發展背後的脈絡及精神。不過後來兩個孩子先後出生。現在終於有機會完整翻完,和大家分享。

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

一切都要從《潰雪 (Snow Crash) 開始說起。

如果我從未讀過這本書並愛上「超世界」 (Metaverse) 概念。如果我沒意識到網路 3D 世界即將發生。如果我沒升起我可以實現它的念頭。更重要的是,我想把它做出來,我絕不會踏上最後來到 Valve 的這條路上。

1994 年我在微軟已工作了兩年。那年某個傍晚,當我帶女兒正在Sammamish 大道的「小教授書店」看書時,剛好看到架上的《潰雪》。我拿起來開始讀,決定買下來,後來一晚就啃完它。我當時就開始想,我應該知道怎樣實現裡面 80% 的內容,而我非常渴望做這件事,可能是自我接觸電腦以來,最想做的事了。我一輩子都在讀科幻小說,而這完全是實現科幻小說的大好機會。所以我開始試著在微軟內進行一個網路 3D 引擎的計劃。

差不多那時候,我意識到我大概無法在公司內做這件事。當時Id Software John Carmack 剛完成「毀滅戰士」 (Doom) ,也恰好來西雅圖看媽媽,我們就到「泰廚」(Thai Chef) 晚餐。我和 John 只見過一次,但他早年學程式時,透過我寫的PC 圖學文章認識我。我們幾年前亦在 M&T BBS 上交換過一些po文。我們上次碰面時,他令我驚訝的問我是否想來 Id 工作。當時我說「不」,因為我們正準備讓 Windows NT 上市,而微軟也給我優渥的股票選擇權。我知道這次他會再問,我也知道我會再拒絕他,因為我陷在微軟更深了,也有更多的股票選擇權。不過 John 頭兩小時都未提及此事。他只談著在 Internet 上持續運作的遊戲伺服器,人們如何自己建立放在自己伺服器上的關卡,也談到怎樣有機會串聯這些伺服器,讓玩家可以從一台移到另一台,而過程中擴大這個虛擬世界的規模。我意識到他談的其實就是「超世界」-- 雖然不如 Neal (譯按: 《潰雪》作者 Neal Stephenson) 描述的亮麗,但是,令人驚訝且無法置信的,他提的構想是可行的。當他最終問我是否願意來 Id 時,我意識到我不可能錯過這個讓未來實現的機會。

John 共事有點像「駭客任務」的劇情:Neo 的腦袋載入一個又一個的功夫招數。我一次次傍晚,疲憊而步履蹣跚的離開 Id Mesquite Black Cube 辦公室的停車場,之後再開半小時的車回 Plano 的家。因為試著跟上 John 的速度,構思出整套新的程式世界 – 3DInternet 主從式 (client-server) 連線架構、玩家模組 (mods)、劇本編譯 (scripting)一切的一切,是如此讓人震撼,而我們是當時僅有的兩位程式設計師。一切都以光速進行著,一點停下來消化的時間都沒有 ── 「雷神之鎚」(Quake) 在我到後 16 個月就出品了。一切都非常的值得 ── 我不僅成為一位更好的程式設計師,「雷神之鎚」也成為一款經典遊戲。雖然老實說,並非有史來最好的遊戲,但它的的確確在技術上做了重大突破 (要說明的是,John 是主要的創新者及推手)。它後來也催生整個新的遊戲類型及玩家社群,一直到今天仍是如此。舉例來說,當我開始在 Valve 工作,我發現一堆人的職業生涯,都是從做「雷神之鎚」的玩家模組 (mod) ,或參與「雷神之鎚」引擎延伸的遊戲製作開始的。某種角度來說,我也替自己創造了 15 年後,未來的工作。

1996 Mike Harrington Gabe Newell Id拜訪,當時兩人正準備離開微軟創辦 Valve,並希望取得「雷神之鎚」的原始碼授權來做第一款遊戲。當時 Id 沒人對授權特別的興趣,甚至連聊聊的意願都不大有。不過過去我在微軟就認識 Mike Gabe (事實上,Mike 在早年我剛開始接微軟的案時,曾撈過界大力幫我 – 若非他的幫助,我頗懷疑當年能否在微軟生存 – 所以某方面來說,那是這個故事真正的起源)。所以我就跳進去協助他們取得授權。事後證明這對所有人來說都是很好的事:Id 從授權賺了很多錢,Valve 透由這原始碼做了《戰慄時空》(Half-Life) – 不過我個人倒沒得到什麼好處 (除了很長期來說),因為沒多久我就決定離開 Id。我當時的計畫是回到微軟,但 Mike Gabe 問我是否願加入 Valve 成為第三位創辦人。久思後,我覺得我在小遊戲公司已體驗夠了,所以加入了微軟的「自然語言組」(Natural Language Group)。我也花了一兩年不錯的時光學習自然語言,直到我發現這大概不是我有生之年可解決的問題。

回微軟大概不是我做過最好的決定,但故事也還沒結束。Valve 看事情的角度很長遠,幾年下來Valve 許多人都和我保持連絡,每隔一陣,某人就會問我是否準備好要加入他們。十四年後 (我剛有說 Valve 眼光長遠嗎?),我在 Intel Larrabee 工作告一段落。我知道 Valve 在做些很酷的遊戲,也非常成功,我也認識那邊不少我喜歡也尊敬的人,這就足以讓我一試了。所以在對它的文化或組織幾乎一無所知下,我就來了,預期應該和過去的工作差不多。

我完全被嚇到了。


Valve 與眾不同

過去 30 年我在許多公司工作過,也待過很多不同的環境。我曾當過程式顧問,也替雜誌寫作並出過書。我曾獨立工作也和夥伴共事過,待過不同的遊戲公司。我做過作業系統、驅動程式、軔體、自然語言分析、遊樂器、及處理器設計。我曾在不同的新創公司擔任顧問或工作,軟硬體都有。我曾在微軟工作,待過 Id,也在 RAD Game Tools 工作。這些經驗都很有趣,讓我學到很多,其中一些令人全然驚豔。簡單說,我算在技術領域夠見多識廣的。科技能提供的各種面向,我大概都見識過。

Valve 與眾不同

Gabe 是這樣形容的:當他 90 年代初還在微軟時,他曾籌劃一個市調以了解使用者的 PC 上究竟裝些什麼。安裝第二多的是 Windows

第一多是 Id 的「毀滅戰士」。

當一個在美國德州 Mesquite這種小地方,10 來位 20 歲小夥子做的遊戲,安裝數超越世界最大軟體公司的產品時,就表示生產力已發生根本的質變。當他檢視著組織發展史時,他發現階層式組織是為了軍事目的而設計的:讓 1,000 位士兵名正言順的爬過一座山,好被敵人射下來。工業革命後,階層式組織依然是個好模式,因為主要目的是把每個人當成一個模組,持續的,一遍遍的做重覆的事。

「毀滅戰士」的成功告訴我們時代已不同了。現在重複同件事第二遍的價值很低:創造性工作的所有的價值,幾乎都在第一次就發生。一旦「毀滅戰士」上市,上千位程式或美術都能做出類似的東西 (許多也的確做了)。但沒有任何一個還能產生類似的影響。同樣的,如果你是寫程式的,你大概完全有能力開發一套臉書或 Google 引擎,Twitter 或瀏覽器。你也大概能做出「俄羅斯方塊 (Tetris)」、「憤怒鳥 (Angry Birds)」、「Words with Friends」或「農場鄉村 (Farmville)」幾百個成功遊戲任一款的再製品。但這創造的價值很少,而這就是重點:在網路時代,軟體有近於零的複製成本及大量的網路效應,所以先行者有能獨大的正向循環。

如果產品大多數的價值發生在開始的創作,那為了不斷產出同樣東西的階層式組織,就沒有特別優勢了。重要的是能成為第一個推出者,且能透過一系列持續的創新,將你的產品置入一個正向的回饋循環。階層式管理對這毫無幫助,因為最頂端的人會成為創新的瓶頸。沒甚麼理由可以預期他們在創造和現有產品有顯著差別的新產品上,有什麼特別的創意,事實上恰恰相反。所以 Valve 被設計成一個能吸引這些開創第一步人才的公司,讓他們去發揮,也讓他們願意留下。也因此,Valve 沒有任何正式的管理階層或階級制度。

現在,讓我們來說實話:內心深處你應該不相信我最後那句話。至少我第一次聽到時就不信。一個300人的公司怎麼可能沒有管理階層?我的觀察是新進人員大概要六個月才能完全接受沒人會告訴他們該做什麼,沒有管理者會評鑑他們,也沒有所謂的升遷,職稱,甚至固定的身份 (雖然的確有基於同儕評鑑及你對公司創造的價值,而決定的優渥加薪和分紅)。這是員工本身的責任,也只有自己能負責,來規劃公司最重要的資產:自己的時間 -- 透過釐清自己做什麼對公司最有價值,然後去做。如果某人決定做不同的事,不需說服任何人,只要把桌子移到新團隊就可以開始工作了 (每個桌子下都有滾輪,而電腦就連在桌上)(當然也要選個適當的時機,並和兩邊的團隊協調好。不過這是常識,不是規則,也沒有任何實施的強制性)。每個團隊成員都是獨立的貢獻者,透過程式、美術、關卡設計、音樂等等來貢獻己力,包括團隊領袖也是。沒有一個專責或純粹的管理者、架構師、或設計師的角色。公司的任何部分都可隨時改變方向,因為沒有經理會來保護自己的人或領土,也不需要計畫組織重整,或協調預算。有些事創辦人 Gabe 非常希望公司去做也並沒發生,因為沒人自願要做。

最難相信的是對人信任的程度。信任到處都是。所有 Valve 的程式碼都可被任何人透過 Perforce 來看,而 Valve 的任何人都可取得或修改任何東西。任何人都可隨時開始他們覺得該做的事; Steam Workshop 是最近的實例,公司對所有員工都是透明的。不像很多組織,Valve 並不為員工預先設立組織壁壘,它只是相信他們,然後不去煩員工,讓他們可以創造價值。
但要澄清一下,Valve 並非魔術般的拒絕開發或發行產品。我們都是人類,所以團隊有時也會為該做什麼或如何做而爭論 (有時很熱血激昂的)。不過人們都很尊重彼此,最終也會得到可運作的共識。產品快上市前也會有壓力及更嚴謹的流程,特別是遊樂器的認證常有些很硬的 deadline (但感謝 SteamPC 上市的時間就較有彈性)。有時人們或團隊也會明顯陷入一些錯路,這時就要透過同輩來指出並協助他們回來。

而且,也別以為大家是每天隨機進來做任何他們想做的事。若一個程式決定到某空房去揮動草帽,這當然不是 ok 的。(雖然若他們是想做讓人製作並販賣虛擬草帽的小工具,這就沒問題)。人們對專案有所承諾,而專案是自我組織的。雖然的確也有組長 (leads),但他們是透過非制式的共識產生的,而這也不會帶來額外的錢或名聲,通常也是暫時的:一個組長到下個專案可能就恢復為個人貢獻者。除了大家覺得讓他們做協調對專案有幫助外,組長沒有任何額外的權威或權力。每個專案都自己的測試或程式碼提交 (check-in) 規則,多常開會 (一般來說不常),及目標為何、如何實現目標。而每個專案都不同。

很難相信這能運作,但它的確可以。我的理解是很大一部份像是演化:混亂,且有很多一般公司沒有的低效率,但最終有非常出色的成果:一些階層式管理下永遠看不到的產出。Valve做出的遊戲說明了一切,而 Steam 的成功也是一例 (Steam 也沒有正規的管理)Valve 一長串的成功,很多都是真正具有開拓性的,證明創造性人才是成功關鍵強而有力的證據。而 Valve 在這群人周圍建立的組織型態也相當的成功。

而且,幾乎就定義來說,對適當的創造性人才來說,這是非常好的工作環境。


我在做什麼?

所以,我的個人經驗呢?

如先前說的,我剛來時對 Valve 所知甚少,接觸後才發現公司一點都不像我想的那樣。原本我預期會被指派相當多的技術工作,例如 Source 引擎內的可視性判斷 (visibility determination),或者 DotA2 中霧的計算 (我的確有做一點工,但是個小插曲,之後也許會再介紹這個有趣的優化)

我得到的建議卻是去看看一些他們覺得我可能感興趣的領域,而全無任何直接指示。我得到最像指示的是當 Source 團隊在處理 Portal 2 的效能優化時,因為我過去做過許多優化,所以和 Jay Stelly 提出也許我能參與時,Jay 說:「是啊,你可以做這個,不過我們還是會上市」。幾次類似討論後,我意識到他的意思是:我該認真思考這是否是我能做的最有價值的事。已經有很多人在做了,較有意義的因此是思考有哪些高價值但沒人做的事我可以做。這段思考,及和公司同仁一連串的討論,讓我開啟另一種思考,最終帶我到一個令人驚訝的領域:「穿戴式計算」 (wearable computing)

所謂「穿戴式計算」,我指是電腦產生的圖像和現實能無縫的呈現眼前的行動計算;沒有另一個要握在手中的獨立顯示器 (想像「魔鬼終結者」的視野)。整體的大趨勢隨著我們已從桌機到膝上型到筆電到平板,基本上運算力將能在更多地方,更多時候出現。合理的終點因此是計算力隨處都是,也隨時都有,也就是「穿戴式計算」。我完全不懷疑 20 年後這就是標準,可能透過眼鏡或隱形眼鏡來實現,但就我所知某種更直接的神經連線。我也很確定這種平台移轉會在 20 年內發生,幾乎很確定 10 年內,但也可能 3~5 年內。因為一些關鍵領域,輸入、運算、電力、裝置大小、輸出等,這些穿戴式計算需要的元件,都令人滿意的在成形中。雖然還是有很多待釐清部分。

當然了,硬體能多有用還是要看上面跑的軟體,而這邊仍有一大塊互相關聯的困難及問題需要解決,以讓這個整合的軟硬體系統運作。例如:穿戴式 UI 該長甚麼樣子,而它要如何和穿戴式輸入互動?電腦該如何知道你在哪及你在看甚麼?當人類的視覺系統看到兩個重疊的影像,一個真實一個虛擬,它會接受哪個而拒絕哪個呢?

而擴增實境 (augmented reality) 怎樣才會有用?若是有用的,怎樣才是它能在近期內,便宜實現的方法?我們需要怎樣的硬體以讓軟體可發展?及更多的問題 -- 不管你往哪邊看,都有些很深且值得研究的挑戰 (我希望近期能再寫些相關文章);事實上,這讓我想起的 (但觸及層面更大的) 是「雷神之鎚」。當年我們要試著釐清 3D 圖學、主從式網路連線、檔案結構、等等一切,都是從頭開始。的確,我覺得如同「雷神之鎚」一般,這很可能成為一個改變一切的技術反折點。

事實上,這個技術可能是通往《潰雪》的一大步。過去做的還是會回來:事實上,若非因為《潰雪》一開始時將我的職業生涯導向 Id,我現在不會在 Valve 做這些事,Valve 本身甚至可能也不會發生。

當我把這些仔細想過並做些研究後,我的看法是:隨著穿戴式運算發展,Valve 是否該涉入此領域是值得探討的。我把我的看法和許多我在 Valve尊敬的人討論後,共識是探索穿戴式運算是值得做的實驗,但仍需要結構性的執行這個實驗,以致可以明確的判準成功或失敗。這樣不論成敗,我們都能得到些有用資訊。但沒人告訴我該怎麼做,而我也不需要得到官方認可,所以當我取得足夠回饋及想得讓自己夠滿意後,我就直接開始這個計畫了

想像一下這件事,也想一下你自己現在的工作。這專案幾乎就是一夜發生,而主因是這是我覺得能在Valve 做的最有價值的事,這是多酷的一件事啊?

還是要說清楚,這是研發工作 (R&D),這階段並不牽涉到任何產品。而短期內應該也不會是個產品,即使未來有這可能。所以,拜託先別亂傳在 E3 展將出現「Steam 眼鏡」。這只是踏進一塊有趣且極有潛力領域的初步探索,其性質像是研究更甚於開發。Valve 的做法是做些實驗並看看我們能學到甚麼。失敗是可以的,只要我們能快速看出失敗,從中學習,並繼續探索,並把所學應用到下個實驗。這過程是非常快速且反覆的,而我們才剛開始。這個探索會走到哪或走多久,還要看我們學到些甚麼,也決定於誰在做這個研究。我們團隊已有些成長,也有個好的起頭,但還是有很多事要做,而我們需要更多聰明的人,很多聰明的人。做硬體的、做軟體的、做韌體的、遊戲的、介面的。就是很棒的程式開發者及問題解決者、工業設計師、機械工程師、電機工程師、系統開發者、電腦視覺的、光學工程師,你想得到的都需要。

也許你。

如果你對穿戴式計算感到興奮,而你的屬性也對,你就是為何我要寫這篇文章的原因了。我們希望你能過來 -- 而你也該想來。把這邊文章再讀一遍看看是否如此。寫封 e-mail 給我,我們可以繼續討論。

就算我的專案無法讓你興奮,你還是該認真思考來 Valve。我們是很棒的遊戲公司,很棒的數位發行平台、也是很棒的社群公司,及更多;我們有各種專案 (我在做穿戴式計算就該給你一點專案廣度的想像),而也需要各種能力,包括但不限於動畫師、美術師、關卡設計師、音效及音樂人才、作家、網站設計師、資料庫開發者、及各式各樣的程式設計師,研究心理學家、資料探勘及機器學習專家、統計學家、使用者體驗設計師、客戶管理者、開發者關係專員、各種的硬體工程師,及更多。如果你是第一等的經濟學家,請一定要來看看。你有 4,000 萬使用者的測試環境,而我保證你絕不會感到無聊!

Valve 聽來有趣而你也覺得適合自己 (未來我會再寫一篇 Valve 雇人時在找甚麼),那就別用走的,跑來聯絡我們吧! (http://www.valvesoftware.com/jobs/job_postings.html)

我們等不及要和你聊聊了!