王玉君 岳志陽(yáng)
南陽(yáng)職業(yè)學(xué)院,河南 南陽(yáng) 474500
隨著移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)的發(fā)展和游戲品質(zhì)的提升,跨平臺(tái)、跨終端游戲開(kāi)發(fā)已經(jīng)成為市場(chǎng)的主流。游戲玩法多樣,樣式繁多,但唯獨(dú)缺乏懷舊類型的游戲。本游戲主要以80后、90后童年游戲?yàn)橐罁?jù),以別致的游戲場(chǎng)景,新穎的游戲規(guī)則,巧妙的游戲邏輯,簡(jiǎn)單的操作方法,重新設(shè)計(jì)實(shí)現(xiàn)。旨在緩解青年生活、工作壓力,暫忘喧鬧的城市和快節(jié)奏的生活,回歸自我,尋找兒時(shí)的歡樂(lè)。
Unity3D游戲引擎以一條近似完美的游戲開(kāi)發(fā)生態(tài)鏈進(jìn)入市場(chǎng),吸引游戲開(kāi)發(fā)人員,輕松實(shí)現(xiàn)各種游戲創(chuàng)意,一鍵部署各種游戲平臺(tái),無(wú)須二次移植或者開(kāi)發(fā),可以節(jié)省大量的時(shí)間和精力[1]。
運(yùn)用對(duì)象處理模塊、事件處理模塊、攝像機(jī)模塊、渲染模塊、交互模塊等5個(gè)Unity3D的核心模塊,設(shè)計(jì)游戲場(chǎng)景,改變游戲?qū)傩裕袚Q游戲視角,調(diào)節(jié)交互方式。
游戲主界面由多人游戲和單人游戲兩種形式組成。多人游戲有三項(xiàng)設(shè)置供玩家選擇,分別是:游戲人數(shù)、游戲難度、游戲時(shí)間。游戲人數(shù):可選兩人制、三人制和四人制;游戲難度:可選簡(jiǎn)單、一般和困難三種級(jí)別,系統(tǒng)將自動(dòng)分配玩家組成游戲;游戲時(shí)間:在規(guī)定游戲時(shí)間內(nèi)決出勝負(fù)。單人游戲在多人游戲權(quán)限的基礎(chǔ)上,可隨時(shí)暫停、退出游戲,系統(tǒng)將自動(dòng)保存游戲進(jìn)度,隨時(shí)等待玩家再次進(jìn)入游戲。單人游戲設(shè)置排行榜,顯示玩家通關(guān)的時(shí)間,實(shí)現(xiàn)在線競(jìng)技,增加游戲趣味性,提高玩家成就感。
以“飛行棋”游戲界面和游戲邏輯為原型設(shè)計(jì)主線游戲,玩家以Q版棋子為角色代表,擲骰子決定棋子的移動(dòng)距離,棋譜的每一個(gè)方格設(shè)計(jì)相應(yīng)的游戲關(guān)卡,關(guān)卡游戲通關(guān)后方可再次投擲骰子決定移動(dòng)距離,棋子到達(dá)終點(diǎn)為游戲勝利。
關(guān)卡游戲類型眾多,玩法新穎,可以滿足不同年齡段玩家的需求和游戲體驗(yàn)。類型涉及休閑、策略、射擊、益智等,通關(guān)方式為計(jì)時(shí)通關(guān),在規(guī)定時(shí)間內(nèi)完成游戲要求。
運(yùn)用3D MAX三維軟件制作游戲模型,在Unity3D中利用物理引擎為游戲模型添加碰撞體,為其添加重力、摩擦力等物理屬性。使用NGUI插件為游戲關(guān)卡添加控件,完善UI界面;游戲過(guò)程時(shí),為玩家提供輔助教程,使玩家逐漸了解游戲的玩法和規(guī)則,提高游戲的交互性。
攝像機(jī)在Unity游戲引擎中至關(guān)重要,主線游戲和副線游戲依據(jù)游戲邏輯和游戲規(guī)則進(jìn)行攝像機(jī)設(shè)置,Perspective(透視模式攝像機(jī)) 和 Orthographic(正交模式攝像機(jī))兩種視角模式在關(guān)卡游戲中適當(dāng)選擇。修改Clipping Planes(剪裁平面參數(shù))參數(shù)的大小,對(duì)攝像機(jī)開(kāi)始渲染和停止渲染之間的距離進(jìn)行設(shè)置。根據(jù)關(guān)卡要求不同,攝像機(jī)允許鎖定所控制角色,或者跟隨角色移動(dòng),因此主攝像機(jī)同樣需要添加腳本代碼[2]。
游戲?qū)ο筇砑覥#腳本,根據(jù)水平軸返回虛擬坐標(biāo)系中的值,改變垂直軸的值實(shí)現(xiàn)水平移動(dòng)效果。Mathf數(shù)學(xué)運(yùn)算函數(shù)控制移動(dòng)范圍,Random隨機(jī)類設(shè)置游戲?qū)ο螽a(chǎn)生的范圍,創(chuàng)建PlatformMaintenaince函數(shù)銷毀超出游戲界面范圍的游戲?qū)ο?,?chuàng)建SpawnPlatforms函數(shù)生成新的游戲?qū)ο?。設(shè)置游戲?qū)ο蟮淖畲笏俣群妥钚∷俣?,隨著游戲時(shí)間的推進(jìn),游戲?qū)ο蟮乃俣戎饾u加快,提高通關(guān)難度,提升操作性。
游戲關(guān)卡的難度設(shè)計(jì)不易太過(guò)簡(jiǎn)單,應(yīng)在游戲策劃和游戲測(cè)試時(shí),進(jìn)行合理的設(shè)置,既不能一次過(guò)關(guān),也不能10次以上無(wú)法通過(guò);每一個(gè)關(guān)卡的游戲邏輯和游戲規(guī)則不應(yīng)重復(fù)、一成不變,這樣都會(huì)致使玩家放棄本游戲,降低游戲體驗(yàn)度。隨著游戲關(guān)卡的推進(jìn),游戲難度應(yīng)逐漸加大,促進(jìn)玩家對(duì)游戲進(jìn)行思考和練習(xí)。如果想直接跳過(guò)也可購(gòu)買擲骰子機(jī)會(huì),幫助其脫離本關(guān)卡。
SendMessage基于消息機(jī)制發(fā)送消息,調(diào)用指定方法。如果指定對(duì)象無(wú)法調(diào)用或沒(méi)有指定對(duì)象時(shí),將調(diào)用當(dāng)前游戲?qū)ο竽_本組件的指定方法;否則,則調(diào)用指定游戲?qū)ο竽_本組件的指定方法。當(dāng)調(diào)用的方法需要參數(shù),需在SendMessage中添加參數(shù)。傳遞多個(gè)參數(shù)時(shí),需將多個(gè)參數(shù)封裝成一個(gè)類型進(jìn)行傳遞。
依據(jù)游戲規(guī)則的設(shè)置和游戲邏輯的設(shè)計(jì),游戲控制分為觸摸控制和陀螺儀重力控制。觸摸控制,運(yùn)用Input輸入類進(jìn)行游戲?qū)ο罂刂?,檢測(cè)屏幕上手指的狀態(tài),檢測(cè)三位空間的數(shù)據(jù)變化,判斷移動(dòng)方向和移動(dòng)距離。陀螺儀重力控制,運(yùn)行Physics物理學(xué)類為游戲?qū)ο筇砑游锢韺傩?,進(jìn)行碰撞和摩擦力等物理檢測(cè),依靠手機(jī)陀螺儀的重力感應(yīng)進(jìn)行游戲?qū)ο蟮目刂?。不同的游戲控制,可提升游戲的可操作性,使玩家?duì)游戲充滿新鮮感。
游戲主界面是本游戲的游戲主線,各關(guān)卡游戲?yàn)楦本€,這樣可以增強(qiáng)游戲趣味性?!帮w行棋”適合兩到四名玩家同時(shí)進(jìn)行游戲,玩家多于四人將增加游戲時(shí)間及游戲難度。
玩家選擇游戲人數(shù)、選定游戲難度、設(shè)定游戲時(shí)間,創(chuàng)建游戲房間,尋找相應(yīng)玩家。若游戲玩家人數(shù)不足,系統(tǒng)可依據(jù)游戲難度,匹配機(jī)器人,和其一同游戲。玩家進(jìn)入關(guān)卡游戲,無(wú)法查看其他玩家的游戲進(jìn)展,游戲進(jìn)度只能在主線游戲中查看。游戲結(jié)束,系統(tǒng)將顯示每一個(gè)玩家的平均通關(guān)時(shí)間。
多人游戲最大難題在于解決實(shí)時(shí)通信問(wèn)題。U-nity3D游戲引擎為開(kāi)發(fā)人員提供UNET網(wǎng)絡(luò)通信模塊,實(shí)現(xiàn)多人游戲底層的功能需求。但UNET僅適合局域網(wǎng)對(duì)戰(zhàn),不適合互聯(lián)網(wǎng)對(duì)戰(zhàn)或者互聯(lián)網(wǎng)通信。如需進(jìn)行互聯(lián)網(wǎng)深度開(kāi)發(fā),增加游戲中的社交功能,需使用Unity Cloud模塊。
童年往事手機(jī)游戲通過(guò)游戲規(guī)則設(shè)計(jì)、游戲場(chǎng)景制作、游戲?qū)崿F(xiàn)三個(gè)方面闡述基于Unity3D的游戲設(shè)計(jì)和制作過(guò)程。主線游戲和副線游戲相輔相成,提升游戲的可操作性,增加游戲的神秘度。利用U-nity3D強(qiáng)大的跨平臺(tái)技術(shù),制作不同平臺(tái)、不同終端的手機(jī)游戲。