網絡游戲開發入門指導
我經常被人問及一個問題,那就是:只有一點編程經驗或一點也沒有的人如何入門網絡游戲開發這個行業。在這以前,我會盡我所能地對提問者進行一對一的解答和幫助。然而現在看來已不可能了,因為當問題如潮涌般地涌向我時,我幾乎都駕馭不住。因此,我想是時候將我所有的意見和建議編輯成冊,為大家提供一個參考。
本文旨在幫助那些想制作自己的游戲,卻苦于無門的人們。事實上,我已經將我的讀者群劃分成編程經驗值為0的一類了。此文主要講述游戲編程及游戲設計方面的問題,不關游戲的藝術效果制作的事。關于游戲市場運作方面的東西,此文我不會提及,因為市面上關于此類的信息資源已如洪水猛獸般泛濫成災了。但對于在制作游戲過程中你所遇到的方方面面的問題,我都會做出簡單概述。最后,請不要將我為你鋪的這條通往制作游戲之路看成是唯一的,甚至是最好的。盡管它為我和其他入門者曾做出"不朽"的貢獻。
選擇一個編程語言
開始學習制作游戲的時候,你所要做的第一件事就是選擇一個編程語言,其選擇多多,包括Basic、Pascal、 C、C++、Java等等。當然,關于哪種語言對初學者來說是最合適的問題,其爭論也甚為激烈。我建議大家可以看看John Hattan#s的大作"What Language Do I Use?",其中提及了不少當前甚為流行的編程語言。
我首先推薦c和c++。有些人會說:"這個語言也對初學者來說太高級了吧",但你看,我自個兒就從這種語言的起步的,因此對于這種說法,鄙人不敢苛同。另外,C、C++語言在市面上使用甚廣,所以你能比較容易地得到參考資源和各種幫助。當然問題的關鍵并不在于你是否真的從學習c和c++編程語言開始你的游戲制作涯,事實上,無論你學會了哪種語言,學習另一種就是小菜一碟了。無論如何,如果你決定從C/C++開始的話,那千萬要確定在你開始學習面向對象(object-oriented)的編程方式之前你已經掌握了面向過程(procedural)化的編程。
當你雄心勃勃地開始學習C、C++時,卻沮喪地發現它太難了,這時你可以回頭看看有什么更為簡單易學的語言,例如Basic或Pascal,其實這也無傷大雅,沒什么難為情的。但我所強調的一點就是如果你堅持學習C、C++,而且找到了好的學習資源的話,學會C、C++也是水到渠成之事。
你的下一個問題恐怕是:我該怎么學習C/C++呢。 我很樂意回答這個問題。最好的方式就是加入一個學習班,這樣的話你就有老師了,他們會為你排疑解惑,并幫助你提高業務水平,老師所布置的家庭作業能讓你將你學習到的東西應用到實踐中。
如果你沒有條件上學習班的話,那第二個辦法就是買些好書了。我建議你到當地的書店走走,并大致瀏覽一下書的內容介紹,選中一本你確定可以看懂的再買,掌握一定的知識后,你就可以買一本更為高深點的書,那時你也知道你應該買什么書了。
說到這里,我想稍做停頓,因為我想談談關于經濟承受力的問題----據我觀察,這可是廣大入門者,特別是青年游戲開發者都普遍關心的問題,他們大多數對于購買課本或別的學習資料而感到囊中羞澀。不過不用擔心,首先還是有很多免費資源可以利用嘛,像當地的圖書館呀,還有Macmillan Computer Publishing網站,(網址是: http://www.mcp.com/personal), 在上面你可下載各種各樣的編程書籍。不過,如果確實想成為一個編程高手的吧,那你就得為你的事業做出必要的投資了。因為無論你采用何種途徑,都離不開錢呀!(當然,除非你嘗試非法途徑。)
其實網上也有不少的學習C/C++語言的輔導資料,但依我之見,那些輔導資料最好作書本學習的一個補充, 而不應該成為你唯一的學習資源。
選擇一個合適的編輯器
你寫的程序,也叫做源代碼,可用一個文本文件保留起來,你甚至可以用“寫字板(NOTEPAD)”寫C/C++程序。但如果你要把它轉化成一個可執行文件那就得費些周折了,這時你可以使用編輯器。
市面上有不少各種各樣的編輯器,其中免費的也為數不菲。但選擇一個你順心順手的至關重要。免費的編輯器有一項好處就是你可以拿來試試,看看哪款最稱心如意。但絕大多數免費編輯器不是“先天條件不足”,就是 "后天發育不良"(意思是缺陷很多),遠不如商業版的。而且所有的商業版的編輯器都在測試階段,價格不高,而且其功能也與正版差不了多少。
總之,編輯器的選擇取決于你的經濟承受力,以及你文件運行的操作系統編及開發平臺。如果你打算在Windows上開發的話,那我強力推薦Microsoft Visual C++,它有強大的開發環境,能讓你的開發工作如魚得水般的自如。另外學生朋友可以以一個低廉的價格購買到它。但如果你想用dos開發的話,你最好使用DJGPP,可免費得到。
選擇一個合適目標平臺
Windows:如果你想在游戲領域中成為專業人員,或你希望你開發的游戲會有眾多的玩家光顧,那你就選擇Windows吧,因為絕大多數的玩家都使用這玩意兒,它也不會那么快就被逃汰的。DirectX是種能直接操作硬件的開發庫,也就是說有了它,你可以編寫高性能的游戲。
Dos:Dos曾是游戲開發平臺的主流,但它已是昨日黃花了。盡管不少Dos迷仍然用它進行開發,但如今已沒有一款商業游戲是由它做出來的,而它時日將隨著微軟對它的背棄而越發顯得日薄西山,窮途末路。所以如果你才開如開發游戲的話,還是別選Dos為妙,如果你選了的話,那最好適可而止。
Linux:Linux與UNIX有著剪不斷,理還亂的淵源,近來越來越得人心,其原因眾多,包括它的性能穩定性,價格合理以及反微軟陣營等。雖然它的用戶群還不是很大,但它的巨大的發展潛力使得它成為目標平臺之中的合意之選。
Macintosh:Mac有一群為數不小的忠實追隨者,而且幾乎每一個我所知道的MAC狂熱者都向我傾訴了同一個愿望,就是用MAC開發出更多更好的游戲。盡管我倒沒有看到有很多用MAC開發游戲的參考資料,但我堅信將來會有的,因此也許MAC也是一個不錯的選擇呢。
Consoles:游戲機的游戲市場巨大,因此它的發展潛力也不容小瞰。然而,在當前這個年代,以非商業模式去開發游戲機游戲是不合情理的,其緣由甚多,一言難盡。但如果你現在在開發游戲機游戲的話,那你最好是在一家商業游戲公司工作。
開發好的游戲
現在是時候讓我們具體討論一下開發游戲的事了。為方便起見,我假設你用C/C++在WINDOWS上開發,不過你選擇其它的開發工具或開發環境的話,我所說的也同樣適用。
首先,在你開始考慮開始開發游戲之前,你得是一個玩C/C++的好手,你得懂得指針,數組,結構,最好還知道類,你得熟練地運用它們。如果萬事俱備的話,那就開始制作游戲吧。
其次,別指望本文能面面俱到,教會你在開發游戲中所有知識,所幸的是,也沒有必要,因為市面關于制作游戲的書可有不少,而網上諸如此類的輔導資料也數不勝數,比如gamedev。net就應有盡有。好了,下面就是我提出的幾點建議:
選一本或幾本適用的書:對于Windows初學者來說,Tricks of the Windows Game Programming Gurus 網站可是一個很好的資源可供利用。另外,讀透一本或幾本教科書,并認真實踐每個案例。
在線的資料是很好的補充教材:它不但對開發知識分門別類,而且還涵蓋了書本上沒有的知識。
找高手尋救幫助:如果你在書上或網上找不到你問題的答案,那就在留言簿上留下問題,或在聊天室里問問別人吧,有很多熱心腸的人都樂意為您效勞,OGDEV。NET就是一個很好的論壇。但是光"學"不行,還得"學以致用"。先從開發簡單的游戲開始,然后慢慢深入。一開始的時候,你可選擇獨立學習,千萬別忙著加入游戲制作團隊,那樣只會使你的學習進程"減速",而不是"加速"。但一旦為自己武裝了幾個像樣的小游戲,那就是你在大團隊里一展身手了的時候了。
【編輯推薦】