摘 要:為了解決教育性游戲中人工智能的可復(fù)用性的問(wèn)題,我們通過(guò)總結(jié)、抽象教育游戲中的共性的組件模塊,提出“基本教育游戲框架”,并詳細(xì)說(shuō)明它的組成部分以及各部分的作用。同時(shí)我們還詳述了怎樣平衡教育性和娛樂(lè)性。此外為了證明這個(gè)模型的正確性,我們?cè)谌S游戲引擎“Unity”中創(chuàng)建了一個(gè)導(dǎo)游人工智能系統(tǒng)。通過(guò)實(shí)例分析:在教育性游戲中,使用“基本教育游戲框架”,可以很容易組成一個(gè)適合針對(duì)自身游戲的人工智能系統(tǒng)。
關(guān)鍵詞:教育游戲;可重用性;Unity
1 引言
游戲作為生活中的常用詞語(yǔ),卻很難給出確切的定義,因?yàn)樗诓煌恼Z(yǔ)境中表達(dá)著不同的意思。我們可以通過(guò)英文游戲進(jìn)行解釋,play game:play泛指游戲,在更廣的意思上,作為名詞的play可以泛指活動(dòng),相當(dāng)于activity;game則指社會(huì)性的(有組織、有規(guī)律并通過(guò)競(jìng)技性的)游戲。而教育游戲是一種遵循游戲機(jī)制,制備一定可玩性、趣味性并達(dá)到一定的教育效果的活動(dòng)[1]。通過(guò)對(duì)多個(gè)教育游戲進(jìn)行對(duì)比,我們發(fā)現(xiàn),有一些基本的概念反復(fù)的出現(xiàn),以此我們認(rèn)為它們是一個(gè)教育游戲的基礎(chǔ)和核心。理解這些概念,以及明確這些概念之間的關(guān)系,可以防止游戲開發(fā)者重復(fù)發(fā)現(xiàn)這些概念,同時(shí)對(duì)于他們組建一個(gè)新的高質(zhì)量的教育游戲有著很大的幫助。在論文的第二部分,我們將要討論這些關(guān)鍵概念的功能,以及它們之間怎么相互作用組合成基本的游戲框架。在文章的第三部分,我們給出了實(shí)例化游戲的基本框架,實(shí)現(xiàn)了一個(gè)基于Unity3d游戲引擎的虛擬導(dǎo)游系統(tǒng)。第四部分,給出了全文的總結(jié)和展望。
2 教育游戲的基礎(chǔ)框架
在第一部分,我們提到了關(guān)于教育性游戲的基礎(chǔ)框架的一些基本概念。在這一部分中我們將詳細(xì)闡述這些概念的作用,以及它們之間是怎么相互合作,組合成一個(gè)完整的教育游戲基礎(chǔ)框架。最后我們?cè)賹⑦@個(gè)教育游戲基礎(chǔ)框架運(yùn)用到教育游戲中。
2.1 教育游戲基礎(chǔ)框架
在教育性游戲基礎(chǔ)框架中,我們會(huì)提及11個(gè)相關(guān)概念:教育環(huán)境,成果,課程,教室,謎題,考試,教科書,教師,障礙,獎(jiǎng)勵(lì)和提示。首先我們討論下每一個(gè)概念的功能。
(1)教育環(huán)境:“教育環(huán)境”是一個(gè)比喻,代表在教育游戲中所有的游戲物體。它的一個(gè)很主要的功能就是為“課程”提供場(chǎng)景,所以我們可以合理的認(rèn)為,“教育環(huán)境”是“課程”的先決條件。同時(shí)“教育環(huán)境”還有一個(gè)重要的功能是它可以為一個(gè)指定的“課程”列出它所需要的先決條件。(2)成果:當(dāng)玩家進(jìn)入一個(gè)教育游戲中時(shí),去探索每一個(gè)“課程”的相關(guān)領(lǐng)域,學(xué)習(xí)知識(shí),解答謎題等等,他所操作的過(guò)程需要記錄下來(lái)?!俺晒钡淖饔脩?yīng)該是記錄玩家的操作,同時(shí)提供一個(gè)接口以方面查詢。(3)課程:“課程”是最重要的一個(gè)概念,它包含了在教育游戲中一個(gè)獨(dú)立區(qū)域范圍內(nèi)所需要的子物體。由于它包含了太多的概念和功能,所以我們對(duì)他進(jìn)行使用或者復(fù)用是比較困難的。(4)教室:“教室”是“課程”傳授的物理區(qū)域。“教室”要提供一些必要的限制,比如玩家需要通過(guò)那些必須的“課程”才能進(jìn)入到此教室。“教室”需要具備三個(gè)功能:1)能夠知道玩家何時(shí)進(jìn)入或者離開。2)明確玩家需要完成哪些先決的“課程”。3)知道玩家在先決的課程的操作。(5)謎題和考試:當(dāng)玩家進(jìn)入一個(gè)“教室”,他會(huì)去探索;來(lái)發(fā)現(xiàn)離開這個(gè)“教室”的路。但是在路上會(huì)遇到很多的“謎題”。每一個(gè)謎題都是由兩部分組成的:?jiǎn)栴}和答案。“謎題”能夠判斷玩家輸入的答案和標(biāo)準(zhǔn)答案是否一致,同時(shí)還要做到能夠根據(jù)玩家的動(dòng)作來(lái)跟新玩家“成就”。只有玩家解決了在“教室”里一系列的“謎題”,玩家才可以離開。(6)教科書:為了通過(guò)“考試”,玩家要有很強(qiáng)的信心來(lái)獲取相關(guān)知識(shí)才可以?!敖炭茣笔恰罢n程”所要交的內(nèi)容,也是“謎題”答案所在的地方。“教科書”要做到相對(duì)來(lái)說(shuō)要簡(jiǎn)單,保持與相關(guān)“課程”的內(nèi)容相關(guān)。教科書的表現(xiàn)形式有很多種,比如普通的文本,問(wèn)答題,圖片,視頻等等。(7)教師:為了使游戲能夠達(dá)到靈活多樣,“教師”扮演了以一個(gè)特殊的角色,而不是一個(gè)普通的NPC角色,或者可以說(shuō)他是軟件的一個(gè)接口,任何游戲物體都可以成為“老師”角色,只要它能夠與“教科書”有聯(lián)系。(8)障礙:為了增加游戲的挑戰(zhàn)性,我們可以在玩家的前進(jìn)的道路上增加“障礙”。從本質(zhì)來(lái)說(shuō),“障礙”就是一個(gè)玩家在物理上一個(gè)限制,比如一個(gè)鎖住的門,一個(gè)陡峭的懸崖,一個(gè)太深的河等等。為了克服這個(gè)障礙,玩家需要滿足一些特定的條件:玩家需要響應(yīng)的游戲物體來(lái)克服特定的“障礙”。(9)獎(jiǎng)勵(lì):如果在玩家能夠在很好完成一段歷程,我們要能夠給予一定的獎(jiǎng)勵(lì),以此激勵(lì)?!蔼?jiǎng)勵(lì)”本質(zhì)是一個(gè)具備特殊屬性的游戲物體,它可以幫助玩家克服“障礙”。(10)提示:對(duì)于新的玩家來(lái)說(shuō),如果沒(méi)有提示的幫助,他有可能在第一次旅行時(shí)會(huì)迷路。因此,我們很有必要為玩家提供一個(gè)提示功能,它能夠幫助玩家顯示他所在的位置,他所要完成的任務(wù)以及下一步該怎么做。
2.2 調(diào)節(jié)游戲的教育性和娛樂(lè)性之間的工具
如何調(diào)節(jié)一個(gè)教育游戲的娛樂(lè)性和教育性是成功與否的關(guān)鍵?!敖炭茣笔墙逃螒虻膬?nèi)容,也是探索游戲世界的樂(lè)趣和動(dòng)機(jī)所在?!爸i題”是一個(gè)重要途徑來(lái)進(jìn)行引導(dǎo),同時(shí)也強(qiáng)迫玩家在探索游戲世界時(shí)進(jìn)行學(xué)習(xí)一些知識(shí)。“障礙”可以增加更多的娛樂(lè)和挑戰(zhàn),而“提示”卻與之相反,“提示”可以幫助玩家擺脫困境,很之便的簡(jiǎn)單。“獎(jiǎng)勵(lì)”不僅能夠使玩家獲得成就感,同時(shí)還是提供克服“障礙”所必須要的游戲物品。
3 教育游戲框架在Unity3d中的應(yīng)用
在第二部分中,我們介紹了教育游戲框架是一個(gè)獨(dú)立于游戲開發(fā)引擎的開發(fā)工具,在這一部分中,我們將教育游戲框架進(jìn)行實(shí)例化,并且應(yīng)用到Unity3d游戲引擎中。
3.1 在Unity3d教育游戲可復(fù)用的腳本
Unity3d游戲引擎為了我們提供組件,可以很方便的以組件的形式進(jìn)行工程組建。為了實(shí)例化教育游戲基礎(chǔ)框架,我們將它進(jìn)行實(shí)例化,應(yīng)用到一個(gè)實(shí)例系統(tǒng)中:導(dǎo)游系統(tǒng)。這個(gè)系統(tǒng)是在虛擬漫游中比較新穎的方面,他不僅可以根據(jù)導(dǎo)游NPC位置不同給予不同的消息響應(yīng),同時(shí)還可以通過(guò)判斷與玩家不同的距離給予不同的響應(yīng)。舉個(gè)例子,當(dāng)導(dǎo)游NPC走到一個(gè)廣告牌時(shí),可以通過(guò)調(diào)用GUI,對(duì)展牌進(jìn)行介紹;當(dāng)導(dǎo)游NPC里玩家距離過(guò)遠(yuǎn)時(shí),可以給你玩家一定的提示,要求玩家要跟隨。
3.2 Unity3d路徑動(dòng)畫設(shè)定
在導(dǎo)游系統(tǒng)中,第一個(gè)要解決的問(wèn)題就是NPC路徑動(dòng)畫問(wèn)題。例如,怎樣在Unity3d中設(shè)置路徑?NPC怎樣沿曲線運(yùn)動(dòng)?路徑運(yùn)動(dòng)時(shí)候的消息觸發(fā),路徑運(yùn)動(dòng)中的碰撞檢測(cè)等等。
(1)路徑設(shè)計(jì)。在此工程中,我們運(yùn)用到了Bezier曲線生成算法。首先我們介紹一下Bezier曲線。Bezier曲線用一句簡(jiǎn)單的話說(shuō)就是用給定的離散的點(diǎn),生成一條平滑的曲線。同時(shí)這條Bezier曲線具有如下性質(zhì):端點(diǎn)性質(zhì),即曲線過(guò)兩端點(diǎn);凸包行,Bezier曲線完整的落在控制點(diǎn)所圍成的多邊形內(nèi);對(duì)稱性,即由Pi與Pn-i組成的曲線,位置一致,方向相反;Pn (t)=(1-t)Pn-1(t)+tPn-1(t)。其生成示意圖如表1所示。
圖1 四階Bezier曲線(2)NPC沿曲線切線運(yùn)動(dòng)。雖然我們已經(jīng)能夠確定物體的運(yùn)動(dòng)軌跡,但是我們還沒(méi)有明確物體怎樣沿著曲線運(yùn)動(dòng)。一般來(lái)說(shuō),我們都只沿著曲線的切線方向來(lái)運(yùn)動(dòng),即規(guī)定好物體的正方向,一般為Z軸方向,沿著曲線的每一點(diǎn)的切向方向?yàn)檎较蜻M(jìn)行運(yùn)動(dòng)。這樣的好處是能夠保持物體始終正面運(yùn)動(dòng),這樣也符合人們的認(rèn)識(shí)邏輯。