?? 如何涉足游戲業.txt
字號:
如何涉足游戲業
上一篇 / 下一篇 2007-11-14 18:21:19
查看( 5 ) / 評論( 0 ) / 評分( 0 / 0 )
原文作者:Geoff Howland
游戲行業可能是現今這個世界上能夠找到的為數不多的迷人工作之一。在高科技的外表掩護下,她讓你充分享受創作和玩耍游戲的樂趣。最近一些成功的傳奇故事更是把她捧上了天。id Software 已經成了成千上萬想要成為游戲開發者的家伙們每天必做的美夢。
你也是這幫家伙中的一員?好,就讓我們來談談怎樣進入這個迷人的行業,或者說你怎樣做一只游戲。這兩者確實存在著某些微妙的差別,不過為了不打擊你寶貴的積極性,本文準備避開此類令人討厭的話題。
萬事開頭難
“我從那里下手?”
這是每個家伙在開始時都要問的一句話。古人云:“三思而后行”,在你行動以前,先訂出一個計劃,這無疑才是明智之舉。否則你只會成為一個迷失在沙漠里的亡魂,永遠也找不到你渴求的綠洲。
如果沒有一個明確、合理、可行的計劃,你將不可能得到你所想要的結果,唯一的結果就是你始終無法完工。一個可笑的例證是作者本人,三年前我一步步走上這條絕路,其最重要的一個原因就是沒人寫這篇文章給我看。
話說回來,要一個新手搞出一個明確、合理、可行的計劃,跟派一個嬰兒去爭奪奧運會金牌沒什么兩樣。我對此的建議是先從小一點的計劃做起。
選定目標
“我想在電腦游戲行業里找到一個工作。”
對這個目標的標準答案通常會歸結為“做一個游戲 DEMO”。這是否確切意味著什么呢?
它代表著你將寫一些程序,或是做一段動畫,再不就是一堆音樂和音效。不過這可不是隨便做做就行的,這些東西必須適合于視頻游戲,最好它們就是一個具備商業加專業水準的視頻游戲的一個部分。
對程序員們來說,這會導致出一個擁有 2D 或是 3D 外觀的復雜引擎,一大堆必備的游戲輔助開發工具,比方說地圖編輯器什么的。你做的工作結果越接近實際的游戲產品,就越有可能給潛在的雇主或是投資者留以更深刻的印象。比方說你做了一個平臺式的跳躍游戲,有各種關卡、得分、生命、寶物等等,你實際上已經實實在在地證明了你確實理解一個視頻游戲的基本工作過程,你還證明了你有著為潛在的雇主或是投資者去完成一個制作項目的積極主動性,最后還證明了你有堅持直到成功的毅力。
你的游戲產品越出色,它就越可能幫你找到一個工作。不信?不妨把你自己放到雇主或是投資者的位置來觀察,成百上千的求職書擺在你的面前,都想要在你的公司里謀一個差事,如果不當慈善家,你會選擇誰?能幫你做出最出色產品的那個家伙難道不是你最想雇來盡情剝削壓榨的嗎?
進一步發揮你的想象,也許你的游戲產品會如此出色,以至于比爾小朋友會牽著你的衣角,乞求你帶上他去征服整個幼兒園世界中的財寶?
“我只是想從制作電腦游戲中尋求樂趣。”
你一但抱定此種念頭,那么除了你自己,沒有人能阻止你一直干下去。你就象生活在真空中一樣,可以不需要絲毫的外部援助。你可以加入一些開發共享軟件的小組,也可以自己一個人干。在加入一個小組之前,你必須知道一個事實,那就是在這種小組里工作,尤其是在那種遠距離小組里工作會遇到更多的困難。這個事實可以用公式來描述:新的問題 = 問題本身 + 人與人的問題。
“我需要找一個出版發行商,這樣我就可以用游戲銷售收入來保障自己可以把時間全部都投進去。”
聽上去很不錯,但不幸的是,從很久以前就開始的記錄表明,其他人也都這么想。你的唯一出路在于,要讓你手里的東西比其他任何人的都好,而且看上去準能賺大錢。由此可以推論,一個能夠實際運行的演示程序在幫你吸引出版發行商這件事上的效果遠比只是一段演示動畫強。現在的出版發行商們的精明程度是呈指數增長的,用一段演示動畫就可以輕松糊弄他們的黃金歲月早已記入了厚厚的歷史書中。
那么接下來要考慮的是,一個游戲的 DEMO 要做到什么程度才夠呢?根據前人的經驗,至少要有一個關卡,或是一個可以實際玩耍的區域來進行演示,這這件事情上,你做得越多,你就離想獲得的目標更近了一步。你還應該對游戲的藝術風格有一個完整的概念,如果在實際的 DEMO 中無法徹底展現這種風格,最好還是想辦法用一個詳細的描述文檔來闡述它,以便讓出版發行商能夠弄懂你的意圖。你的游戲 DEMO 沒有音樂音效?這根本算不上是什么致命傷,在出版發行商的眼中,這些東西按照慣例,通常都會放到游戲制作的后期去完成,他們會組織一批專業好手去干這種事。告訴你這一點的目的是為了減少你對于此類事情的過分擔心。不過你必須要明白,這不是讓你的游戲變得更好的最佳方案,這樣的東西通常都會草草收工,你能指望其他素不相識的家伙會為你的游戲而投入無比的熱情?充其量他們只會為了自己那一份報酬而裝出賣力的樣子罷了。
在動手做你的 DEMO 的時候,還必須記住要表現出兩點。如果你的游戲想以技術難度取勝,那么在 DEMO 中你就要盡量多地表現出各種你值得炫耀的技術,這將證明你能夠完成這個游戲,而不是眼高手低。第二點需要記住的是,要在 DEMO 中讓人能找到感覺,當然最好是你希望的那種。一個讓人感到有趣的游戲肯定會比另一個讓人覺得玩起來沒什么意思的游戲要好很多,至少會對吸引出版發行商這件事多起些作用。
最后,你還必須考慮到一個更殘酷的現實,那就是國內的出版發行商們的實際情況比上面說的還要糟,要同這批家伙打交道而不吃虧絕非易事。他們唯一感興趣的是從你和你的游戲身上能賺多少錢,這樣的結果就是說他們只可能在制作游戲時幫你的倒忙。在你的游戲還沒完工之前去找他們投資,不失為一個葬送你的游戲和你的熱情的好辦法。這也許是國產游戲讓人反復失望的一個微不足道的原因吧。
“我要比 id 更威猛!”(或是“我要超過 XXX!”)
見鬼的是,每個人都這么想。無數的小組和個人為實現這個目標而投入的精力絕對超出了你的想象。然而直到如今,這個游戲開發者的圣杯依然高高地漂浮在天際。你得明白,羅馬不是一天就建成的,id 的職業生涯不是從 QUAKE&QUAKE II 開始的,也不是從 DOOM 開始的,甚至連 Wolfenstein 3D 都不是。他們一開始做的都是一些小東西,大量的 2D 小游戲。你可以象蠢笨的作者本人一樣去把自己的第一個游戲項目擬訂得無比宏偉,干了很久以后才發現實際需要的資源會花上你兩千年去完成。我估計自己沒那么長的壽命,也許你能行?
因此,對于一個新手來說,最好的開始還是拋開這些不切實際的念頭,從一些簡單的游戲或游戲 DEMO 做起,并試著發表它們。
接下來,讓我們談談具體的
該如何干
如果你試圖自行制作一只游戲但又不知從何下手,那么,我所能為你提出的最好建議就是去學習,去拼命地學習一大堆東西。在你學有所獲以前,先把你關于你自己的游戲的所有胡思亂想通通扔開,然后一頭扎進你所想涉足的領域。
一個討厭的現實是游戲行業推薦你必須學習 C++,最好是 Microsoft Visual C++。比較幸運的是,如果你只想為自己做游戲,那隨便你怎么干,你用 Visual Basic、Delphi 都不會有什么影響。一旦你想有人花錢請你寫游戲,那么最好還是遵從這一點。
編程能力是創作視頻游戲的基本要點,游戲行業以光速發展的后果導致,如果你不是這方面的行家里手,你最好打消自己做游戲的念頭,以免今后痛苦不堪。什么?你一點都不懂編程還是不想放棄?好吧,那么讓我們來看看,你還能做些什么。對了,正如上文所說,你可以先去學習 C++,通過學習,你應該可以逐漸看懂你感興趣的游戲例程。不過千萬不要指望短短幾個月的學習就能夠精通編程,盡管有些詐騙犯寫的書說一周就夠了。還是以作者本人為例,雖然已經在游戲編程上花了十幾年功夫,雖然日漸瘦弱的身軀似乎在暗示著某種進化,但依然離終極目標還差很遠,看起來還有無限長的路要走。
“我應該選擇什么平臺?”
當然應該是 Windows 95/98,原因是它至少已經占據了個人電腦 90% 以上的份額,今后多半還會變得更多。難道用戶聚集之地會不是鈔票聚集之地?
“怎樣學習編程?”
雖然國內有不少大學院校,但你就是找不到游戲專業。因此,你只要去買兩本合適的書就行了。下面這些主題是你在選購書籍時應該考慮的。
* C++
* Windows API's
* DirectX
* Game Programming
* Math
關于 C++ 的書,最好就是集中講解標準 C++ 的,以免分散你的學習注意力。不管今后平臺怎么變,這些基礎的東西都會有用。同時,熟練掌握 C++ 會對你今后調試程序大有好處。
至于 Window's API (Application Programming Interface) 的書,千萬不要去看那些大談特談 MFC (Microsoft Foundation Classes) 的,完全不談 MFC 的書才是你應該去找的。原因很簡單,我們做游戲根本就不用 MFC。它的類又大又慢,簡直就是故意同我們的游戲需求作對。
DirectX 是 Windows 95 下的一套專用 API,用來處理對圖形、聲音、網絡以及 3D 加速硬件的訪問,詳情請參見拙著《Microsoft DirectX 6.0 演武傳奇》。Microsoft 為 DirectX 提供了一些源程序例子,按照 Microsoft 的慣例,它們是很難讀懂弄明白的。涉及這個主題的書最好能夠詳細告訴你各個例子源程序的每一行代碼實際上在干什么,你怎么在自己的制作中使用它們。如果發現一本書從頭到尾都是在講怎樣為這本書的一個特定項目服務,比方說是為 DirectX 設計一個類,你千萬不要買它!這種書只會把問題越搞越復雜,它們根本就沒有解釋清楚你真正應該了解的內容。
一本好的關于 Game programming 的書應該教會你各種基本要素,去指導你怎樣寫出一個電腦游戲,它將帶你深入到那些制作視頻游戲所涉及的最簡單、最直接的元素。對初學者來說,看看那些涉及許多種不同類型的游戲的書可能會比只看詳細談論某一特定類型的游戲的書收獲更大。
Math 絕對是制作視頻游戲必不可少的東西,沒有哪種數學不能應用在視頻游戲上。對初學者來說,應該記住各種基本的代數方程式,熟悉三角運算和幾何學等等,3D 圖形學所涉及的數學知識比較復雜,在一開始先別去碰它。
你最好的打算是不要把 3D 游戲作為你的起點,它遠遠超出了你的承受能力。一步跨出半米,這樣你肯定能做到,一步飛越大峽谷,跳遠冠軍都不行,請記住,你我只是普通人,不是漫畫里的超人。如果你還不明白這一點,可以去思考一個事實:3D 游戲至少都會需要數百萬元以上的預算。
“我應該單獨干還是與人合伙?”
這其實全看你的個人喜好。你能同其他人相處得很融洽嗎?你愿意同他人一起承擔責任并共挑重擔嗎?你能組織管理好其他人嗎?或者你希望有些人來領導你?
我個人認為,在你一開始時還是自己單干比較合適一些。起碼你需要成為一個有足夠能力的程序員,并親自動手做一些小小的游戲。需要什么圖片的話,你就自己畫吧,即使你畫得很糟也沒有關系,這個過程只是為了讓你能夠增長寶貴的經驗。等到今后你著手于一個具有更高標準和要求的項目時,這些經驗會帶給你極大的幫助。另外一個辦法是使用一些現成的資源,比方說在 Internet 上去搜尋一些共享圖片庫什么的,這樣做可以為你節省大量的時間,你要看到,這些東西再糟,可能也比你那程序員級的美工強。還有人從現成的游戲里竊取資源,你如果也想如法炮制,請慎重考慮此舉會引起的種種不良后果。
當你決定請用一個專門的美工時,盡量不要到離你太遠處去找,那樣會讓你們無法協同工作。不信你可以試一下,很快你就會發現你總是不能按時得到你所需要的東西。
假若你考慮自己成立一個制作小組,最重要的事情就是謹慎地選擇你的小組成員。管人是一件費時費力的工作,盡管有不少人搶著干,但真正干好了的又有幾人呢?一旦項目被分配下去后,隨便一個家伙的耽擱都會延誤你的項目進度。
“我應該創作什么內容呢?”
很自然地,你首先會想到,應該是做哪種類型的游戲呢?飛行模擬、駕駛賽車、槍戰射擊……?
理所當然,你所需考慮的自然是你實際能完成并能吸引自己的那種類型。只有這樣,當你遇到困難時,才會有激情去克服它并最終完成你的游戲。很容易想象,如果讓你去做你根本不感興趣的那種游戲,你會有足夠的動力去把它完成?
許多人第一想到的就是角色扮演游戲。然而,根據實際情況表明,把角色扮演游戲做為你的第一個游戲是非常不明智的行為。隨便提一句,本人便擁有這種不明智的過去,帶領四個人足足白忙了一年半。
最恰當的想法是你的第一個游戲是如此地簡單,以至于你絕不可能失敗。有很多人是從打磚塊,堆方塊,吃豆豆做起的。如果你也有了這種想法,你就應該堅持下去,直到這個游戲得以徹底實現。記住,在這個游戲沒完工以前,不要急著去開始做其他所謂更大、更好的游戲。游戲設計在很大程度上就是在于你能否堅持到最后,在這個過程中,大約是每五十個游戲中只有一個是完工了的,你想成為另外那四十九個中的一員嗎?
“怎樣實現我的游戲呢?”
先給你的游戲擬訂一個良好的規劃,詳細描述從頭到尾的每一屏的內容,以及玩家在其間怎樣與電腦發生互動等等。需要如此詳細描述的一個原因是,如果你自己都不知道你確切地想要什么,在這種情況下,你會猶豫不決,不時地改變主意,不斷地加入一些讓你的程序無法協調的東西……你又怎么保證你能把它完成呢?更不要說按時完成了!
這樣看來,我們確實需要一個
設計文檔
終于談到這個話題了,實際上每個游戲的開發者都會有非常詳盡的設計文檔,關于這點,有人甚至說:“一個設計文檔應該詳盡到任何兩個不同的開發小組按照它的指引都會寫出一個同樣的游戲。”
一旦你考慮到人們對于同一事物所做出的千奇百怪的解釋,你就可以體會到設計文檔的巨大意義。那么
什么是設計文檔呢?
一個設計文檔通常會分為許多條目,俗話說:“百聞不如一見”,看個例子你就明白了。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -