今天的遊戲產業已經初俱規模,尤其網絡遊戲這一塊更是如日中天,於是乎就有很多青年人投身到了這個領域來.他們壞揣著美好的夢想,希望有那麼一天可以開發出一款令人難忘的遊戲.當然我也算是他們其中的一員,我同樣嚮往著那一天,可是我知道如果沒有打好堅實的基礎,那麼一切都將成為空談.
首先我談談做好一個遊戲需要具備那些知識和能力.第一要有頑強的意志力,因為無論開發甚麼類型的遊戲都要經歷一個艱苦的過程,其間總會碰到各種各樣的問題,這些問題可能你之前遇到過,有些卻是從沒見過的技術難關.一旦短時間內無法解決,人們必然會產生厭煩的情緒,但是如果就這樣向困難低頭,顯然是不明智的.這個時候意志力就表現得十分重要,我希望有志於此項工作的朋友能夠在解決問題的過程中找到樂趣,也只有這樣才能堅持自己的理想.我現在深切地體會到遊戲開發者的痛苦,他們為了能讓玩家玩到好玩的遊戲付出的實在是太多了.不過我也夠想像他們在看到無數玩家沉濜於他們製作的遊戲時那種無以言表的喜悅之情.
第二要有堅實的數學功底.現在很多的遊戲開發技術都牽涉到較深的數學知識,尤其是3D遊戲,它所覆蓋的數學知識更加廣泛,從立體幾何到線性代數無所不包.
第三要有出色的計算機編程能力.當前開發遊戲的主流語言是C++,但也有許多遊戲是用C來編寫的,例如我們常見的Quake引擎,它主要就是C,其中只有一小部分涉及到C++.為甚麼要選擇C呢,設計者主要還是考慮了效率因素,相比之下C要比C++在程序執行上要快.其中一個原因是C++類中的虛函數要消耗部分執行時間.除了C和C++以外程序員為了盡可能地提高程序執行速度,他們還會使用彙編語言,彙編語言是最接近底層的語言,像遊戲這種對效率要求極高的應用,如果沒有精確到指令級的代碼,那麼想挖掘機器的所有潛力幾乎是不可能的.了解計算機的運行機理可以幫助我們編寫出更加高效的代碼,但是應該指出的是不要一味只追求代碼的高效性,而把系統的良好架構給破壞了.我們編寫的代碼必須首先增強它的可讀性,今後可以很方便地維護它.當然可復用性也是不可或缺的,要做到可復用性就必須系統設計階段很下工夫,把類以及類的層次關係調配好,並且謹慎地使用各種設計模式,只有這樣你的代碼才會生生不息.
最後就是要有一個好的創意,其實這個對於遊戲開發來說是十分重要的,而且很容易被人忽視.假設你開始的創意非常糟糕的話,那麼即使你使用了大量先進的技術也是於事無補.相反如果你的創意很棒,雖然你並不擁有很高的技術,但市場確更容易接受.遊戲團隊中的策劃地位異常突出.
(未完)