王克強(qiáng)
(仲愷農(nóng)業(yè)工程學(xué)院自動化學(xué)院,廣東 廣州 510225)
隨著游戲的發(fā)展,人們對游戲的要求也越來越高,更多人希望玩到有趣的游戲的同時(shí),體驗(yàn)到游戲的高品質(zhì)畫面和流暢性。3D游戲的游戲體驗(yàn)比2D游戲的游戲體驗(yàn)好很多,所以我們想要做這么一款3D游戲非常符合游戲產(chǎn)業(yè)發(fā)展的道路。而3D游戲如果能和手機(jī)端合體,那么帶來的效益通常會出乎人們的意料。談到手機(jī)端,人們自然會想到Android系統(tǒng),本次設(shè)計(jì)就打算將運(yùn)行平臺鎖定在PC端和Android端,讓人們的游戲在Android端也可以暢玩。由于考慮到游戲的多平臺性,故而選擇Unity3D軟件來制作本次設(shè)計(jì)。
Unity3D是一個(gè)功能強(qiáng)大且非常專業(yè)的游戲引擎,它是由Unity Technologies開發(fā)得到的,而Unity Technologies開發(fā)其的目的是讓所有使用者能夠非常容易的創(chuàng)建一些3D的視頻游戲、讓建筑全方位可視化、3D動畫實(shí)時(shí)播放等類型的互動內(nèi)容,并且Unity3D還具有多平臺性。和Director等軟件一樣,Unity3D非常注重其圖像圖形的渲染。Unity3D這款強(qiáng)大的游戲引擎能夠運(yùn)行在微軟系統(tǒng)的電腦和蘋果系統(tǒng)的電腦下,并且能夠把游戲發(fā)布至超過5種常見的平臺。更強(qiáng)大的是,Unity3D所開發(fā)的游戲可以利用Unity web player插件發(fā)布一些手機(jī)游戲或者網(wǎng)絡(luò)游戲,它支持蘋果系統(tǒng)的設(shè)備和微軟系統(tǒng)的設(shè)備的網(wǎng)頁瀏覽。
Unity3D的項(xiàng)目設(shè)計(jì)可以用包括C#在內(nèi)的三種腳本語言進(jìn)行編寫,而在本次設(shè)計(jì)中采用的是C#語言。因?yàn)榫湍壳岸?,Unity3D的項(xiàng)目設(shè)計(jì)有極大部分是采用C#腳本語言進(jìn)行編寫的。甚至在Unity3D官方給出的數(shù)據(jù)顯示,有超過81%的項(xiàng)目是用C#語言編寫的??紤]到參考和學(xué)習(xí)的方便,故而利用C#進(jìn)行游戲開發(fā)。
這是一款在Unity3D軟件上開發(fā)而出的塔防類型的單機(jī)益智類小游戲,游戲命名為《打死球球》。游戲難度適中,但具有一定挑戰(zhàn)性,適合所有年齡段的玩家,且能夠在電腦上和安卓端的手機(jī)上暢玩。
基地是一個(gè)立方體,并且不能被球狀體的敵人觸碰到。在每一關(guān)中,敵人一波一波地向基地移動靠近,每一波敵人都有幾個(gè),敵人的速度和生命值也會伴隨著波數(shù)的增加而增加,整體難度也會變得越來越大??偣灿?種類型的炮塔可供玩家選擇,炮塔可以升級和拆卸,拆卸炮塔不會增加金錢。
游戲開始時(shí)給予玩家一定的金額購買和升級炮塔,當(dāng)炮塔消滅敵人時(shí)金錢增加,消滅1個(gè)敵人增加的金錢數(shù)額在5~15。炮彈類型的炮塔擁有暴擊屬性,暴擊率為30%,暴擊傷害為普通傷害的1.5倍。
敵人是五顏六色的球球,如果這些球沒有被及時(shí)毀滅掉,那么當(dāng)其觸碰到了方塊,也就是終點(diǎn)的時(shí)候,會彈出游戲失敗的菜單,這時(shí)可以選擇繼續(xù)玩或者直接回到一開始的界面菜單。當(dāng)敵人全部被消滅時(shí)則游戲勝利,勝利時(shí)可以選擇回到主菜單或者進(jìn)入下一關(guān)。游戲的金幣不會繼存到下一關(guān)。
在電腦上,可以通過鼠鍵的結(jié)合來對游戲的視角進(jìn)行調(diào)整,鍵盤可以控制水平上的平移,鼠標(biāo)滾輪則是控制視角的遠(yuǎn)近。
開始游戲后,利用鼠標(biāo)左鍵單擊游戲界面右邊的炮塔圖標(biāo)來選擇炮塔,然后鼠標(biāo)移動到游戲中的空白方格,當(dāng)方格變紅時(shí)可以左鍵單擊方格建造炮塔。
用鼠標(biāo)左鍵單擊已經(jīng)建造完畢的炮塔時(shí),炮塔會彈出一個(gè)“升級”和 “拆”的按鈕,點(diǎn)擊升級則炮塔“升級”并且消耗金幣,點(diǎn)擊“拆”則拆卸該炮塔。
游戲過程中可以單擊游戲界面右上角的暫停按鈕暫停游戲,在暫停狀態(tài)下可以進(jìn)行炮塔的建造、升級和拆卸。
在Android端的游戲操作和PC端的類似,只是把鼠標(biāo)點(diǎn)擊換成是手指觸摸點(diǎn)擊。
在設(shè)計(jì)制作游戲時(shí),把握全局,時(shí)時(shí)刻刻確保思緒通暢,抓住整個(gè)游戲的結(jié)構(gòu)。把整個(gè)游戲看做是一個(gè)系統(tǒng),那么這個(gè)系統(tǒng)可以用三個(gè)層面簡單概括,這三個(gè)層相互之間并不會有所影響,而且將他們分隔開來有利于設(shè)計(jì)者追加游戲功能,這樣的游戲設(shè)計(jì)大大降低了耦合度,在很大程度上給設(shè)計(jì)者留下可以修改或者改進(jìn)的后路。采用圖形解說的方法,把這個(gè)系統(tǒng)簡單的概括出來。
實(shí)踐開發(fā)游戲第一步,建立空場景,然后將它儲存起來。也可以選擇利用鍵盤上面的快捷鍵Ctrl+N,儲存場景(Scene)。場景可以理解為在做游戲時(shí)的左右手,沒有它,創(chuàng)造不出這整個(gè)游戲世界。先創(chuàng)建了一個(gè)游戲場景,相當(dāng)于提供了一個(gè)開發(fā)游戲的平臺。
首先考慮到游戲風(fēng)格是有些接近像素類的風(fēng)格,于是把游戲的地圖盡量的簡化,讓玩家一目了然。在地圖上建立1個(gè)Plane,然后把Plane的X軸和Z軸都改為300,Y軸為1,這樣做是為了讓背景足夠大,大到看不到邊。
以直徑為3的小球作為敵人,敵人隨著顏色的變化,血量和速度將會越來越快。在腳本里面設(shè)置敵人的血量和速度為public類型的變量,這樣一來就可以方便地修改敵人的參數(shù)。給敵人加上腳本,讓敵人擁有“思想”。
一共設(shè)置了三種炮塔,在Hierarchy面板上先預(yù)制好這三種炮塔,然后將這三種炮塔分別做成Prefab以便接下來的頻繁使用。然后要做1個(gè)炮塔選擇的界面,在這個(gè)界面上要顯示出炮塔的類別和購買所需要的金錢。
本次設(shè)計(jì)的游戲菜單也采用一目了然的形式,進(jìn)入游戲后先進(jìn)入游戲菜單。把游戲中的經(jīng)典炮塔的Prefab單獨(dú)拿出來,然后給它添加上動畫效果,讓它左右擺動,然后在炮塔上添加上開始游戲和退出的按鈕。
本文設(shè)計(jì)的3D塔防單機(jī)小游戲不僅能在PC端完美流暢運(yùn)行,而且可以適配給Android端,在手機(jī)上也可以運(yùn)行該游戲。然而這個(gè)游戲也還存在著很多的缺點(diǎn),比較嚴(yán)重的缺點(diǎn)就是界面做得太過單調(diào),界面渲染得不太好看。還有就是炮塔的類型太少了,玩起來不爽。游戲難度也適中,由于打死敵人有增加金錢,游戲難度被大幅度下降了。在手機(jī)端運(yùn)行時(shí),視角的變動也沒有做到。所以還存在著很多提升的空間。