劉鑫鵬
摘要:隨著最近年來手機(jī)的快速普及和手機(jī)質(zhì)量的提高,越來越多的移動(dòng)端游戲也融入到我們的學(xué)習(xí)和生活中。相比PC端游戲,移動(dòng)端精簡(jiǎn),也由于移動(dòng)設(shè)備沒有太多的限制,使得人們能夠不論何時(shí)何地都能隨意的體驗(yàn)互聯(lián)網(wǎng)的方便與快捷,也可以通過互聯(lián)網(wǎng)與朋友進(jìn)行游戲互動(dòng),然而移動(dòng)端是無法像PC端那樣將游戲的各種細(xì)節(jié)體現(xiàn)的美輪美奐的。
本設(shè)計(jì)項(xiàng)目是基于Unity3D的坦克大戰(zhàn)3D版。如今3D游戲美輪美奐,特效、模型的精致和逼真是有目共睹的。本次的畢業(yè)設(shè)計(jì)是面向PC端玩家的單機(jī)游戲。本次畢設(shè)以Unity3D作為開發(fā)引擎,使用C#作為開發(fā)語言,主要游戲功能有:關(guān)卡選擇、背包&商城游戲、升級(jí)強(qiáng)化角色、任務(wù)游戲、游戲角色操作、敵方AI操作等功能模塊,數(shù)據(jù)處理方面使用XML解析技術(shù)處理游戲數(shù)據(jù),使用對(duì)象池技術(shù)對(duì)反復(fù)使用的游戲物體進(jìn)行資源回收避免重復(fù)的創(chuàng)建和銷毀造成資源上的浪費(fèi)和內(nèi)存碎片的增加,進(jìn)而提升游戲運(yùn)行的流暢性和體驗(yàn)感。
關(guān)鍵詞:Unity;游戲;射擊
由于Unity是可以跨平臺(tái)發(fā)布的,這樣的話不管是發(fā)布PC端還是移動(dòng)端都是十分方便,因此基于Unity3D的坦克大戰(zhàn)3D版能夠借此便利給玩家們帶來快樂。該游戲運(yùn)行在PC上,目的是在通過Unity游戲引擎開發(fā)的一款游戲,應(yīng)用此引擎開發(fā)的游戲能夠跨平臺(tái)發(fā)布,給游戲的移植帶來便利,也由于PC仍是許多3D游戲的游戲的主流運(yùn)行環(huán)境,在PC上3D游戲可以達(dá)到相對(duì)于PC較好的效果。
一、游戲需求分析
不少的PC端游戲也是通過對(duì)游戲的內(nèi)容的壓縮即可在Android上面運(yùn)行,此外使用PC進(jìn)行游戲開發(fā)效果也相對(duì)較好,能夠用最優(yōu)的環(huán)境對(duì)游戲進(jìn)行開發(fā)設(shè)計(jì)。這是Android所不能擁有的。游戲的趣味性可以增加游戲的體驗(yàn)感,給用戶帶來趣味。另一方面Unity3D支持跨平臺(tái)部署,PC端開發(fā)的效果相對(duì)Android端較好,也為以后就業(yè)學(xué)習(xí)跨平臺(tái)部署提供實(shí)踐打下基礎(chǔ)。
(一)可行性分析
基于Unity3D的坦克大戰(zhàn)3D版對(duì)開發(fā)設(shè)備的硬件要求不高,一臺(tái)裝有Unity和VS2013普通Windows計(jì)算級(jí)能夠支持開發(fā)。PC端游戲設(shè)計(jì)效果相對(duì)Android比較好,如果需要安卓部署則進(jìn)行對(duì)游戲的UI和操作上的調(diào)整即可使用Unity跨平臺(tái)打包部署,十分方便
(二)游戲需求分析
根據(jù)玩家的游戲需求進(jìn)行分析,主要按照游戲運(yùn)行需要實(shí)現(xiàn)的功能模塊進(jìn)行劃分。針對(duì)3D坦克大戰(zhàn)游戲運(yùn)行部分,需要實(shí)現(xiàn)的主要功能模塊為:玩家游戲操作功能、AI行為功能、背包&商城功能、游戲進(jìn)入&退出功能、任務(wù)生成和完成功能、游戲暫停和繼續(xù)功能,因此基于Unity3D的3D坦克大戰(zhàn)應(yīng)該具備如下功能:
1.玩家游戲操作
1)移動(dòng):玩家按下相關(guān)鍵位實(shí)現(xiàn)移動(dòng)功能。
2)技能:玩家控制的坦克可以釋放相關(guān)的技能。
3)受傷:玩家受到敵方攻擊會(huì)對(duì)生命值進(jìn)行扣除。
2.AI行為功能
1)行為:根據(jù)AI等級(jí)的不同產(chǎn)生不同的行為以此來增加游戲的趣味性。
2)受傷:敵方AI受到玩家攻擊會(huì)相應(yīng)的扣除生命值。
3.背包&商城功能
1)背包:查看拾取的物品并可以使用和丟棄。
2)商城:購(gòu)買相關(guān)的物品。
4.游戲進(jìn)入&退出功能
1)游戲進(jìn)入:點(diǎn)擊進(jìn)入游戲按鈕,執(zhí)行游戲加載操作。
2)游戲退出:退出游戲。
5.任務(wù)生成和完成功能
1)任務(wù)生成:根據(jù)玩家點(diǎn)擊隨機(jī)生成任務(wù),并存儲(chǔ)到相關(guān)XML文檔進(jìn)行數(shù)據(jù)處理。
2)任務(wù)完成:完成任務(wù),進(jìn)行相關(guān)的數(shù)據(jù)處理,并給予玩家相應(yīng)的獎(jiǎng)勵(lì)。
6.游戲暫停和游戲繼續(xù)
1)游戲暫停:游戲進(jìn)入暫停狀態(tài)。
2)游戲繼續(xù):從游戲暫停狀態(tài)切換至游戲正常運(yùn)行狀態(tài)。
二、游戲開發(fā)工具和相關(guān)技術(shù)
(一)Unity3D游戲引擎
Unity3D是由Unity Technologies開發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。其編輯器運(yùn)行在Windows 和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺(tái)。也可以利用Unity web player插件發(fā)布網(wǎng)頁(yè)游戲,支持Mac和Windows的網(wǎng)頁(yè)瀏覽。它的網(wǎng)頁(yè)播放器也被Mac 所支持。開發(fā)語言支持C#作為腳本語言進(jìn)行游戲開發(fā)。
(二)AssetBundle資源打包
通過AssetBundle將Unity3D游戲資源打包,可以避免因?yàn)橛螒蜃詭зY源過大而導(dǎo)致游戲的平臺(tái)部署生成的.exe文件過于巨大而打包過程進(jìn)展緩慢,同時(shí)通過AssetBundle技術(shù)可以實(shí)現(xiàn)在相對(duì)路徑下的資源加載,避免了誤刪游戲資源導(dǎo)致出錯(cuò)和游戲資源打包帶來的不便,還能通過對(duì)現(xiàn)有Assetbundle進(jìn)行實(shí)時(shí)修改以實(shí)現(xiàn)游戲資源的更新。
3)對(duì)象池技術(shù)在游戲反復(fù)的創(chuàng)建和銷毀同一個(gè)經(jīng)常使用的游戲物體會(huì)給游戲運(yùn)行帶來內(nèi)存上的大量碎片、運(yùn)行上后期的嚴(yán)重卡頓等不良效果,對(duì)象池技術(shù)可以將重復(fù)使用的游戲物體進(jìn)行統(tǒng)一管理,不必進(jìn)行大量的創(chuàng)建和銷毀,避免重復(fù)創(chuàng)建和銷毀帶來的卡頓和性能上的惡劣影響。
三、總結(jié)
玩家在游戲中可以通過對(duì)游戲的體驗(yàn)來給自己進(jìn)行適當(dāng)?shù)姆潘?,也可以?duì)這個(gè)項(xiàng)目進(jìn)行功能實(shí)現(xiàn)的研究。如單例模式管控UI界面的功能,實(shí)現(xiàn)相關(guān)UI界面的功能將實(shí)例化的單例對(duì)UI功能進(jìn)行使用。對(duì)象池技術(shù)控制一些大量使用又不宜銷毀的游戲物體,避免重復(fù)生成銷毀造成內(nèi)存碎片問題。相信對(duì)于以后的工作也有較大的幫助。由此可見這次的畢設(shè)是具有很大實(shí)際應(yīng)用和學(xué)習(xí)的意義。
在Unity3D游戲開發(fā)過程中,基本實(shí)現(xiàn)了游戲運(yùn)行應(yīng)有的相關(guān)功能,還實(shí)現(xiàn)了任務(wù)功能,相比以往單調(diào)乏味的通關(guān)游戲也是增加了趣味性,UI設(shè)計(jì)也相對(duì)比較精簡(jiǎn),顯得比較友好。
參考文獻(xiàn):
[1]羅培羽. Unity3D網(wǎng)絡(luò)游戲?qū)崙?zhàn) [M].機(jī)械工業(yè)出版社 2016.
[2]宣雨松. Unity 3D游戲開發(fā) [M].人民郵電出版社 2012.
[3]王洪源. Unity3D人工智能編程精粹 [M].清華大學(xué)出版社 2014
[4]程明智. Unity游戲開發(fā)技術(shù) [M]. 國(guó)防工業(yè)出版社 2012.