1. 程式人生 > >Epic Games創始人Tim Sweeney:頭戴顯示技術將顛覆電子產業

Epic Games創始人Tim Sweeney:頭戴顯示技術將顛覆電子產業

《程式設計師》:遊戲引擎已發展許多年,請談談未來的遊戲引擎和Unreal的發展方向。

Tim: 從1980年代開始,主機已成為家庭遊戲的主平臺,以後大約每隔5年,全新一代的主機就會出現,以趕上晶片速度指數發展的步伐。但最新一代主機 PlayStation 3和Xbox 360都已問世六七年了,硬體處理速度似乎開始停滯不前。而PC則代表了最新的硬體發展,每年都會在效能上得到提升,這一變化,也在影響遊戲產業,遊戲引 擎與遊戲開發公司開始同時兼顧多個平臺的發展。Unreal 3在2006年隨著上一代主機推出,不論新一代的遊戲主機是否會在近期出現,我們在遊戲引擎方面已做好了準備。

未來的遊戲引擎將實現電影級的畫面效果,那時回頭再看今天的遊戲,彷彿只是木偶劇。但要真正實現這個目標,也許還需要十五年時間。

另一方面,遊戲開發團隊越來越大,成本越來越高,未來的遊戲引擎還需要提高開發效率。如果使用Unreal 4,那麼過去需要兩年或者更多時間才能完成的工作,將有望在一年內完成。

《程式設計師》:當未來有一天,硬體效能足夠強大,不再成為遊戲的瓶頸時,還有什麼因素會制約遊戲的發展?

Tim: 我們知道光線應該如何通過真實的場景,也知道如何模擬物理運動,因此當計算能力足夠強大時,我們將能夠完全模擬現實。當目前的處理能力再提高几百或上千倍 時,我們也許就能擁有完全現實般的感受,我認為未來這方面將不再是遊戲的瓶頸。而真正的制約在於模擬人的行為,遊戲中通常都會包含通過人工智慧操縱的人 物,即使擁有無盡的處理能力,我們還是不能完全模擬人的語言、思考和互動。我認為這些問題,需要依靠科學上的突破才能解決,也許是通過一種全新的演算法,也 許要等到我們完全理解大腦的工作機制,並能通過計算機模擬時才可能實現。

《程式設計師》:John Carmack目前對研究頭戴顯示技術(HMD)非常熱衷,你認為這項技術會改變遊戲領域嗎?

Tim: 我認為這項技術不僅會改變遊戲領域,還將顛覆整個電子產業。第一代頭戴顯示技術並不成熟,體積大、佩戴不方便,這樣的裝置只對遊戲玩家才有意義。但我們能 想象,幾年後,當頭戴顯示的質量將變得足夠高,佩戴又很便捷時,你將不再需要任何其他顯示裝置。無論電腦、電視還是手機螢幕都已可有可無,你只要擁有一個 頭戴顯示器便能應對所有場景。

我認為只需要5~10年時間,這項技術就能發展成熟、擁有出色的現實效果和低廉的價格。從另一個角度看,目前的高階電視也十分昂貴,如果有機會將電視的功能整合到相對廉價的頭戴顯示器中,僅從經濟性來說,整個產業也會朝著這個方向發展。

另 一個與之相關、可能改變遊戲領域的技術是無處不在的感測器,將類似Kinect的體感技術與頭戴顯示結合起來,使用者便擁有了一個完全基於手勢的介面,它 有更豐富的表達能力,將遠遠勝過用手指操作手機。因為目前我們在手機上的操作被物理螢幕束縛,當擁有完全基於手勢的介面時,物理尺寸將不再對我們產生制 約,你可以擁有更大的鍵盤,或者通過手勢在遊戲中更精確地進行操控。

《程式設計師》:增強現實將怎樣影響遊戲領域?這項技術進入我們的生活還有哪些障礙

Tim:增強現實技術可以歸為兩類:一是將計算機資訊轉化成影象,這正是Epic所做的;另一類是將現實世界的圖景傳輸給計算機,讓計算機理解我們周圍的世界。

增強現實技術,將使遊戲中的現實感大幅提升,一方面使用者可以身處真實場景,另一方面還可以通過在雙眼前顯示獨立畫面,令他們得到得前所未有的3D體驗。當顯示解析度足夠高,重新整理又足夠快時,使用者將很難分辨自己到底身處真實世界還是幻境。

我認為,增強現實得到應用最大的障礙在於如何引導市場。如今,我們的市場由電視、遊戲主機、計算機、智慧手機和平板等組成。但在未來,這些分割的市場很可能被一種更簡單的增強現實裝置所統一。這意味著,當前的商業巨頭或被變革摧毀或在變革中重生,就像個人電腦改變了大型機,智慧手機和平板改變了PC產業。在 這次轉變中成功的企業可能會成為下一個蘋果,現有的商業巨頭們若不重視這項技術,將來可能會被遠遠地拋開。然而,目前市場領先的科技企業並不甘心立刻拋下 自己賺錢的產品,將未來押在一項尚不十分明朗的技術上。

目前我們擁有的技術,距離打造理想的增強現實裝置其實已非常接近。我們需要微型高解析度顯示屏,還需要複雜的光學透鏡,使我們的雙眼總能在合適的位置聚焦。我認為,假如科技企業真正投入精力進行研究,5年左右就能實現。

《程式設計師》:請談談HTML5,以及未來的Web遊戲

Tim:HTML5、 JavaScript和瀏覽器技術成熟的速度非常快,我很高興看到這一點。過去我們若想開發Web遊戲,需要利用Adobe Flash這項專有技術,它在瀏覽器相容性方面存在許多問題。HTML5顯然是一種開發Web應用更自然、相容性也更佳的方式,我相信它會改變我們開發 Web遊戲的方式。

以往我們看到的大多是小團隊開發的簡單2D Web遊戲,而如今,我們已擁有一套開發複雜3D Web遊戲的技術——通過Unreal開發的遊戲可以移植到Web;另一些開發工具,如Clang可以將C++程式碼編譯為LLVM位元組碼,再交叉編譯為 JavaScript程式碼。

因而從理論上說,你可以將所有複雜的C++程式轉變為可以跨瀏覽器執行的Web應用。一旦擁有這樣的能力,意味著你能將所有通過現代遊戲引擎開發的遊戲交叉編譯並部署在瀏覽器上。Web將作為一個獨立的平臺,擁有與PC、移動終端相同的地位。

儘管目前JavaScript和瀏覽器執行效率較低,Bug也較多,但我認為未來的一兩年,在瀏覽器開發者的努力下,這種情況將得到改善。目前 Mozilla和它的Firefox在這方面處於領先,它們在瀏覽器中完成了非常健壯和高效的JavaScript實現,其他瀏覽器廠商(除了微軟對 WebGL說“不”令人費解)也正在迎頭趕上。

《程式設計師》:你如何開始程式設計,又是怎樣進入遊戲開發領域的?

Tim:我10歲第一次接觸計算機,在那之後,我絕大多數清醒的時間都被程式設計佔據了。計算機能執行我的指令,並總能得到我所期望的結果,這真是件奇妙的事!我小時候也做過一些更“實實在在”的東西,比如小馬車什麼的,但既難做,還不按我期望的方式運轉。程式則不同,你想寫多複雜的程式碼都可以,計算機總能執行。而且 相對於世界上最有趣的程式,最複雜的機械可要簡單多了。

小時候我也花了不少時間玩電子遊戲,但學習程式設計後,就很少再玩,而是開始編寫它們了,因為編寫遊戲能帶給我更多樂趣。在我1988年進入大學前,早就是經驗豐富的程式設計老手了。在挑選專業時,我沒選擇再“正式地”攻讀一次電腦科學,而 是選擇了機械工程,這是一個完全不同的領域,我在這裡學到了很多數學知識。

我並非生來就是遊戲程式設計師,我曾寫過不少型別的應用,像BBS、電子表格、字處理軟體,在我專業從事遊戲程式設計之前,還寫過許多小遊戲。1991年,我的一個遊戲在鄰里的小朋友間很受歡迎,這給了我很大的信心。我決定將其釋出,並獲得了成功,Epic公司也從此建立。

我最初通過Apple II手冊自學Basic程式設計,這是我頭十年的寶典。到了1990年代早期,Michael Abrash在《Dr. Dobb’s Journal》上撰寫了一系列介紹計算機圖形和紋理程式設計的文章,在這之前,我從來沒想到可以用計算機渲染真實的3D環境。從那之後,我開始痴迷於3D編 程,並開始建立第一個Unreal引擎。如今,我幾乎每年都會與Abrash交流,他是一個聰明絕頂的人,與像他這樣天才交流真是妙不可言,他們思考的方 式總是與眾不同。

Tim學習遊戲程式設計的工具原本是他哥哥送給父親的生日禮物

《程式設計師》:對你影響最大的人是誰?

Tim:那肯定是John Carmack,是他發明了現代3D遊戲,他的Wolfenstein、Doom和Quake引擎都是計算機圖形領域劃時代的作品。在Carmack之 前,用價值百萬美元的計算機也只能生成低質量的3D場景,而他令低端PC也能執行3D遊戲。在這個領域,沒有人比他的貢獻更大,是他將計算機從2D時代引 入了3D紀元。

《程式設計師》:你是如何提高自己程式設計技能的?

Tim:一旦我有了新想法,就會試著開發原型,例如新的3D演算法或語言處理系統,這些挑戰自我的嘗試並不總能成功,但能從中獲得樂趣並提升技能。另一個有趣的學習 方式是嘗試新的程式語言。學習一門新語言,意味著嘗試一種新的思考方式,這讓你能從另一個角度觀察問題,即使是曾經遇到的老問題。每個人都熟悉C++,但 學習JavaScript這樣的Web程式語言,學習Haskell、ML這樣的純函式語言也很有意義。在這個過程中你將學到許多有價值的技能,能將其應 用在C++這樣的常規程式設計中。Haskell是我最喜歡的程式語言,它迫使你用全新的方式思考問題,我建議每位不甘平庸的程式設計師都來學習它,即使你並不真 的用它編寫實際應用。在學習的過程中,你將掌握一些非常高階而有趣的技能,進而應用到C++專案中。

《程式設計師》:對於一款成功的遊戲,你覺得哪方面最重要,是劇情、美工還是特效?

Tim: 我覺得單獨一方面成就不了一款成功的遊戲,看看成功的高階遊戲你就能發現,它們都擁有流暢的操控設計、出色的顯示和聲音、精美的畫面,這些因素結合在一起,你才會覺得一切正常。若在某方面存在短板,都會讓你覺得遊戲不能令人滿意。在Epic,我們也是很努力地做到調和不同小組,讓每款遊戲並不只是單獨被某方面所強勢驅動。打造一款遊戲需要設計師、程式設計師、藝術人員和製作人緊密合作,在這方面有經驗的公司才能獲得成功,那些由程式設計師或藝術人員主導的遊戲, 往往會存在問題。

《程式設計師》:對於希望從事遊戲開發的人,應該怎樣開始,你有哪些建議?

Tim:遊戲開發是項極複雜的工程,大團隊中的開發者會專攻某項技能,例如物理程式設計師專門解決遊戲開發中的物理問題,還有AI程式設計師、音樂程式設計師、影象程式設計師等。對於移動平臺遊戲,團隊往往較小,開發者需要是全才。不過從目前的趨勢看,遊戲開發領域的分工將越來越細。

若想取得成功需要非常努力,也許還需要天賦。成為遊戲開發者的最好方式是投入大量時間親身嘗試,在其中學習、構造和感受它。可以從最簡單的2D遊戲開始,用不了很久,許多人就能嘗試開發類似《Angry Birds》機制的遊戲了。在每個小遊戲的開發過程中嘗試學習一些如3D、OpenGL這樣的技能,別指望一開始就打造複雜的遊戲,因為你會遇到太多自己不熟悉的技術領域,導致無法最終完成。在我發行第一款遊戲前,已開發了上百個小遊戲。但這一切是值得的,這個專心致志的過程將把你塑造成一位優秀的程式設計師,或許還會激發你關於開發遊戲的新思路。

關於如何開始,我認為最重要的是要有空餘時間,然後利用這些空餘時間完成自己的專案。在美國相對容易做到,因為每個人都有大片的個人時間,大家並不太把學校當回事,但我知道中國的情況不同。這需要來自家長的支援,如同學習其他技能或考大學一樣,需要給孩子們專門留出程式設計的時間。所有我認識的傑出的遊戲開發者,在他們上大學前,在他們專業從事開發前,早已擁有豐富的遊戲開發經驗了。