入門者的福音:游戲開發(fā)新手基礎(chǔ)向?qū)?/h1>
發(fā)表時(shí)間:2024-01-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我經(jīng)常被問及:一個(gè)具有很少甚至沒有編程經(jīng)驗(yàn)的人要如何開始游戲制作。直到目前為止,我總是盡我所能一個(gè)一個(gè)解答。然而,問題的數(shù)量已經(jīng)增長(zhǎng)到了一個(gè)難以處理的水平,于是,我便決定把所有的建議匯總在一篇文章里作為參考提供給人們。 這篇文章主要面向那些想開發(fā)自己的游戲,但僅有一點(diǎn)點(diǎn)或沒有半點(diǎn)編程經(jīng)驗(yàn)的人們...
我經(jīng)常被問及:一個(gè)具有很少甚至沒有編程經(jīng)驗(yàn)的人要如何開始游戲制作。直到目前為止,我總是盡我所能一個(gè)一個(gè)解答。然而,問題的數(shù)量已經(jīng)增長(zhǎng)到了一個(gè)難以處理的水平,于是,我便決定把所有的建議匯總在一篇文章里作為參考提供給人們。
這篇文章主要面向那些想開發(fā)自己的游戲,但僅有一點(diǎn)點(diǎn)或沒有半點(diǎn)編程經(jīng)驗(yàn)的人們。實(shí)際上,我也假定讀者根本沒有任何的編程知識(shí)。我將把重點(diǎn)放在游戲開發(fā)的編程和設(shè)計(jì)方面,而不是藝術(shù)方面。我也不準(zhǔn)備對(duì)游戲行業(yè)進(jìn)行論述(因?yàn)檫@個(gè)話題的資料太多了),但是,我會(huì)帶你瀏覽一下在制作游戲之前需要做的一些事情。該說明的一點(diǎn)是,不要將我這里所介紹的方法當(dāng)作唯一的或最好的學(xué)習(xí)游戲制作的路徑,但對(duì)于我和其他人來說,它是有效的。
1、選擇一門語(yǔ)言
第一件要做的事就是選擇一門語(yǔ)言。你有一大堆的選擇,包括 Basic、Pascal、C、C++、Java 等等,同樣也有一大堆關(guān)于哪門語(yǔ)言最適合初學(xué)者的爭(zhēng)論。欲了解各種語(yǔ)言的優(yōu)缺點(diǎn),請(qǐng)參閱 John Hattan 的絕妙文章《我該使用什么語(yǔ)言》。
我這里建議使用 C 和 C++。有些人認(rèn)為這些語(yǔ)言對(duì)于初學(xué)者來說太難了,但從我個(gè)人角度來說我是反對(duì)這個(gè)觀點(diǎn)的,因?yàn)槲易约壕褪菑?C++ 起步的。另外,C/C++ 是目前最廣泛應(yīng)用的語(yǔ)言,因此,你能找到大量的資料和幫助。至于先學(xué) C 還是先學(xué) C++ 的問題不大,因?yàn)橐坏┠銓W(xué)習(xí)了其中一種,再學(xué)習(xí)另外一種就沒太大問題了。不過,如果你一開始就選擇 C++,請(qǐng)確信在學(xué)習(xí)面向?qū)ο缶幊讨埃阋呀?jīng)了解并掌握了面向過程編程。(比如說,如果你在不使用類的前提下仍無(wú)法編好程序,先不要急于學(xué)習(xí)類)
如果你發(fā)現(xiàn)學(xué)習(xí) C/C++ 是一件很困難的事,不要緊,回過頭選一門比較簡(jiǎn)單的語(yǔ)言來學(xué),比如 Basic 或 Pascal。不過我認(rèn)為,如果你堅(jiān)持下去,并找一些好的資料,學(xué)習(xí) C/C++ 的問題不大。
你的下一個(gè)問題是:我如何學(xué)習(xí) C/C++?我很高興你問這個(gè)問題。最好的方法是去聽課。有沒有老師幫助解答問題,對(duì)于你的發(fā)展影響巨大,而且編程作業(yè)將確保你確實(shí)掌握了所學(xué)的東西。
如果聽課不在你的考慮范圍內(nèi),下一個(gè)最好的辦法就是找一些好書。不要把注意力放在那些“大全”書上,因?yàn)槟憬K究會(huì)買幾本。我建議你去一個(gè)本地書店,花點(diǎn)時(shí)間瀏覽一下介紹 C 和 C++ 的書,直到找到你能理解并能從中學(xué)到東西的一本。同時(shí),你可能還想買幾本進(jìn)階書或是一本參考書,但一旦你具有了這門語(yǔ)言的部分知識(shí),你會(huì)對(duì)你需要什么有更好主意?梢栽诰W(wǎng)站BOOKS頻道中找到一些建議。
在此,我簡(jiǎn)要的說明一下我見過的很多入門程序員,尤其是年輕人關(guān)心的事情:沒有錢買書或其他東西。首先,有許多資源是免費(fèi)的,包括圖書館和 Macmillan Computer Publishing (他們的網(wǎng)站www.mcp.com 上有數(shù)百本編程的書)。其次,如果你想成為一名優(yōu)秀的程序員,你不得不考慮在這上面的投資。利用各種手段(合法的 ;<)去弄點(diǎn)鈔票來。
網(wǎng)絡(luò)上有大量的 C 和 C++ 的學(xué)習(xí)教程,但是我認(rèn)為這些教程作為你學(xué)習(xí)書本的參考要比作為單獨(dú)的材料好得多。
2、選擇合適的編譯器
你寫的程序,或源碼是以文本文件存儲(chǔ)的,你甚至可以用記事本來寫 C/C++ 程序。但是,必須有樣?xùn)|西能把這些源碼轉(zhuǎn)化成一個(gè)可執(zhí)行文件。對(duì)于 C 和 C++ 來說,這樣?xùn)|西就是一個(gè)編譯器。
現(xiàn)在有大量的編譯器存在,其中有許多是免費(fèi)的。選擇一個(gè)合適的編譯器是非常重要的,而免費(fèi)編譯器有個(gè)好處就是你能一個(gè)一個(gè)的試,看哪個(gè)你最喜歡。但是,免費(fèi)編譯器經(jīng)常是比商業(yè)編譯器功能少或缺少良好的技術(shù)支持。幸運(yùn)的是,大多數(shù)商業(yè)編譯器都有與完整版功能相同,但價(jià)格便宜許多的介紹版或?qū)W習(xí)版,唯一的限制是,你不能發(fā)布使用該編譯器開發(fā)的程序(這點(diǎn)你肯定維持不久)。
3、選擇一個(gè)目標(biāo)平臺(tái)
雖然你可能最終會(huì)為各種平臺(tái)開發(fā)程序,你還是應(yīng)該選擇其中之一進(jìn)行學(xué)習(xí)。當(dāng)你學(xué)習(xí)語(yǔ)言的時(shí)候,在沒進(jìn)入圖象編程之前,你大概想使用一個(gè)非 GUI 的操作系統(tǒng),比如 DOS 或 UNIX。這有助于你將注意力集中在語(yǔ)言學(xué)習(xí)上,從而避開一些高層的問題,如 Windows 編程。
不過,一旦你準(zhǔn)備開始制作游戲,你就該考慮轉(zhuǎn)換你的目標(biāo)平臺(tái)了。一下是幾個(gè)常用的平臺(tái):
Windows:如果你想在游戲行業(yè)里專職工作,或者你想讓一大群人玩你的游戲,那么 Windows 是你的首選。你的目標(biāo)客戶大多數(shù)使用 Windows,且這個(gè)情況不會(huì)很快改變。目前大量的 Windows 游戲使用一種你大概聽說過的名為 DirectX 的技術(shù)。DirectX 是一個(gè)允許你直接操作硬件的程序庫(kù),你可以依靠它寫出高性能的游戲來。
DOS:DOS 曾經(jīng)是游戲的主要平臺(tái),但這已是昨日黃花。雖然有些愛好者仍然在為 DOS 開發(fā)游戲,但是已經(jīng)沒有商業(yè)游戲是為 DOS 開發(fā)的了,而且, DOS 正由于微軟停止對(duì)它的支持而走向衰敗。如果你剛開始做游戲,別選擇 DOS,如果你已經(jīng)這樣做了,不要再停留了。注意:因?yàn)橛泻芏嘤螒蚓幊痰臅菫?DOS 寫的,學(xué)習(xí)這些書時(shí)可能會(huì)認(rèn)為在 DOS 里開發(fā)游戲有理有據(jù)。但是,隨著 Windows 游戲編程書籍?dāng)?shù)量的增長(zhǎng),這種爭(zhēng)論變得越來越少,也越來越?jīng)]有意義。
Linux:Linux 是 UNIX 的一個(gè)變種,由于它具有穩(wěn)定、便宜、反微軟情節(jié)等多個(gè)因素,它正變得越來越受歡迎。雖然目前的 Linux 用戶還比較少,但是隨著它的熱愛者和市場(chǎng)的潛在增長(zhǎng),它也成為了作為目標(biāo)平臺(tái)的可行選擇。
Macintosh:蘋果機(jī)擁有一群數(shù)量不多但非常忠誠(chéng)的追隨者,幾乎每個(gè)我見過的蘋果機(jī)愛好者都有一個(gè)強(qiáng)烈渴望更多蘋果機(jī)游戲的愿望。我沒有看過多少在蘋果機(jī)上開發(fā)游戲的資料,但我確信確實(shí)有,因此,這也是個(gè)合理的選擇。
家庭游戲機(jī):游戲機(jī)(如 Playstation、N64、Dreamcast 等等)游戲市場(chǎng)非常巨大,前景可觀。然而,由于種種原因,開發(fā)非商業(yè)性的游戲機(jī)游戲在目前來說是不太可能的。你為游戲機(jī)開發(fā)的游戲大多都會(huì)被商業(yè)游戲公司買走。
4、充足電
是討論真正做游戲的時(shí)候了。雖然我所說的大部分內(nèi)容適用于其他語(yǔ)言,為簡(jiǎn)單起見,我將假定你選擇了 C/C++ 來進(jìn)行 Windows 編程。
首先,在你考慮如何開始做游戲之前,你應(yīng)該能很好的掌握 C 和 C++。你應(yīng)該了解并精通指針、陣列、結(jié)構(gòu)、函數(shù),以及類等。做到了這一點(diǎn),你就可以開始制作游戲了。
本文無(wú)法教授你關(guān)于制作游戲所該了解的一切。幸運(yùn)的是,這也不是必要的。有很多關(guān)于這方面的書,網(wǎng)上也有數(shù)以百計(jì)的教程。GameDev.net 應(yīng)該會(huì)有目前你所需要的一切。下面是我對(duì)你起步的一些建議:
學(xué)習(xí)一本或幾本書。對(duì)于 Windows 游戲的初學(xué)程序員,《Tricks of the Windows Game Programming Gurus 》是一本極好的Windows編程入門教程。在這個(gè)站點(diǎn)里擁有許多本站 Books section 里所列出的好書。閱讀這些書籍,運(yùn)行所有的例程,反復(fù)研讀你不理解的章節(jié)。
使用網(wǎng)上教程補(bǔ)充書本的不足。網(wǎng)上教程除了闡明一些你閱讀的東西外,通常也會(huì)包含一些書本上沒有涉及的主題。
找專家進(jìn)行咨詢。如果你無(wú)法從書上或教程中找到答案,到本站的留言版或聊天室來,這里有許多樂于提供幫助的人。
不要把上面幾點(diǎn)當(dāng)成是個(gè)有序的過程,而應(yīng)當(dāng)看作是一個(gè)循環(huán)往復(fù)的并行過程。
僅僅是學(xué)習(xí)、思考是遠(yuǎn)遠(yuǎn)不夠的,你應(yīng)當(dāng)把你所學(xué)的東西付諸實(shí)踐。從一個(gè)簡(jiǎn)單的游戲開始,逐步發(fā)展。你可以閱讀一下 Geoff Howland 的文章《How do I Make Games? A Path to Game Development》。
首先,為自己的工作制定一個(gè)計(jì)劃。不要急于加入一個(gè)團(tuán)隊(duì),因?yàn)槟侵粫?huì)減緩你的學(xué)習(xí)進(jìn)程。當(dāng)你囊中擁有數(shù)個(gè)游戲時(shí),你將為一個(gè)團(tuán)隊(duì)作出更大貢獻(xiàn)。
關(guān)于書本,有件事我要提醒一下:你需要閱讀除了游戲編程外的其他書籍。為了制作出你在商店貨價(jià)里看到的各種游戲,你將不得不鉆研那些比大多數(shù)游戲編程書籍所授內(nèi)容更高深的話題。有些可能你能從教程中找到,但是,你還是有必要買幾本關(guān)于圖形、人工智能、網(wǎng)絡(luò)、物理等等方面的書。這是獲得計(jì)算機(jī)科學(xué)學(xué)位的必經(jīng)之路,因?yàn)槟銓⒈灰髮W(xué)習(xí)一些你認(rèn)為與游戲編程無(wú)關(guān)的課程,而實(shí)際上它們是相關(guān)的。
5、總結(jié)
這里有一些能產(chǎn)生巨大差別的技巧:
要只知道聚集知識(shí),應(yīng)用是關(guān)鍵。除非你使用了,否則你無(wú)法確實(shí)知道和理解這些東西。做一些小的測(cè)試程序來應(yīng)用你所學(xué)的東西,并切實(shí)完成書上每個(gè)章節(jié)后的習(xí)題。
玩大量的游戲。你會(huì)因此找到靈感,從而幫助你制作更優(yōu)秀的游戲。當(dāng)然,這也是一種受歡迎的解除編程壓力的調(diào)劑方式。
幫助別人。在你幫助別人的過程中,你會(huì)學(xué)到更多東西。
完成你的作品。不要陷入這樣一種思想的圈套中:“我知道我可以完成這個(gè)游戲,但是我有個(gè)更好的主意,我要換做這個(gè)好的項(xiàng)目。”如果你能堅(jiān)持有始有終,你會(huì)學(xué)到更多的東西,并且你有作品證明你不僅僅是空談。在你具有豐富的經(jīng)驗(yàn)之前,做得簡(jiǎn)單一點(diǎn),不要嘗試制作一個(gè)又大又復(fù)雜的游戲。
出發(fā)吧!你該動(dòng)手制作 Quake 4 了。當(dāng)然,可能不那么容易,但至少你可以從這個(gè)方向出發(fā),并且知道去哪里查找更多的信息。經(jīng)過多年的努力工作,你會(huì)成功的!
基本上,你選擇什么樣的編譯器取決于你能花多少錢、你將在什么操作系統(tǒng)和平臺(tái)上開發(fā)程序。如果你準(zhǔn)備為 Windows 作貢獻(xiàn),我強(qiáng)烈建議使用微軟的 Visual C++。它具有一個(gè)功能強(qiáng)大的開發(fā)環(huán)境,能讓你倍感輕松,再也沒有其他編譯器能比它更適合開發(fā) Windows 軟件了。如果你是名學(xué)生,你可以以極低的價(jià)格獲得一份拷貝。如果你準(zhǔn)備在 DOS 下開發(fā)程序,你最好使用免費(fèi)的 DJGPP