劉玉坤?彭偉國
摘 要 近年來,隨著移動互聯(lián)設(shè)備的普及,社會生活節(jié)奏的加快,人們工作壓力的增大,游戲逐漸成為大家的主要娛樂方式。本文在對游戲玩法和游戲故事內(nèi)容的2D游戲分析的基礎(chǔ)上,以被流放至外太空為游戲背景,架構(gòu)一個未來世界,讓玩家在所給定的地圖中自由發(fā)展與冒險。
關(guān)鍵詞 星際流浪;Sandbox Game;高自由度
引言
隨著科技的發(fā)展和社會的進步,人們的生活水平發(fā)生了質(zhì)的改變,在我國游戲行業(yè)正在經(jīng)歷一個黃金發(fā)展周期[1]。從2008年至2018年間,中國的游戲用戶規(guī)模增長了5.5億人,總規(guī)模達到了6.26億,增長率由2008年至2011年的大幅增長至今逐步趨于穩(wěn)定,現(xiàn)如今中國已經(jīng)擁有了極其巨大規(guī)模的游戲玩家群體,游戲行業(yè)也突飛猛進,前景十分可觀,隨著移動互聯(lián)設(shè)備的普及,社會生活節(jié)奏的加快,人們工作壓力的增大,游戲逐漸成為大家的主要娛樂方式。
3D游戲為游戲市場的主力軍,但是近幾年一些以游戲玩法和游戲故事內(nèi)容為主力方向的2D游戲異軍突起,這些游戲大都不追求真實的畫面和華麗的特效,但正因如此,獨立開發(fā)者們才能節(jié)省出更多的成本和精力來打造游戲獨特的玩法與豐富的內(nèi)容,并且2D游戲的復(fù)古化風格能增加游戲的年代感[2],讓喜歡懷舊游戲的玩家獲得更好的體驗。
1需求分析
1.1 游戲功能的劃分和分析
游戲需要實現(xiàn)角色選擇,音樂控制,人物角色控制,攝像機跟隨,背包系統(tǒng),物品放置,游戲勝負判定七個功能。下面對這些功能一一進行需求分析。
(1)角色選擇。該小節(jié)玩家能夠自主選擇角色,實現(xiàn)不同角色屬性及圖片的初始化。
(2)音樂控制。該小節(jié)玩家能夠自由控制游戲BGM的開啟與關(guān)閉,適合不喜歡游戲音樂的玩家使用。
(3)人物角色控制。該小節(jié)要求控制角色移動以及使用不同的方式攻擊,而敵人不需要玩家控制,玩家控制的角色有行走以及兩種不同的攻擊動作,玩家擊中敵人后敵人將會損失生命值。
(4)攝像機跟隨。該小節(jié)為了使玩家在游戲中有切身的體驗以及舒適的操控,攝像機的位置需要跟隨游戲角色移動,如果不對攝像機加以控制,那么角色會走出攝像機范圍,玩家也無法看到完整的游戲場景,游戲流程也無法正常進行,影響游戲的正常游玩。
(5)背包系統(tǒng)。該小節(jié)要求背包和拾取相交互,玩家可以拾取放置物到背包中,角色可以清楚地獲知可用放置物的余量以及是否拾取裝備。
1.2 游戲性能需求分析
性能優(yōu)化是游戲開發(fā)過程中不可缺少的步驟,性能優(yōu)化主要圍繞CPU、GPU、內(nèi)存和程序四大方面進行[3]。開發(fā)者不僅要靠考慮游戲的質(zhì)量,也要兼顧玩家的機器性能水平,不可為了過度地追求游戲的質(zhì)量而忽略了當前市場上的主機平均性能,NCSOFT公司2004年發(fā)行的《天堂2》便是該問題在游戲史上很好的例子,該游戲發(fā)布的時候?qū)τ布囊髽O為苛刻,導(dǎo)致大部分玩家雖熱愛天堂系列游戲卻心有余而力不足,無法在自己的PC上流暢運行,最終導(dǎo)致游戲銷量慘淡。
就當前課題而言性能優(yōu)化主要從精簡代碼、優(yōu)化貼圖方面下手。精簡掉多余的繁雜的代碼腳本,對游戲場景中的精靈貼圖進行適當?shù)奶幚?,使用合適的分辨率。由于該游戲為2D游戲,且游戲整體較小,所以當前硬件水平皆可輕松勝任。
2游戲詳細設(shè)計
根據(jù)上面對游戲功能的劃分,游戲需要設(shè)計出角色選擇,游戲設(shè)置及幫助、攝像機跟隨系統(tǒng)、背包系統(tǒng)、放置系統(tǒng)、人物角色控制和游戲勝負判定七個功能模塊。由于篇幅有限,這里僅給出了角色選擇模塊的詳細設(shè)計。該模塊將從功能設(shè)計和程序設(shè)計兩個方面對該模塊進行詳細設(shè)計,實現(xiàn)玩家對角色的選擇以及界面的跳轉(zhuǎn)。
2.1 功能設(shè)計
根據(jù)功能需求分析可知,該部分具體功能包括玩家角色的展示,點擊選擇,界面跳轉(zhuǎn)。具體設(shè)計如下:
(1)角色展示設(shè)計:玩家可以在界面上看到詳細的角色信息。
(2)角色選擇設(shè)計:玩家通過點擊選擇合適角色,界面上出現(xiàn)顯眼選定標志。
(3)界面跳轉(zhuǎn):觸發(fā)跳轉(zhuǎn)進入下一界面。
2.2 類設(shè)計
本課題使用兩個Button按鈕來實現(xiàn)角色的選擇。聲明兩個類OneButton和TwoButton。分別綁定至兩個角色按鈕上,在角色控制類CharacterController_2D中聲明一個變量mantype,以支持判定并為角色賦予不同屬性,在按鈕方法中調(diào)用SetActive()方法對關(guān)卡中游戲人物的存在與否進行控制。
3游戲?qū)崿F(xiàn)
由于篇幅有限,這里僅給出了游戲交互的詳細設(shè)計與實現(xiàn)[3]。實現(xiàn)過程中,主要調(diào)用Unity中封裝的類庫及預(yù)留的接口,使用C#編程語言進行實現(xiàn)。
根據(jù)前面游戲功能模塊的詳細設(shè)計,該模塊的主要功能是角色的選擇。
(1)在Camera Contraller類下聲明兩個GameObject并命名為One Player和Two Player,改腳本掛載至關(guān)卡場景,并將OnePlayer和Two Player綁定至游戲內(nèi)兩個角色。
(2)在Load類下聲明兩個函數(shù)OneButton()和TwoButton(),分別對應(yīng)兩個人物的選擇,每個函數(shù)中調(diào)用兩次SetActive()方法,對綁定的兩個按鈕的背景的Active屬性進行更改,以實現(xiàn)兩個按鈕的選定效果的切換。在函數(shù)中聲明一個變量man,該變量在OneButton()函數(shù)中被賦值1,在TwoButton()函數(shù)中被賦值2,以支持角色屬性的調(diào)整。
(3)在CharacterController_2D類中聲明一個變量mantype以判定角色屬性,將該腳本掛載至場景中的兩個角色,并將mantype在角色的腳本屬性中調(diào)整為1和2,使用if函數(shù)對mantype值的判定并對角色的生命值以及攻擊力進行匹配。