如果你想完成一款游戲,你就必須認(rèn)識到這一點(diǎn)。無論你有多看重自己以及自己的想法,你都要勇于拋棄其中的多數(shù)想法。
在過去三個月中,我都在致力于開發(fā)一款名為《Lunar Lander 3D》的小游戲。我著手這個項目的主要原因是希望掌握創(chuàng)造游戲所需了解的知識。除此之外,我還希望借此轉(zhuǎn)移自己在課業(yè)上的壓力。雖然這款游戲很小很簡單,其開發(fā)過程卻讓我收獲了大量有用的知識。我將在本文列出自己在開發(fā)游戲過程中學(xué)到的一些重要知識。
在進(jìn)入正題之前,我想先說明一下,我并不是什么專業(yè)人士。我只是一個常坐在電腦前的呆子,本文內(nèi)容面向想自己試著創(chuàng)造一款游戲的業(yè)余程序員和愛好者。所以本文的重點(diǎn)是讓你如何完成一款游戲,而非制作一款技術(shù)華麗的半成品游戲。
你的理念并不罕見
如果你想完成一款游戲,你就必須認(rèn)識到這一點(diǎn)。無論你有多看重自己以及自己的想法,你都要勇于拋棄其中的多數(shù)想法。當(dāng)我開始制作自己的游戲時,滿腦子都是自己想用的理念。我想在游戲世界中加入移動的平臺的障礙,復(fù)雜的攝像系統(tǒng)以及一系列其他元素。但我知道如果我想完成游戲,就得更改自己的多數(shù)理念。要記住當(dāng)你是孤軍奮戰(zhàn)時,你就無法搞定一個專業(yè)團(tuán)隊需要用一年以上時間才能完成的項目。雖然一年以上的時間對專業(yè)團(tuán)隊來說并非很長的時間,但卻業(yè)余愛好者來說卻是個大難題。要根據(jù)自己的想法合理安排開發(fā)時間,例如將其控制在6個月以內(nèi)。
不要從頭做起
如果你并沒有什么編碼基礎(chǔ),那就無法一開始就編寫出一款游戲。這聽起來難以讓人接受,但如果你確實沒有一系列持續(xù)使用的代碼,你可能就無法持續(xù)長時間地編程。如果你沒有那么長久的編程經(jīng)驗,那么就不能幻想開發(fā)一款游戲。我開始制作自己的游戲時,已經(jīng)有了一個很大的代碼庫。我針對一般窗口創(chuàng)造、輸入管理、粒子效果、運(yùn)算以及各類用途的代碼。有了這些現(xiàn)成的代碼,我就能夠快速展開工作,制作與游戲相關(guān)的內(nèi)容。除此之外,我還不需要去測試這些代碼,因為我之前編寫的時候就已經(jīng)測試過了。你在開始創(chuàng)造自己的游戲之前,不需要逐個編寫每一節(jié)代碼。只要花點(diǎn)時間先做一點(diǎn)基礎(chǔ)工作即可。如果你覺得自己還是得創(chuàng)建一個代碼庫,那就先編寫小型用來測試一下。我處理粒子效果、輸入管理和控制執(zhí)行代碼時就是這么做的。這可能不像制作游戲一樣令人興奮,但對你卻有長期的幫助。
借鑒想法
我要再次強(qiáng)調(diào)這個環(huán)節(jié)的重要性。當(dāng)你開始編寫一款游戲時,不要害怕使用他人的理念,庫或工具?梢员M量借鑒,因為這可以讓你的工作更輕松。我在制作自己的游戲時,借鑒了Conor Stoke的軸線對齊邊界框樹,Paul Nettle的碰撞檢測文件,id Software的Q3Radiant關(guān)卡編輯器。為什么我要用其他人的想法和工具來解決自己本可以完成的問題呢?原因就在于,這樣更簡單——我使用這些不同的資源是因為節(jié)省時間。使用現(xiàn)成的方法進(jìn)行碰撞檢測,這樣我就不需要將時間浪費(fèi)在測試自己的碰撞系統(tǒng)上了。我根據(jù)自己的需求調(diào)整了id Software的地圖編輯器,就不需要再制作自己的編輯器了。除此之外,id地圖編輯器非常適合我,這又為我節(jié)省了不少功夫。不要執(zhí)拗于自己的游戲一定要有定制工具和解決方案。如果你夠精明,就會知道何時要采用新理念,何時可以使用現(xiàn)成的東西。
避免使用3D地形引擎
如果是為了創(chuàng)造游戲而制作引擎,那就很可能被卡在半途。無論你多努力地嘗試,總會發(fā)現(xiàn)自己無所進(jìn)展。根據(jù)我制作游戲的經(jīng)驗,你自己編寫游戲時并不需要用到引擎。要記住,你是一個人而不是一家公司在編寫游戲。你不需要一個反復(fù)重用的引擎。編寫引擎的一個理由就是代碼重用,但沒有引擎你也照樣可以做到這一點(diǎn)。只要設(shè)計合理,你就能夠?qū)⒆约浩渌椖康脑刂赜玫接螒蛏。例如,我編寫的游戲所用的新代碼都不是特定的游戲代碼,我可以將其重用于其他項目。編寫引擎以獲得引擎本身的知識及其背后的設(shè)計過程當(dāng)然可以,像如果你是要制作一款游戲那就要避免這種情況了。
不要在圖像上畫蛇添足
你制作自己的游戲時,不要添加一些并不會讓游戲更棒的圖像特點(diǎn)。不要使用GeForce20那種很棒的擴(kuò)展功能,以及其他的逐象素、凹凸貼圖、紋理動畫、逐象素深度陰影等元素,因為你根本就不需要。如果你將自己的游戲定義為靠圖像來撐場面的那種,那你可能并不了解游戲。你制作的只是一個技術(shù)演示樣本。我在自己的游戲中使用的最復(fù)雜的圖像功能就是多重紋理,但如果要游戲正常運(yùn)行也并不需要這種功能。我知道自己并非id Software成員,也并不需要很高端的硬件來支持我這款簡單的游戲。如果你保持簡單性,不但可以擴(kuò)大游戲受眾,還能夠?qū)⒆约旱木杏诟匾沫h(huán)節(jié),例如游戲玩法。
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://dstuf.com/