林越山
【摘 要】塔防游戲是一種非常簡(jiǎn)單的游戲。通常在一張地圖中完成,最早的塔防游戲思維起源于FC游戲小豬打狼,在魔獸RPG地圖中帶火了塔防。敵對(duì)單元有各種基本屬性(如速度、生命值)。防御塔則各自具有不同的能力,不過(guò)無(wú)例外地都需要消耗 金錢來(lái)購(gòu)買,金錢是由玩家通過(guò)擊敗入侵的敵人來(lái)取得的。此論文將構(gòu)建一款基礎(chǔ)級(jí)的塔防游戲,它易于擴(kuò)展,運(yùn)用流行的HTML5、CSS3、和JavaScript來(lái)搭建。HTML5可以在PC,平板和手機(jī)上運(yùn)行。這使得多平臺(tái)下開(kāi)發(fā)變得簡(jiǎn)單。
1.前言
web游戲的開(kāi)發(fā)類似于傳統(tǒng)游戲的開(kāi)發(fā)流程,其開(kāi)發(fā)成員包括策劃,美術(shù),程序,三種主要工種,塔防游戲簡(jiǎn)單易上手,其特性非常適合作為無(wú)客戶端的web游戲開(kāi)發(fā)實(shí)現(xiàn)。
1.1 web游戲開(kāi)發(fā)方法
Web游戲基于http協(xié)議上的游戲開(kāi)發(fā),其特點(diǎn)是無(wú)狀態(tài)。本文開(kāi)發(fā)工具用了vs2010,也是通常企業(yè)級(jí)web站點(diǎn)的開(kāi)發(fā)工具。由于游戲展現(xiàn)需要用到大量圖片,游戲制作者可以網(wǎng)上尋找資源或是美術(shù)外包的形式來(lái)完成美化界面的工作。后端選用了筆者較為熟悉的C#來(lái)實(shí)現(xiàn)。
1.2 web游戲開(kāi)發(fā)過(guò)程
塔防web游戲的開(kāi)發(fā)過(guò)程類似通常的軟件開(kāi)發(fā),又和通常的互聯(lián)網(wǎng)web系統(tǒng)有差異,結(jié)合游戲開(kāi)發(fā)元素,系統(tǒng)分析師一般被主策代替,程序設(shè)計(jì)師一般被主程代替,美工被更加細(xì)分的美術(shù)代替,加之通常的測(cè)試。通常包括如下幾個(gè)步驟:
(1)策劃提策劃案:包括系統(tǒng)設(shè)計(jì)和數(shù)值設(shè)計(jì)。系統(tǒng)設(shè)計(jì),一些塔的種類設(shè)計(jì),種類相克,種類結(jié)合出不同的效等,這些設(shè)計(jì)是要憑借設(shè)計(jì)者的創(chuàng)意以及游戲需求而定。數(shù)值設(shè)計(jì)這個(gè)環(huán)節(jié)我們也是考慮最基本的情況,并且設(shè)計(jì)者們也可以根據(jù)自己想要的效果合理添加內(nèi)容,思路一致。
(2)概要設(shè)計(jì):策劃案明確后,將得到的數(shù)據(jù)分析后,開(kāi)始構(gòu)建數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。概要設(shè)計(jì)文檔形成后,整個(gè)程序的邏輯框架也就形成了。
(3)詳細(xì)設(shè)計(jì):概要設(shè)計(jì)完成后,根據(jù)策劃制定的不同模塊和內(nèi)容需要進(jìn)行詳細(xì)分析設(shè)計(jì)。
(4)程序編碼:部分詳細(xì)設(shè)計(jì)涉及到復(fù)雜算法或是獨(dú)特算法的,還需要事先請(qǐng)專業(yè)算法人員來(lái)設(shè)計(jì)算法實(shí)現(xiàn),可以直接提供接口或是提供偽代碼讓編碼程序員實(shí)現(xiàn)。
(5)測(cè)試:程序編碼完成后,就需要測(cè)試。測(cè)試工作中發(fā)現(xiàn)的錯(cuò)誤應(yīng)及時(shí)改正,然后將它記錄到測(cè)試文檔中,程序需要及時(shí)修復(fù)bug。
(6)打包:測(cè)試完成,確認(rèn)無(wú)誤后。程序就可以打包發(fā)行了。打包工具可以用vs自帶的安裝項(xiàng)目,對(duì)于web程序則可以選擇源碼發(fā)布到服務(wù)器站點(diǎn)。
2.游戲系統(tǒng)需求分析
2.1游戲內(nèi)容總體描述
游戲開(kāi)始玩家只有一定數(shù)量的金幣,玩家只需要通過(guò)鼠標(biāo)就可以控制整個(gè)游戲,玩家通過(guò)思考敵人的數(shù)量和攻擊來(lái)控制防御塔的站位實(shí)現(xiàn)防御,如果出現(xiàn)錯(cuò)誤的判斷有可能導(dǎo)致整個(gè)游戲的失敗。當(dāng)玩家擊退了一定數(shù)量的敵人后將進(jìn)入下一關(guān)。每一關(guān)的難度就會(huì)增加。
2.2如何吸引玩家分析
此游戲以它獨(dú)有的簡(jiǎn)單畫面,便捷操作,消滅大量怪物的快感,成功防守的成就感著稱??梢詮娜齻€(gè)方面來(lái)吸引玩家:
(1)獨(dú)特的界面展示風(fēng)格。
(2)大量怪物被擊殺的快感。
(3)對(duì)塔防游戲內(nèi)容的創(chuàng)新。
3.游戲總體結(jié)構(gòu)設(shè)計(jì)
對(duì)開(kāi)發(fā)者來(lái)說(shuō),整個(gè)游戲系統(tǒng)對(duì)象分為入侵怪物和防守炮臺(tái)。每關(guān)有固定地圖,地圖難度逐級(jí)提高,入侵怪物沿地圖固定路線行走。入侵怪物受到傷害為對(duì)應(yīng)地圖區(qū)域防御炮臺(tái)所給予的數(shù)值。防守炮臺(tái)傷害輸出總是攻擊一個(gè)或多個(gè)目標(biāo)致死之后緊接著攻擊范圍內(nèi)下一個(gè)目標(biāo)。
3.1游戲各功能模塊設(shè)計(jì)
地圖,地圖固定大小 20*20 的格子組成,每個(gè)格子都由50*50大小的png或gif圖片組成,分為可行走格子和不可行走,地圖定義初始怪物進(jìn)場(chǎng)路線,從初始入口移動(dòng)到終點(diǎn)逃出后游戲扣分,怪物移動(dòng)路線通過(guò)常用行走算法得出,實(shí)際使用的是A星算法。
地圖由地圖編輯器生成,二維的數(shù)組存放到數(shù)據(jù)庫(kù)地圖表,需要時(shí)讀出。
怪物,怪物等級(jí)數(shù)值設(shè)置,怪物種類:飛行,陸地,BOSS。
怪物基礎(chǔ)屬性:移動(dòng)速度,血量,類型(地,空),圖片,級(jí)別,類別,名稱。真實(shí)生成的怪物在基礎(chǔ)屬性的基礎(chǔ)上的其他屬性: 位置,當(dāng)前血量,是否活著,移動(dòng)方向,下個(gè)移動(dòng)位置,冰凍時(shí)間,序號(hào),已經(jīng)行走過(guò)的位置記錄。
防御塔,種類:對(duì)地對(duì)空攻擊,輔助型或攻擊型,輔助有加攻擊和攻速
3.2游戲規(guī)則
(1)總共20關(guān)。
(2)每關(guān)卡設(shè)置最大怪物逃脫量即生命值,每關(guān)完成后都會(huì)重置,生命為0則游戲失敗結(jié)束。
(3)防御塔可建造,可升級(jí),可以三分之二價(jià)值變賣,有攻擊范圍。
(4)殺死怪物或是特殊塔攻擊怪物都會(huì)得到金錢。
4.塔防游戲的具體實(shí)現(xiàn)
主要代碼:程序啟動(dòng)時(shí)運(yùn)行狀態(tài)機(jī),this.timer=setInterval(Game.loop,20);每隔20ms運(yùn)行Game.loop方法,此方法內(nèi)遍歷所有對(duì)象當(dāng)前狀態(tài)并實(shí)行相應(yīng)動(dòng)作此塔防游戲中主要三種對(duì)象,怪物(敵人),防御塔,防御塔發(fā)射的子彈。
html5游戲開(kāi)發(fā)充滿著誘人的東西,它是游戲開(kāi)發(fā)的方向,隨著今后html5的不斷完善,最終將取代本地代碼編寫的游戲。 [科]
【參考文獻(xiàn)】
[1]羅超理,李萬(wàn)紅.管理信息系統(tǒng)原理與應(yīng)用.清華大學(xué)出版社,2002.
[2]艾德才.計(jì)算機(jī)信息管理基礎(chǔ).中國(guó)水利水電出版社,2001.
[3]趙韶平,徐茂生.PowerDesigner系統(tǒng)分析與建模(第二版).清華大學(xué)出版社,2010.
[4]Peter Lubbers,Brian Albers.HTML5高級(jí)程序設(shè)計(jì).人民郵電出版社,2010.
[5]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論.高等教育出版社,2000.
[6]Jeanine Meyer.HTML5游戲開(kāi)發(fā).人民郵電出版社,2011.
[7]Michael J.Hernandez.Database Design for Mere Mortals.中國(guó)電力出版社,2003.
[8]Eric Freeman,Elisabeth Robson.Head First HTML 5 Programming.中國(guó)電力出版社,2012.
[9]Michael Bowers.精通CSS與HTML設(shè)計(jì)模式.人民郵電出版社,2008.
[10]斯蒂夫.麥克康奈爾.快速軟件開(kāi)發(fā).電子工業(yè)出版社,2001.