Introduction

你想成為遊戲開發者


作者: newleaf (哎哎) 看板: GD
標題: [轉錄]你想成為遊戲開發者嘛?
時間: Sat Sep  1 19:37:29 2001

你也想成為遊戲開發者嗎?
設計制作電腦遊戲這一行,可能是當今世界上能夠找到的為數不多的迷人工作之一。在高科技的不斷帶動下,她讓你充分享受創作和玩耍遊戲的樂趣。而像id Software 這樣一夜成名的傳奇經歷,更讓成千上萬想要成為遊戲開發者的傢伙看到美夢也能成真。
從哪裡入手:
這是每個初學者在開始時都要問的一句話。古人云:“三思而後行”。在你行動以前,先訂出一個計劃,這無疑是明智之舉。否則你只會成為一個迷失在沙漠裡的亡魂,永遠也找不到你渴求的綠洲。
  如果沒有一個明確、合理、可行的計劃,你將不可能得到所期待的結果,唯一的可能就是你始終無法完成一個作品。一個可笑的例證便是作者本人的經歷。五年前我一步步走上這條絕路,最重要的一個原因就是沒人寫這篇文章給我看。
  話說回來,要一個新手搞出一個明確、合理、可行的計劃,跟派一個嬰兒去爭奪奧運會金牌沒什麼兩樣。我對此的建議是先從小事做起,一點一點積累經驗。

選定目標:
”我想在電腦遊戲行業裡找到一個工作。”
  對這個目標的標準答案通常會歸結為“做一個遊戲DEMO”,這是否意味著什麼呢?
  
它代表著你將寫一些程式,或是做一段動畫,再不就是制作一些音樂音效。不過這些東西可不是隨便做出來就行的,你做出的東西必須向現有的遊戲產品看齊,最好它們就是一個具備專業水準的電腦遊戲的一部分。
  
對程式人員們來說,這將意味著一個擁有2D或是3D外觀的複雜引擎,一大堆必備的遊戲輔助開發工具,比方說地圖編輯器什麼的。你制作出越接近成熟的遊戲產品,就越有可能給潛在的僱主或是投資者留下深刻的印像。比方說你做了一個平台式的跳躍遊戲,有各種關卡、得分方法、生物、物品等等,你實際上已經實實在在地證明了你確實理解遊戲的基本工作過程,還證明你有著為潛在的僱主或是投資者去完成一個制作企劃案的積極主動性,最後還證明了你有堅持到成功的毅力。
  
做出的遊戲產品越出色,就越可能幫你找到一個工作。不信?不妨把你自己放到僱主或是投資者的位置來觀察,成百上千的求職書擺在你的面前,都想要在你的公司裡謀一個差事。在這些人選中,你會選擇誰?能幫你做出最出色產品的那個傢伙難道不是你最好的人選嗎?
  
進一步發揮你的想像力,也許你的遊戲產品會如此出色,以至於比爾會牽著你的衣角,乞求你帶上他去征服這個領域。
  
我只是想從制作電腦遊戲中尋求樂趣。一但抱定此種念頭,那麼除了你自己放棄,沒有人能阻止你一直幹下去。你就像生活在“真空”中一樣,可以不需要絲毫的外部援助。你可以加入一些開發共享軟體的小組,也可以自己一個人幹。在加入一個小組之前,必須知道一個事實,那就是在這種小組裡工作,尤其是在那種遠距離作業的小組裡工作會遇到更多的困難。這個事實可以用公式來描述:新的問題 = 問題本身 + 人與人的問題。
  
“我需要找一個出版發行商,這樣就可以用遊戲銷售收入來保障自己的工作。”聽上去很不錯,但不幸的是,從很久以前就開始的記錄表明,其他人也都這麼想。你的唯一出路在於,要讓你手裡的產品比其他任何人的都好,而且看上去準能賺大錢。由此可以推論,一個能夠實際運行的演示程式在幫你吸引出版發行商這件事上的效果遠比只是一段演示動畫強。現在的出版發行商們的精明程度是呈指數增長的,用一段演示動畫就可以輕鬆糊弄他們的黃金歲月早已記入了厚厚的歷史書中。
  
那麼接下來要考慮的是,一個遊戲的DEMO(試玩版) 要做到什麼程度才合適?根據前人的經驗,遊戲的試玩版裡至少要有一個關卡,或是一個可以實際玩耍的區域來進行演示。這件事情上,你做得越多,就離想達到的目標就更接近。你還應該對遊戲的藝術風格有一個完整的了解,如果在實際的 DEMO 中無法徹底展現這種風格,最好還是想辦法用一個詳盡的文檔來闡述它,以便讓出版商能夠弄懂你所要表達的意圖。你的遊戲 DEMO 沒有音樂音效?這算不上是什麼致命傷,在出版發行商的眼中,這些東西按照慣例,通常都會在遊戲制作的後期去完成,他們會組織一批專業好手去幹這種事。告訴你這一點的目的是為了減少你對於此類事情的過分擔心。不過必須要明白,這不是讓你的遊戲變得更好的幫助,因為這樣的東西通常都會草草收工,你能指望其他素不相識的傢伙為你的遊戲而投入無比的熱情?充其量他們只會為了自己那一份報酬而裝出賣力的樣子罷了。
  
在動手做自己的遊戲時,還必須記住要表現出兩點。第一,如果你的遊戲想以技術難度取勝,那麼在 DEMO 中就要盡量多地表現出各種值得炫耀的技術,這將證明你能夠完成這個遊戲,而不是眼高手低。第二點需要記住的是,要在 DEMO 中讓人找到遊戲的感覺,當然最好是你希望的那種。
  
我要做得比 id 更好!幾乎每個人都有這種想法,無數的小組和個人為實現這個目標而投入的精力絕對超出了你的想像。然而直到如今,這個榮譽的聖盃依然高高地漂浮在天際而不可捉摸。你要明白,羅馬不是一天就建成的,id 制作者的職業生涯不是從DOOM開始,也不是從 Quake 或 QuakeⅡ開始,甚至連 Wolfenstein 3D 都不是。他們開始做的都是一些小產品,大量的 2D 小遊戲。不要像筆者一樣把自己的第一個遊戲企劃擬訂得無比宏偉,幹了很久以後才發現實際需要的資源會花上兩千年才能完成。我估計自己沒那麼長的壽命,也許你能行?因此,對於一個新手來說,開始最好還是拋開那些不切實際的念頭,從一些簡單的遊戲或遊戲 DEMO 做起,並試著發表它們。

具體該如何幹:
  如果你試圖自己制作一個遊戲但又不知從何下手,那麼,我所能為你提出的最好建議就是去學習,去拚命地學習對你有用的知識。在學有所獲以前,先把自己有關於遊戲的所有胡思亂想通通拋開,然後一頭扎進你所想涉足的領域。
  
一個令人討厭的現實是如果想進入遊戲行業就必須學習 C++,最好是 Microsoft Visual C++。比較幸運的是,如果只想為自己做遊戲,那隨便你怎麼幹,用 Visual Basic、Delphi 都不會有什麼影響。但如果你想讓自己的遊戲成為商品並獲得成功,那麼最好還是遵從這一點。
  
編程能力是創作電腦遊戲的基本要點,遊戲行業以光速發展的後果可能是:如果你不是這方面的行家裡手,最好打消自己做遊戲的念頭,以免今後痛苦不堪。什麼?你一點都不懂編程但也不想放棄?好吧,那麼讓我們來看看,你還能做些什麼。對了,正如上文所說,你可以先去學習 C++,通過學習,你應該逐漸看懂感興趣的遊戲例程。不過千萬不要指望短短幾個月的學習就能夠精通編程。還是以作者本人為例,雖然已經在遊戲編程上花了好幾年工夫,雖然日漸瘦弱的身軀似乎在暗示著某種進化,但依然還有無限漫長的道路要走。
  
  怎樣學習編程?
  雖然國內有不少高等院校,但你就是找不到遊戲專業進修。因此,只要去買兩本合適的書就行了。下面這些主題是你在選購書籍應該考慮的。
  * C++
  * Windows API’s
  * DirectX
  * Game Programming
  * Math
  
關於 C++ 的書,最好是集中講解標準 C++ 的,以免分散你的學習注意力。不管今後系統平台如何變化,這些基礎的東西都會有用。同時,熟練掌握 C++ 會對你今後除錯程式大有好處。
  
至於 Windows API (Application Programming Interface) 的書,千萬不要去看那些大談特談 MFC (Microsoft Foundation Classes) 的,完全不談 MFC 的書才是你的選擇。原因很簡單,我們做遊戲根本就不用 MFC。它的類又大又慢,簡直就是故意同我們遊戲的需求作對。
  
DirectX 是 Windows 95 下的一套專用 API,用來處理對圖形、聲音、網絡以及 3D 加速硬體的訪問。Microsoft 為 DirectX 提供了一些原始碼程式例子,按照 Microsoft 的慣例,它們是很難讀懂弄明白的。涉及這個主題的書最好能夠詳細告訴你各個例子程式的每一行代碼實際上在幹什麼,怎樣在自己的制作中使用它們。
  
一本好的關於 Game Programming 的書應該教會你各種基本要素,去指導你怎樣寫出一個電腦遊戲,它將帶你深入接觸制作電腦遊戲的最簡單直接的元素。對初學者來說,看看那些涉及許多種不同類型的書可能會比只看詳細談論某一特定類型的書收穫更大。
  
Math 絕對是制作電腦遊戲必不可少的東西,沒有哪種數學不能應用在電腦遊戲上。對初學者來說,應該記住各種基本的代數方程式,熟悉三角運算和幾何學等等。3D 圖形學所涉及的數學知識比較複雜,所以在初期先別去踫它。不要把 設計3D 遊戲作為你的起點,它遠遠超出了你的承受能力。一步跨出半米,你肯定能做到,一步飛越大峽谷,那怕是跳遠冠軍都不行,請記住,你我只是普通人,不是漫畫裡的超人。如果你還不明白這一點,可以去思考一個事實:制作一個優秀的3D 遊戲至少需要數百萬元以上的預算。
   我應該單獨幹還是與人合伙?這其實全看你的個人喜好。
你能同其他人融洽相處嗎?
你願意同他人一起承擔責任嗎?
  你能組織管理好其他人嗎?
或者你希望別人來領導你?
  
我個人認為,在開始時還是自己單幹比較合適一些。起碼你需要成為一個有足夠能力的程式人員,並親自動手做一些小小的遊戲。需要什麼圖片的話,就自己畫,即使你畫得很糟也沒有關係,這個過程只是為了讓你能夠增長寶貴的經驗。等到今後著手幹一個具有更高標準和要求的企劃案時,這些經驗會對你有極大的幫助。另外一個辦法是使用一些現成的資源,比方說在Internet 上去搜尋一些共享圖片庫什麼的,這樣做可以為你節省大量的時間。還有人從現成的遊戲裡竊取資源,如果你也想如法炮制,請慎重考慮此舉所引起的嚴重後果。
  
假若你考慮自己成立一個制作小組,最重要的事情就是謹慎地選擇你的小組成員。管人是一件費時費力的工作,儘管有不少人搶著幹,但真正幹好了的又有幾人呢?一旦企劃案被分配下去後,隨便一個傢伙的耽擱都會延誤你的企劃案進度。
  
應該創作什麼內容?很自然地,你首先會想到,應該是做哪種類型的遊戲?飛行模擬、角色扮演、動作射擊……
  理所當然,你所需考慮的自然是你實際能完成並能吸引自己的那種類型。只有這樣,當你遇到困難時,才會有激情去克服困難並最終完成你的遊戲。很難想像,如果讓你去做根本不感興趣的那種遊戲,你會有足夠的動力去把它完成。
  
許多人開始想到的就是制作角色扮演遊戲。然而,實際情況表明,將角色扮演類遊戲作為第一個設計遊戲的目標是非常不明智的行為。順便提一句,本人便擁有這種不明智的過去,帶領四個人足足白忙了一年半。
  
最好的方法是做一個非常簡單的遊戲,以至於你絕不可能失敗。有很多人是從打磚塊、堆方塊、吃豆豆等小遊戲做起的。如果你也有這種想法,就應該堅持下去,直到這個遊戲得以徹底實現。記住,在這個遊戲沒完成以前,不要急著去開始做其它所謂更大更好的遊戲。遊戲設計在很大程度上就是在於你能否堅持到最後,在這個過程中,大約是每五十個遊戲中只有一個是完工了的,你想成為另外那四十九個中的一員嗎?

怎樣實現設計企劃案:
  先給你的遊戲擬訂一個良好的規劃,詳細描述從頭到尾每一屏的內容,以及玩家在其間怎樣與電腦發生互動等等。需要如此詳細描述的一個原因是,如果你自己都不確定想要在遊戲中實現什麼目標,你就會變得猶豫不決,不時地改變主意,不斷地加入一些讓你的程式無法協調的東西……這又怎麼保證能把它完成?更不要說按時完成了。
  
這樣看來,我們確實需要一個設計企劃案。實際上每個遊戲的開發者都會有非常詳盡的設計企劃案,關於這點,有人甚至說:一個設計企劃案應該詳盡到任何兩個不同的開發小組按照它的指引都會寫出一個同樣的遊戲。
  
一旦你考慮到人們對於同一事物所做出的千奇百怪的解釋,你就可以體會到設計企劃案的巨大意義。那麼什麼是設計企劃案呢?
  
一個設計企劃案通常會分為許多條目,俗話說百聞不如一見,看個例子你就明白了。
  一、 一般性描述
  1.背景故事
  2.遊戲介紹
  3.遊戲人物表
  4.特徵列表清單
  5.定義和描述
  6.遊戲介紹過程
  7.遊戲選擇過程
  8.遊戲開始動畫
  9.遊戲的進行過程
  10.遊戲的關卡
  11.遊戲的事件
  12.結束遊戲
  13.退出遊戲
  二、屏幕描述和用戶界面規範
  1.遊戲介紹過程或是遊戲開場動畫
  2.遊戲選擇菜單
  3.在遊戲開始前的選項設置子菜單
  4.遊戲屏幕
  5.屏幕流程圖
  6.控制
  三、藝術規範
  1.顏色和分辨率模式
  2.掩膜顏色
  3.文件類型和命名規則
  4.背景藝術列表清單
  5.前景藝術列表清單
  6.人物藝術列表清單
  四、音樂音效規範
  1.聲音效果列表清單
  2.配音演員列表清單
  3.音樂列表清單及其描述
  五、實例規範 (具體實現)
  1.企劃案實施過程及人員安排
  2.遊戲完工的標誌
  3.所需的函數與過程
  4.角色所需的信息
  5.畫面如何繪制
  6.動畫每秒所需幀數
  7.遊戲開發所需的資源庫
  8.整個遊戲從頭到尾的流程圖
  六、人工智能規範
  1.角色所需知道的知識
  2.角色的實際行為同現實世界中的真實行為的區別
  3.平衡性考慮
  七、法律資料
  1.版權通告
  2.保密協議
  
你已經看到,只是一個簡要的提綱就這麼長。一旦加上詳盡的內容,這個企劃案就會變得非常大。一個大中型企劃案至少會有一百頁以上的文檔。那麼設計企劃案要寫多少才夠呢?
  
不用擔心,出於平衡性的考慮,你總有一天會停手的。寫得過多實際上也不是好事情,你會在沮喪中耗盡熱情,最後不得不痛苦地取消企劃案。
  
儘管寫起企劃案來是如此地費力,但這種努力絕對是值得的。你的思路會在企劃案書寫過程中定型,你會逼著自己回答:“我該怎樣來完成這項工作?”在做遊戲時,掌握這一點是絕對必要的,它將給你指明一個正確的方向。
  
無論如何,你至少應該花上幾天去著手寫些企劃案,用這點時間,你可以完成一個初步的框架。從這以後開始,隨著遊戲的進展,你會不斷發現某些東西是你所無法實現的,這時就是你該回過頭來修改企劃案的時候了。遵循這個過程,你將不會偏離你的最終目標。
  
有人可能會問,我只想編一個小小的遊戲,那我還是需要寫設計企劃案嗎?
  
這個問題的答案絕對為“是”。除了為你今後進入這個行業打下基礎以外,其主要原因有兩點:第一,在這種情況下,設計企劃案同樣會指導你編程;第二,因為是個小遊戲,那麼設計企劃案也不可能太長。還有什麼說的?堅持寫吧!
  
接下來,該考慮一個大家都很關心的重要問題:
  制作過程中遇到無法解決的困難時該怎麼辦?
  
這種倒霉的事情誰都會踫到,即使一個很有經驗的遊戲開發者有時也會遇到他覺得無法逾越的障礙。幸運的是,我們處在網絡時代,在 Internet 上你會得到所急需的幫助。不過由於中文信息太少的緣故,這要附帶一個條件,即你的英語能力不能過低。
  
據我所知,有很多網站有遊戲開發的各類相關指南,用搜索引擎可以很容易地發現它們。如果不知道搜索所用的關鍵字,你可以試一試“games programming”,剩下來的工作就是一個個地去瀏覽搜索結果。筆者曾用這種方法找到過很多好東西。
  
如果這樣還不夠的話,你可以去新聞組試一下。不過在你第一次發帖子之前,你應該先留心觀察幾天,看看這裡的人們是怎麼做的,免得亂貼東西上去後會惹人嘲笑及反感。有著悠久歷史的 rec.games.programmer 新聞組前不久被分成了 comp.games.development 一系列的新聞組,這絕對是你該常去的地方。如果你上不了這個新聞組,微軟的 msnews.microsoft.com 也是一個值得流連之處。至於國內的那些新聞組論壇什麼的,去不去都無所謂,實際上它們幫不了你多少忙。
  
使用新聞組時一定要注意選擇適當的組發帖子,不要把關於 DirectX 的問題拿到設計組或是藝術組去問。發出帖子後,即使沒有人馬上回答,也要耐心地多等上兩天後再重新發問。

聯繫出版發行商:
  如此日復一日年復一年,終於有一天遊戲做好,現在又該幹什麼?
這是你該好好想想怎樣發佈你大作的時候,你做這個遊戲的目的不會只是拿來自己一個人偷著玩的罷?我們一起來看看有那些途徑可以幫你完成這個事情。
  
肯定有人想過、試過自己去賣他們的遊戲軟體,但我實在是想不出這樣的結果有多麼美好。還記得前面提到的出版發行商嗎?你可以壯著膽子去找他們(嗜錢的動物),他們會幫你把遊戲擺上商店的貨架。不過要讓這群傢伙如此幹的唯一前提就是,你開發出的遊戲產品質量要足夠地好,至少要比已經擺在貨架上的大部分遊戲都好。
  
儘管已經有了這些途徑,還是有人喜歡用共享的方式發放自己的遊戲軟體。如你可以將遊戲的DEMO發到自己或相關的網站上,也可以放到遊戲雜誌這樣的光碟上,讓更多的人了解你的遊戲,並能收集到很多寶貴的意見。
  
需要注意的是,不要直接把你的遊戲產品寄給那些網站。在向他們展示產品之前,最好先同他們簽訂一個非洩密協議(Non-Disclosure Agreement,即 NDA)。如果這份協議簽署得當的話,它可以很好地保護你的權益。NDA 這樣的協議是一個標準程式,你千萬不要忽略它。如果你發現他們的網站沒有關於 NDA 方面的信息,你可以發個 E–mail 進行詢問。詢問時請說明你開發的遊戲類型、運行平台,看看是不是人家所需要的。

保護自己的權益:
  好好保護你的遊戲產品是非常重要的。你已經為此付出了無數的汗水和心血,難道會忍心看著有人從中竊取原本屬於你的權益?
  
儘管你所寫下的一切內容都受版權法所保護,但你首先必須證明那些東西確實是你所寫的。為達此目的,你要做的第一件事就是在產品中放一條版權聲明,宣稱你對作品擁有版權,這樣做的目的是告訴其他人你非常清楚地知道對產品所享有的權益。
  
一個可靠的辦法當然是到國家版權局登記,根據本人的體會,這雖然要花你不少時間和精力,但絕對是值得的。像本人一樣貧困的同行們還想出了一個“經典”的辦法:把想要獲得版權的東西及相關資料用密封袋裝好,再通過郵局寄給自己,根據郵包上的日期以後就能證明產品的日期。根據國外有關的案例表明,這種證據是合法的,法院會支持這種證明。因此,你可以開動腦筋,把這個辦法洋為中用。
  
使用註冊商標是最可靠的辦法,對你的權益保護得也最完整,但它稍微有點貴,你不一定付得起這筆錢。

嘮叨了這麼半天,我也有點累了,不知道你是否有所收穫,我想,只要你做事足夠努力,一步步地不斷前進,你總有一天會做出期望中的遊戲的,祝你好運!

※ Origin: 成功大學資訊工程學系[醉資心BBS] <goodguy.csie.ncku.edu.tw> 
◆ From: p191059.adsl.ncku.edu.tw

廣告

4 thoughts on “你想成為遊戲開發者

  1. 好可怕,一進來就看到自己的id,想了老半天沒印象寫過這文章,恍然大悟原來是轉錄的 XD

  2. 這恐怕是這個文件庫最大的隱憂…..低調的發文者搶著遮臉這樣.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s