如何涉足游戲業

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

游戲行業可能是現今這個世界上能夠找到的為數不多的迷人工作之一。在高科技的外表掩護下,她讓你充分享受創作和玩耍游戲的樂趣。最近一些成功的傳奇故事更是把她捧上了天。id Software 已經成了成千上萬想要成為游戲開發者的家伙們每天必做的美夢。

  你也是這幫家伙中的一員?好,就讓我們來談談怎樣進入這個迷人的行業,或者說你怎樣做一只游戲。這兩者確實存在著某些微妙的差別,不過為了不打擊你寶貴的積極性,本文準備避開此類令人討厭的話題。

萬事開頭難

ÿ “我從那里下手?”

  這是每個家伙在開始時都要問的一句話。古人云:“三思而后行”,在你行動以前,先訂出一個計劃,這無疑才是明智之舉。否則你只會成為一個迷失在沙漠里的亡魂,永遠也找不到你渴求的綠洲。

  如果沒有一個明確、合理、可行的計劃,你將不可能得到你所想要的結果,唯一的結果就是你始終無法完工。一個可笑的例證是作者本人,三年前我一步步走上這條絕路,其最重要的一個原因就是沒人寫這篇文章給我看。

  話說回來,要一個新手搞出一個明確、合理、可行的計劃,跟派一個嬰兒去爭奪奧運會金牌沒什么兩樣。我對此的建議是先從小一點的計劃做起。 

選定目標

  “我想在電腦游戲行業里找到一個工作。”

  對這個目標的標準答案通常會歸結為“做一個游戲 DEMO”。這是否確切意味著什么呢?

  它代表著你將寫一些程序,或是做一段動畫,再不就是一堆音樂和音效。不過這可不是隨便做做就行的,這些東西必須適合于視頻游戲,最好它們就是一個具備商業加專業水準的視頻游戲的一個部分。

  對程序員們來說,這會導致出一個擁有 2D 或是 3D 外觀的復雜引擎,一大堆必備的游戲輔助開發工具,比方說地圖編輯器什么的。你做的工作結果越接近實際的游戲產品,就越有可能給潛在的雇主或是投資者留以更深刻的印象。比方說你做了一個平臺式的跳躍游戲,有各種關卡、得分、生命、寶物等等,你實際上已經實實在在地證明了你確實理解一個視頻游戲的基本工作過程,你還證明了你有著為潛在的雇主或是投資者去完成一個制作項目的積極主動性,最后還證明了你有堅持直到成功的毅力。   你的游戲產品越出色,它就越可能幫你找到一個工作。不信?不妨把你自己放到雇主或是投資者的位置來觀察,成百上千的求職書擺在你的面前,都想要在你的公司里謀一個差事,如果不當慈善家,你會選擇誰?能幫你做出最出色產品的那個家伙難道不是你最想雇來盡情剝削壓榨的嗎?

  進一步發揮你的想象,也許你的游戲產品會如此出色,以至于比爾小朋友會牽著你的衣角,乞求你帶上他去征服整個幼兒園世界中的財寶?   “我只是想從制作電腦游戲中尋求樂趣。”

  你一但抱定此種念頭,那么除了你自己,沒有人能阻止你一直干下去。你就象生活在真空中一樣,可以不需要絲毫的外部援助。你可以加入一些開發共享軟件的小組,也可以自己一個人干。在加入一個小組之前,你必須知道一個事實,那就是在這種小組里工作,尤其是在那種遠距離小組里工作會遇到更多的困難。這個事實可以用公式來描述:新的問題 = 問題本身 + 人與人的問題。

  “我需要找一個出版發行商,這樣我就可以用游戲銷售收入來保障自己可以把時間全部都投進去。”

  聽上去很不錯,但不幸的是,從很久以前就開始的記錄表明,其他人也都這么想。你的唯一出路在于,要讓你手里的東西比其他任何人的都好,而且看上去準能賺大錢。由此可以推論,一個能夠實際運行的演示程序在幫你吸引出版發行商這件事上的效果遠比只是一段演示動畫強。現在的出版發行商們的精明程度是呈指數增長的,用一段演示動畫就可以輕珊塹幕平鶿暝略繅鴨僑肓撕窈竦睦肥櫓小?br>   那么接下來要考慮的是,一個游戲的 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 上去搜尋一些共享圖片庫什么的,這樣做可以為你節省大量的時間,你要看到,這些東西再糟,可能也比你那程序員級的美工強。還有人從現成的游戲里竊取資源,你如果也想如法炮制,請慎重考慮此舉會引起的種種不良后果。   當你決定請用一個專門的美工時,盡量不要到離你太遠處去找,那樣會讓你們無法協同工作。不信你可以試一下,很快你就會發現你總是不能按時得到你所需要的東西。

  假若你考慮自己成立一個制作小組,最重要的事情就是謹慎地選擇你的小組成員。管人是一件費時費力的工作,盡管有不少人搶著干,但真正干好了的又有幾人呢?一旦項目被分配下去后,隨便一個家伙的耽擱都會延誤你的項目進度。

  “我應該創作什么內容呢?”

  很自然地,你首先會想到,應該是做哪種類型的游戲呢?飛行模擬、駕駛賽車、槍戰射擊……?

  理所當然,你所需考慮的自然是你實際能完成并能吸引自己的那種類型。只有這樣,當你遇到困難時,才會有激情去克服它并最終完成你的游戲。很容易想象,如果讓你去做你根本不感興趣的那種游戲,你會有足夠的動力去把它完成?

  許多人第一想到的就是角色扮演游戲。然而,根據實際情況表明,把角色扮演游戲做為你的第一個游戲是非常不明智的行為。隨便提一句,本人便擁有這種不明智的過去,帶領四個人足足白忙了一年半。

  最恰當的想法是你的第一個游戲是如此地簡單,以至于你絕不可能失敗。有很多人是從打磚塊,堆方塊,吃豆豆做起的。如果你也有了這種想法,你就應該堅持下去,直到這個游戲得以徹底實現。記住,在這個游戲沒完工以前,不要急著去開始做其他所謂更大、更好的游戲。游戲設計在很大程度上就是在于你能否堅持到最后,在這個過程中,大約是每五十個游戲中只有一個是完工了的,你想成為另外那四十九個中的一員嗎?

  “怎樣實現我的游戲呢?”

  先給你的游戲擬訂一個良好的規劃,詳細描述從頭到尾的每一屏的內容,以及玩家在其間怎樣與電腦發生互動等等。需要如此詳細描述的一個原因是,如果你自己都不知道你確切地想要什么,在這種情況下,你會猶豫不決,不時地改變主意,不斷地加入一些讓你的程序無法協調的東西……你又怎么保證你能把它完成呢?更不要說按時完成了!

  這樣看來,我們確實需要一個 

設計文檔

  終于談到這個話題了,實際上每個游戲的開發者都會有非常詳盡的設計文檔,關于這點,有人甚至說:“一個設計文檔應該詳盡到任何兩個不同的開發小組按照它的指引都會寫出一個同樣的游戲。”

  一旦你考慮到人們對于同一事物所做出的千奇百怪的解釋,你就可以體會到設計文檔的巨大意義。那么

  什么是設計文檔呢?

  一個設計文檔通常會分為許多條目,俗話說:“百聞不如一見”,看個例子你就明白了。

  I. 一般性描述

    1.背景故事

    2.游戲介紹

    3.游戲人物表

    4.特征列表清單

    5.定義和描述

    6.游戲介紹過程

    7.游戲選擇過程

    8.游戲開始屏幕

    9.游戲的進行過程

    10.游戲的關卡

    11.游戲的里程碑

    12.結束游戲

    13.退出游戲

  II. 屏幕描述和用戶界面規范

    1.游戲介紹過程或是游戲開場動畫

    2.游戲選擇屏幕

    3.在游戲開始前的選項設置子屏幕

    4.游戲屏幕

    5.屏幕流程圖

    6.控制

  III. 藝術規范

    1.顏色和分辨率模式

    2.掩膜顏色

    3.文件類型和命名規則

    4.背景藝術列表清單

    5.前景藝術列表清單

    6.人物藝術列表清單

  IV. 音樂音效規范

    1.聲音效果列表清單

    2.配音演員列表清單

    3.音樂列表清單及其描述

  V. 實例規范 (具體實現)

    1.項目實施過程及人員安排

    2.游戲完工的里程碑

    3.所需的函數與過程

    4.角色所需的信息

    5.屏幕如何繪制

    6.每秒所需幀數

    7.游戲開發所需的資源庫

    8.整個游戲從頭到尾的流程圖

  VI. 人工智能規范

    1.角色所需知道的知識

    2.角色的實際行為同現實世界中的真實行為的區別

    3.公平性考慮

  VII. 法律材料

    1.版權通告

    2.保密協議

  你已經看到了,只是一個簡單的提綱就這么長。一旦給這些標題加上詳盡的內容,這個文檔就會變得非常大。一個大中型項目至少會有一百頁以上的文檔。那么

  設計文檔要寫多少才夠呢?

  不用担心,出于平衡性的考慮,你總有一天會停手的。寫得過多實際上也不是好事情,你會在沮喪中耗盡熱情,最后不得不痛苦地取消項目。

  盡管寫起文檔來是如此地費力,但這種努力絕對是很值得的。你的思想會在文檔書寫過程中定型,你會逼著自己回答,“我該怎樣來完成這個?”在做游戲時,掌握這一點是絕對必要的,它將指給你一個正確的方向。

  無論如何,你至少應該花上幾天去著手寫些文檔,用這點時間,你可以完成一個初步的框架。從這以后開始,隨著游戲的進展,你會不斷發現某些東西是你所無法實現的,這時就是你該回過頭修改文檔的時候了。遵循這個過程,你將不會偏離你的最終目標。

  有人可能會問

  我只想編一個小小的游戲,那我還是需要寫設計文檔嗎?

  這個問題的答案絕對是“要”。除了為你今后進入這個行業打下基礎以外,其主要原因有兩點:第一,在這種情況下,設計文檔同樣會指導你編程;第二,因為是個小游戲,那么設計文檔也不可能太長。還有什么說的?堅持寫吧!

  接下來,該考慮一個大家都很關心的重要問題了:

  在制作過程中遇到無法解決的困難時該怎么辦

  這種倒霉的事情是誰都會碰到的,即使一個很有經驗的游戲開發者也會遇到他覺得無法逾越的障礙。幸運的是,這是一個網絡時代,在 Internet 上你會找到你所急需的幫助。不過由于中文信息太少的緣故,這要附帶一個條件,即你的英語能力值不得低于那些講英語的同類。

  據我所知,有很多站點有游戲開發的各類相關指南,用搜索引擎可以很容易地發現它們。如果不知道搜索所用的關鍵字,你可以試一試“games programming”,剩下來的工作就是一個個地去瀏覽搜索結果。本人曾用這種方法找到過很多好東西。

  如果這樣還不夠的話,你可以去新聞組試一下。不過在你第一次發帖子之前,你應該先留心觀察幾天,看看這里的人們是怎么做的,免得亂貼東西上去后會惹人嘲笑及反感。

  有著悠久歷史的 rec.games.programmer 新聞組前不久被分成了 comp.games.development.* 一系列的新聞組,這絕對是你該常去的地方。如果你上不了這個新聞組,微軟的 msnews.microsoft.com 也是一個值得流連之處。至于國內的那些新聞組、論壇什么的,去不去都無所謂,它們幫不了你多少忙。

  使用新聞組時一定要注意選擇適當的組發帖子,不要把關于 DirectX 的問題拿到設計組或是藝術組去問。發出帖子后,即使沒有人馬上回答,也要耐心地多等上兩天再重新發帖子。

  如此日復一日、年復一年,終于有一天 游戲做好了!現在又該干什么?

  這是你該好好想想怎樣發布你的大作的時候了!你做這個游戲的目的不會只是拿來自己一個人偷著玩的罷?

  我們一起來看看有那些途徑可以幫你完成這個事情。

  肯定有人想過、試過自己去賣他們的游戲軟件,但我實在是想不出這樣的結果有多么美好。

  還記得前面提到的出版發行商嗎?你可以壯著膽子去找它們(嗜錢的動物),它們會幫你把游戲擺上商店的貨架。不過要讓這群家伙如此干的唯一理由就是,你的游戲產品質量要足夠地好,至少要比已經擺在貨架上的大部分游戲都好。

  還有一個辦法是通過常規的軟件銷售渠道去散發你的游戲軟件。但你要慎重考慮該渠道在推廣游戲軟件方面的能力,以免明珠暗投。

  盡管已經有了這些途徑,還是有人喜歡用共享的方式發放自己的游戲軟件。你經常可以看到那種裝滿共享軟件的光盤,從 download.com 這樣的地方,你也能下載到各種共享游戲軟件。

  進一步

  怎樣去聯系出版發行商呢?

  這點倒不用担心,他們通常都有自己的站點和電子郵件,因此同他們取得聯系并不困難。你要注意的是,不要直接把你的游戲寄給他們,那樣一旦出了什么事,你想起訴他們都沒門。在你向他們展示產品之前,你最好先同他們簽署一個非泄密協議(Non-Disclosure Agreement,即 NDA)。如果這份協議簽署得當的話,它可以很好地保護你的權益。

  NDA 這樣的協議是一個標準程序,你千萬不要忽略它。如果你發現他們的站點沒有關于 NDA 方面的信息,你可以發個 email 給他們進行詢問。有些出版發行商不接受第三方的產品,還有一些出版發行商只想要專用游戲機的產品。所以你最好先確定你手里這樣的產品是否正是他們所需要的。

  一個比較安全的做法是先告訴他們你的游戲的類型及運行平臺,看看這是否他們所正在尋找的。不管他們回答“是”或“否”,這都將會是一個良好的開端。

  怎樣去保護你自己和你的游戲?

  好好保護你的游戲產品是非常重要的。你已經為此付出了無數的汗水和心血,難道會忍心看著有人從中竊取原本屬于你的權益?

  盡管你所寫下的一切內容都受版權法所保護,但你首先必須證明那些東西確實是你所寫的。

  為達此目的,你要做的第一件事就是在產品中放一條版權聲明,宣稱你對它版權所有,這樣做的目的是告訴其他人你非常清楚地知道你對自己產品所享有的權益。

  一個可靠的辦法當然是到國家版權局登記,根據本人的體會,這雖然要花你不少時間和精力,但絕對是值得的。

  象本人一樣貧困的同志們還想出了一個經典的辦法:把想要獲得版權的東西及相關材料用密封袋裝好,再通過郵局寄給自己。根據國外的案例表明,這種證據是合法的,法庭會支持這種證明。因此,你可以開動腦筋,把這個辦法做得更嚴密一些。   使用注冊商標是最可靠的辦法,對你的權益保護得也最完整,但它稍微有點貴,你不一定付得起這筆錢。

  還有一點忠告,如果你的游戲賣點是基于新的思路,你在簽署 NDA 之前,千萬不要詳細告訴他人這個思路,你應該用一些現成的產品打打比方,作一個近似描述就行了,剩下的內容讓他自己去想象吧!

  嘮叨了這么半天,我也有點累了,不知道你是否有所收獲,我想,只要你做事足夠努力,一步步地不斷前進,你總有一天會做出你期望中的游戲的(此前省去限制條件若干條),祝你好運!? (本文已發表于《電腦報》) 

作者:樊一鵬(FreeMind) 文章來源:新浪網 作者Email:不詳 


網載 2011-02-22 03:24:46

[新一篇] 李開復致信中國大學生:大學4年應是這樣度過

[舊一篇] C#與C++、Java之比較概覽
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表