国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Unity3d引擎的教育類游戲設(shè)計與實現(xiàn)

2017-03-06 23:37:20劉桂元曾志遠(yuǎn)楊書新
軟件導(dǎo)刊 2017年1期

劉桂元+曾志遠(yuǎn)+楊書新

摘要摘要:教育性游戲作為輔助教育工具,主要通過游戲元素與知識的融合,達(dá)到高效傳授某些知識的目的。設(shè)計了一款教育類游戲,從游戲規(guī)則、游戲場景、情感設(shè)計、知識系統(tǒng)、游戲架構(gòu)幾方面給出了游戲的設(shè)計思路,闡述了游戲使用的開發(fā)引擎、怪物行為決策的智能模擬、角色的自動尋路實現(xiàn)過程以及物體間的碰撞處理等技術(shù),并展示了游戲的實現(xiàn)結(jié)果。

關(guān)鍵詞關(guān)鍵詞:教育類游戲;知識傳授;Unity3d

DOIDOI:10.11907/rjdk.162360

中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2017)001005004

引言

現(xiàn)行教育存在教育路徑相對單一、教學(xué)效率低等問題。游戲種類多數(shù)量大,能很好地吸引玩家注意力。如果把書本知識植入到游戲中,將游戲與課堂教育互補,讓學(xué)生在游戲的同時學(xué)習(xí)知識,不僅可以縮短學(xué)習(xí)時間,還可以讓學(xué)生對知識有更深的體會。游戲與教育的結(jié)合,是教育對自由與民主的呼喚,游戲化學(xué)習(xí)是人本主義思想在教育中的體現(xiàn)[1]。

基于以上思考,筆者設(shè)計開發(fā)了一款教育類三維角色扮演電子游戲(即RGP游戲),將小學(xué)三到五年級課本中的知識植入到游戲中,重點介紹了知識與游戲融合的方式以及涉及的一些主要技術(shù)。

1游戲設(shè)計

游戲開發(fā)前階段設(shè)計非常重要,且大型游戲開發(fā)中的設(shè)計文檔必不可少。本游戲設(shè)計主要完成游戲規(guī)則、知識系統(tǒng)以及架構(gòu)等設(shè)計。

1.1游戲規(guī)則

1.1.1游戲背景故事

本故事主人公由于偶然原因穿越到其它時空,原本在該時空寧靜生活的人們正遭受不明怪物的侵襲。主人公為了消滅怪物,讓人們重新獲得和平生活,進(jìn)行了一場勇敢的冒險。

1.1.2游戲關(guān)卡

游戲設(shè)計有3個主關(guān)卡和12個副關(guān)卡,每個關(guān)卡都有一定數(shù)量的怪物,而每個主關(guān)卡中都設(shè)有一個BOSS怪物且等級隨主關(guān)卡依次提高。主人公打敗主關(guān)卡中的BOSS即通關(guān),所有主關(guān)卡通關(guān)即游戲通關(guān)。關(guān)卡設(shè)計如圖1所示,其中關(guān)卡間有雙向箭頭連接表示兩關(guān)卡間是連通的。游戲中玩家以“傳送”的形式往來于不同關(guān)卡,關(guān)卡之間的傳送是有權(quán)限的。玩家所操控的主人公從主關(guān)卡開始依次通關(guān),如通關(guān)到主關(guān)卡二但本主關(guān)卡尚未通關(guān),則該主關(guān)卡和之前主關(guān)卡以及它們所帶的副關(guān)卡之間都可以互相傳送,可以從主關(guān)卡二“傳送”至主關(guān)卡三,但只能從主關(guān)卡三傳送至主關(guān)卡二而不能傳送至與主關(guān)卡三連通的其它關(guān)卡。

圖1關(guān)卡設(shè)計1.1.3角色成長

玩家控制主人公從主關(guān)卡一通關(guān)冒險,開始時主人公角色屬性比較弱,只能打一些關(guān)卡地圖中的小怪物,玩家要通關(guān)就必須提高主人公的角色屬性,如角色等級、角色攻防值、角色血量等。玩家要通關(guān)上述某一主關(guān)卡時,就需要完成有關(guān)的游戲任務(wù),如消滅小怪后獲得經(jīng)驗提高等級,去副關(guān)卡中獲得裝備然后使裝備強化、提高角色攻防值等。這樣,等角色強大到一定程度后才可打敗BOSS。

1.1.4游戲裝備

游戲裝備獲得及強化是游戲角色成長的重要方式。游戲中裝備分為靴子、鎧甲、劍3種類型,分別可提升主人公的移動速度、防御力、攻擊力,且每種裝備都有不同的初始和上限值提升屬性。獲得方式有兩種:①在完成某些游戲任務(wù)后系統(tǒng)給以裝備獎勵;②在主人公打敗不同等級的怪物后有一定概率獲得不同初始和上限值裝備,但怪物只能掉落同一種裝備。主人公新獲得的裝備一般為初始屬性,很多時候并不能殺死怪物也不能得到更高等級的裝備,這時玩家就必須去強化現(xiàn)有裝備,使其具有更高的提升屬性。

1.2游戲場景

在場景設(shè)計方面,除15個三維的關(guān)卡場景外還有兩個平面場景,其中一個是游戲開始場景,另一個是知識測試場景。在15個關(guān)卡場景設(shè)計時,分別添加不同區(qū)域的文化元素,使學(xué)生能了解各領(lǐng)域的不同文化。如在以歐洲古老騎士文化為主的場景中,放入城堡、騎士、劍、盔甲等與騎士文化相關(guān)的模型,模擬中世紀(jì)騎士文化時期的生活場景;而在以埃及文化為主的場景中,則以沙漠地形并加入金字塔、獅身人面像、神廟、古埃及文字符號等元素;中華傳統(tǒng)文化、瑪雅文化、北美文化、日本文化等的場景設(shè)計這里就不一一贅述。而對于開始場景的設(shè)計,主要是登入、注冊等按鈕的UI布局設(shè)計以及一些故事背景。

為了將知識體現(xiàn)在游戲過程中,計算場景也是以UI為主,玩家通過界面操作選擇不同的答題方式及答題內(nèi)容。初設(shè)可選的答題方式有選擇題、填空題、判斷題,考察內(nèi)容為小學(xué)三到五年級的課本知識,如數(shù)學(xué)計算、文字認(rèn)識以及少量的簡單智力測試和生活常識等。完成一輪測試后,系統(tǒng)顯示出玩家的答對題數(shù)和所用時間,并在提高相關(guān)屬性后出現(xiàn)祝賀語等特效。

1.3情感設(shè)計

為了培養(yǎng)學(xué)生的情感品德,在游戲中設(shè)計了勇敢品質(zhì)、勤儉美德等情感元素,如場景中設(shè)置有受傷的人或動物,在幫他們療好傷后會得到一些獎品。這在游戲中設(shè)置為隱性任務(wù)(即在游戲中沒有明顯提示要完成的任務(wù)),只有當(dāng)玩家自發(fā)去做這些事才可得到相應(yīng)的獎勵。同樣,獎勵也分為顯性獎勵和隱性獎勵,對于隱性獎勵,系統(tǒng)在玩家完成某個隱性任務(wù)后自動提高裝備掉落概率而不加顯性說明。此外,因為學(xué)生在情感控制方面能力較弱,在游戲中增加了一些情感波動設(shè)計,當(dāng)任務(wù)成功時系統(tǒng)給予稱贊,任務(wù)失敗時系統(tǒng)給予教育;這樣有喜有悲,使游戲與現(xiàn)實生活更加接近,增加玩家的情感投入,提高游戲的互動性和趣味性。

1.4知識系統(tǒng)設(shè)計

本游戲特色設(shè)計為游戲知識系統(tǒng)設(shè)計,包含知識測試系統(tǒng)以及“書”系統(tǒng)。

1.4.1知識測試系統(tǒng)

對于知識測試系統(tǒng),在每個主關(guān)卡的場景中都有標(biāo)識為“學(xué)?!钡牡胤?。當(dāng)主人公要強化裝備提高角色屬性時便需要到學(xué)校中鍛煉其裝備。進(jìn)入學(xué)校便觸發(fā)知識測試場景,加載好場景后,玩家在場景界面中選好要鍛煉的裝備,選好相應(yīng)的題型及難度等級,系統(tǒng)根據(jù)玩家的選擇隨機從對應(yīng)的題庫中選取題目進(jìn)行測試。測試結(jié)束后系統(tǒng)將根據(jù)玩家答題的難度等級、答題時間、答題分?jǐn)?shù)等對本次測試結(jié)果進(jìn)行等級評估,系統(tǒng)根據(jù)評估結(jié)果等級對裝備屬性強化到一定等級。每件裝備都有屬性強化的上限值,裝備自身的等級越高其上限值越高。若玩家對結(jié)果不滿意可以選擇繼續(xù)測試;若玩家想退出測試,點擊場景界面中的“退出”按鈕即可。

1.4.2“書”系統(tǒng)

在游戲關(guān)卡場景界面中有一個背景為書的圖片按鈕。當(dāng)玩家點擊該按鈕時,界面中便顯示出“書本”圖片及相關(guān)文字供玩家瀏覽。內(nèi)容涉及3個部分:①游戲規(guī)則的講解;②課本知識的描述,如一些簡單的課本知識定義,有關(guān)游戲測試系統(tǒng)中的答題技巧等;③溫馨提示,如某些隱性任務(wù)或游戲技巧提醒等。當(dāng)玩家想結(jié)束閱讀時,點擊“關(guān)閉”按鈕即可。

1.5游戲架構(gòu)

好的游戲架構(gòu)可以減小游戲開發(fā)難度(尤其是一款大型游戲),提高開發(fā)效率,從而減少游戲開發(fā)周期,降低游戲開發(fā)成本。筆者設(shè)計的游戲中運用的是游戲架構(gòu)中的單例模式。

在單例模式中,首先創(chuàng)建一個特殊的靜態(tài)類,常稱為單例類,其在游戲運行時存在于內(nèi)存中,以便對全局游戲?qū)ο筮M(jìn)行管理。然后在該類中封裝好有關(guān)方法(一般為多級封裝方法)。當(dāng)需要對游戲?qū)ο筮M(jìn)行數(shù)據(jù)訪問時(如網(wǎng)絡(luò)訪問、數(shù)據(jù)庫訪問和角色屬性訪問),便調(diào)用該特殊類中已經(jīng)封裝好的方法。同樣游戲要刪除或創(chuàng)建某游戲?qū)ο髸r也可調(diào)用該類中的有關(guān)方法。因此,在單例類如信息交流大廳,游戲所需數(shù)據(jù)皆可到“大廳”中獲取。其優(yōu)點是避免游戲管理混亂,應(yīng)用域明確,可以管理生命周期,可封裝,可通過繼承擴展,使游戲代碼邏輯簡單化,易于實現(xiàn)游戲模塊功能。

2主要技術(shù)實現(xiàn)

本游戲涉及的關(guān)鍵開發(fā)技術(shù)有:Unity3D引擎開發(fā)技術(shù)、游戲中對怪物行為決策的智能模擬、角色的自動尋路以及物體間的碰撞處理等。

2.1游戲開發(fā)引擎

本游戲使用Unity3D游戲開發(fā)引擎。之所以選擇Unity3D作為游戲開發(fā)引擎,是因為該引擎有著簡潔的界面布局及強大的功能模塊。除此之外,Unity3D還具有良好的跨平臺發(fā)布性能,使開發(fā)者能把更多的精力集中到制作高質(zhì)量的游戲上,提高游戲開發(fā)效率[2]。

該算法中,在獲得游戲?qū)ο蟮奈恢眯畔r,使用引擎類GameObject中已封裝好的GetComponent<>()函數(shù)來獲得游戲?qū)ο笤谔摂M游戲世界中的三維坐標(biāo)信息。在Update中使用Vector3類中的Distance()函數(shù)對怪物和主角位置信息進(jìn)行實時判斷,當(dāng)他們之間距離小于一定值時,怪物會改變狀態(tài)從而做出相關(guān)動作。在引擎中首先寫好該算法代碼的腳本文件掛載到游戲的怪物物體對象,然后運行游戲,此時怪物將在思考一定時間后進(jìn)行下一階段的巡邏,而如果在巡邏過程中發(fā)現(xiàn)主角,便跑向主角并進(jìn)行攻擊。

2.3自動尋路

在游戲的人工智能方面,自然也少不了游戲的自動尋路功能。在Unity3D引擎較新的版本中便集成了導(dǎo)航網(wǎng)格功能,并提供了方便的用戶界面[3]。在Unity3D中,用戶首先編輯好場景地形,然后將場景中不動的物體設(shè)置為Navigation Static物體;之后點擊Bake進(jìn)行導(dǎo)航網(wǎng)格烘焙,此時引擎將根據(jù)設(shè)置在Navigation Static物體上面,也就是游戲世界三維坐標(biāo)中Y軸的正向面進(jìn)行網(wǎng)格節(jié)點計算,從而形成一張在游戲場景中的網(wǎng)格節(jié)點導(dǎo)航地圖。地圖形成后,只需要對所要導(dǎo)航的游戲?qū)ο蠹由螻avMeshAgent組件即可,這樣游戲?qū)ο蟊憧衫@開障礙物并沿著最短路徑到達(dá)目的點。

下面介紹引擎中網(wǎng)格尋找最短路徑算法。該算法稱為A Star算法或簡稱為A* 算法,類似于貪心算法。與貪心算法相比,A*算法為了減少計算消耗提高游戲的流暢度,減少了貪心算法的回溯計算。其基本原理為:當(dāng)引擎渲染好網(wǎng)格節(jié)點導(dǎo)航地圖后再通過以下步驟進(jìn)行路徑尋找:①用兩個變量來存儲已經(jīng)處理過的節(jié)點和要處理的節(jié)點,分別稱為關(guān)閉列表和開放列表;②將起始節(jié)點放入開放列表中并設(shè)為當(dāng)前節(jié)點;③計算開發(fā)列表中所有不在關(guān)閉列表的鄰近節(jié)點到目標(biāo)節(jié)點的代價值;④選取已計算的鄰近節(jié)點中代價最小的節(jié)點為當(dāng)前節(jié)點并保留在開放列表中,其它已計算的鄰近節(jié)點則放入關(guān)閉列表中;⑤返回步驟③直至當(dāng)前節(jié)點為目標(biāo)節(jié)點或當(dāng)前節(jié)點不是目標(biāo)節(jié)點但沒有鄰近節(jié)點可計算(即起始節(jié)點沒有路徑到達(dá)目標(biāo)節(jié)點),退出路徑尋找。計算節(jié)點代價值通過公式(1)得出:F=G+H(1) 公式(1)中F代表節(jié)點的代價值,G是從上一個節(jié)點到這個節(jié)點在網(wǎng)格地圖中的幾何距離,H是從當(dāng)前節(jié)點到目的節(jié)點在網(wǎng)格地圖中的幾何距離。

2.4物理碰撞

正如現(xiàn)實世界中物體之間會有力的接觸碰撞一樣,游戲的虛擬世界中也有力的碰撞模擬,而且在3D游戲中,碰撞可以說是建立三維游戲的基礎(chǔ)。同樣在游戲的虛擬世界中,一個物體放在或掉落于地面,以及游戲角色之間發(fā)生的傷害,都是碰撞處理的結(jié)果。在Unity3D引擎中,物理引擎就是在游戲中模擬真實的物理效果[4]。碰撞分為碰撞器碰撞和觸發(fā)器碰撞。當(dāng)游戲物體間要發(fā)生不可穿透碰撞時,便使用碰撞器碰撞,如墻壁阻擋角色、物體落于地面等的碰撞效果。當(dāng)游戲物體間要發(fā)生穿透碰撞時可使用觸發(fā)器碰撞,如子彈穿透游戲角色、角色到達(dá)一定范圍后門自動開啟等碰撞效果。

當(dāng)然,并不是所有游戲?qū)ο蠖夹枰蚨寄馨l(fā)生碰撞效果,在引擎中發(fā)生碰撞器碰撞條件為兩個發(fā)生碰撞的物體都必須添加碰撞器,即Physics中的collider組件中至少有一個運動物體必須帶有Rigidbody組件[5];而發(fā)生觸發(fā)器碰撞的條件為發(fā)生碰撞的運動物體必須帶有collider和Rigidbody組件,而另一個物體則必須添加觸發(fā)器,即在物體添加collider組件后勾選組件中的IsTrigger屬性選擇框,啟用該組件的觸發(fā)器效果。當(dāng)碰撞發(fā)生時,對碰撞事件進(jìn)行捕捉,進(jìn)而讓游戲?qū)ο笞鞒鱿鄳?yīng)反應(yīng)。在Unity3D中主要有以下幾個接口函數(shù)負(fù)責(zé)碰撞事件的檢測:

(1)碰撞器信息檢測:

3游戲?qū)崿F(xiàn)

經(jīng)過團(tuán)隊成員分工合作,初步實現(xiàn)了該游戲項目的設(shè)計效果。發(fā)布平臺為Windows和Android平臺,其中對操作系統(tǒng)版本要求為Windows7或8版本,Android則支持3.0及以上版本。在相關(guān)平臺簡單安裝好后即可開始游戲。

首先是游戲注冊界面,當(dāng)玩家注冊完后即可登入游戲主界面。在游戲主界面中有“角色”、“書”、“設(shè)置”等系統(tǒng)按鈕,操作流程如圖4所示。游戲中當(dāng)玩家控制的游戲角色打不贏怪物時便可查看“書”中的有關(guān)知識,并在“學(xué)校”通過知識測試來提高其扮演角色的屬性,以便繼續(xù)游戲并最終完成游戲通關(guān)。

圖4游戲操作流程4結(jié)語

本文闡述了一款關(guān)于教育游戲的設(shè)計與開發(fā)。在玩家注意力高度集中于該游戲的同時,通過顯性與隱性相結(jié)合的方式影響玩家自身的知識與品德,達(dá)到傳授知識與培養(yǎng)良好品德的效果。當(dāng)然,在游戲開發(fā)過程中也遇到過一些問題,如游戲的粒子特效、三維模型動畫的制作、游戲優(yōu)化等。但在深入研究后,問題都有了對應(yīng)的解決方案,為游戲后續(xù)的發(fā)展打下了良好的基礎(chǔ)。教育游戲推廣在我國還處于起步階段,長路漫漫,尚需研究者們努力奮進(jìn)、勇于革新。

參考文獻(xiàn):

[1]張文蘭,劉俊生.教育游戲的本質(zhì)與價值審思[J].開放教育研究,2007,13(5):6468.

[2]穆海明,劉盼,劉興華.基于Unity的游戲開發(fā)[J].通訊世界,2016,4(4):288289.

[3]吳彬,黃贊臻,郭雪峰,等.Unity4.x 從入門到精通[M].北京:中國鐵道出版社,2013.

[4]宣雨松.Unity3d游戲開發(fā)[M].北京:人民郵電出版社,2012.

[5]董健.一款基于Unity3D的移動平臺游戲設(shè)計[J].軟件工程師,2014,12(12):3435.

責(zé)任編輯(責(zé)任編輯:杜能鋼)

庄河市| 扶余县| 泽普县| 武定县| 元谋县| 安塞县| 长顺县| 荥阳市| 高要市| 涡阳县| 屏东市| 久治县| 阳江市| 融水| 双城市| 美姑县| 会宁县| 灯塔市| 沐川县| 三原县| 清水县| 同德县| 麻江县| 南宁市| 炉霍县| 新宾| 宕昌县| 沙田区| 大关县| 永康市| 阿图什市| 巫山县| 凤阳县| 成安县| 邵阳县| 胶州市| 赤峰市| 枣庄市| 仁化县| 长宁县| 景谷|