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