夏 曄 朱奇奇 龍楚涵 紀(jì)執(zhí)彪 楊尚瑩 谷志新
(1.東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040;2.東北林業(yè)大學(xué)經(jīng)濟(jì)管理學(xué)院,哈爾濱 150040)
該文是以本團(tuán)隊(duì)自主開(kāi)發(fā)的一款面對(duì)中小學(xué)生學(xué)習(xí)和了解Python代碼使用的編程類游戲。學(xué)習(xí)游戲需要從尊重玩家的游戲體驗(yàn)和學(xué)習(xí)性出發(fā),可以通過(guò)虛擬游戲情境和結(jié)構(gòu)化的任務(wù)系統(tǒng)從而激發(fā)和維持玩家的學(xué)習(xí)動(dòng)力。采用游戲機(jī)制、藝術(shù)美學(xué)和游戲思維等方面來(lái)吸引玩家,可以更好的增強(qiáng)學(xué)習(xí)興趣,提高解決問(wèn)題的實(shí)踐能力。從而使玩家在游戲中有著愉悅的體驗(yàn)并在與游戲的交互中實(shí)現(xiàn)知識(shí)建構(gòu)和技能習(xí)得,最后構(gòu)建出自己關(guān)于學(xué)習(xí)內(nèi)容的基本使用知識(shí)和認(rèn)知,便于更快的上手某項(xiàng)技能[1]。
該文中的游戲?yàn)镻ython迷宮游戲,是以英文“Python”的中文“蟒蛇”為游戲角色設(shè)計(jì)的一款游戲。以類似于王子復(fù)仇記為背景,增加游戲的趣味性,大概背景如圖1。玩家操控蟒蛇,在進(jìn)入游戲迷宮之前,會(huì)出現(xiàn)Python編程語(yǔ)言相關(guān)的知識(shí)點(diǎn),在接下來(lái)的關(guān)卡中,會(huì)出現(xiàn)與知識(shí)點(diǎn)相關(guān)的題目,游戲角色需要選擇正確的出口,走出迷宮[2]。
圖1 游戲背景
因?yàn)橛螒蛑饕康氖敲嫦蛑行W(xué)生,所以不會(huì)太過(guò)復(fù)雜,主要的目的是培養(yǎng)中小學(xué)生的計(jì)算思維、計(jì)算實(shí)踐和編程。通過(guò)編程語(yǔ)言的學(xué)習(xí),培養(yǎng)學(xué)習(xí)者的計(jì)算思維,提高創(chuàng)造思維和解決問(wèn)題的能力,最終目標(biāo)是培養(yǎng)學(xué)生創(chuàng)新創(chuàng)造能力。
設(shè)計(jì)中以培養(yǎng)學(xué)生創(chuàng)新創(chuàng)造能力為主要目標(biāo)和需求進(jìn)行初步假設(shè),通過(guò)對(duì)中小學(xué)生對(duì)編程的了解和能力培養(yǎng)以及國(guó)內(nèi)外的編程游戲的調(diào)查進(jìn)行了詳細(xì)的分析研究,項(xiàng)目的開(kāi)發(fā)人員也對(duì)實(shí)現(xiàn)目標(biāo)和游戲系統(tǒng)的需求功能與性能有了較為深刻的理解與明確的認(rèn)識(shí),可以從中對(duì)系統(tǒng)進(jìn)行相應(yīng)的約束,最終目標(biāo)是能夠基本明確用戶的需求[3]。
該游戲的客戶端的開(kāi)發(fā)采用幻境游戲引擎,經(jīng)過(guò)深入需求分析,設(shè)計(jì)實(shí)現(xiàn)了包括地圖系統(tǒng),關(guān)卡系統(tǒng)等在內(nèi)的多個(gè)漸進(jìn)式游戲通用模塊,大體上完成了對(duì)游戲功能邏輯的相關(guān)設(shè)計(jì)。
游戲引擎的概念對(duì)于大多數(shù)沒(méi)有接觸過(guò)游戲開(kāi)發(fā)的人來(lái)說(shuō)是非常模糊的,游戲引擎可以簡(jiǎn)單地稱為“專為制作游戲而制作的代碼庫(kù)”。游戲引擎幾乎包含所有制作游戲所需要的代碼組件,相關(guān)引擎等,比如物理引擎、網(wǎng)絡(luò)引擎、渲染引擎、動(dòng)畫(huà)組件、音效組件、場(chǎng)景管理、碰撞檢測(cè)等。我們可以看出其實(shí)游戲引擎就是一個(gè)集合概念,它將設(shè)計(jì)者在游戲中可能用到的動(dòng)畫(huà)效果、算法、動(dòng)作等封裝成便于操作的模塊,使游戲設(shè)計(jì)者可以不再編寫(xiě)繁重冗長(zhǎng)的底層代碼,只需要調(diào)用相關(guān)接口就可以實(shí)現(xiàn)游戲的需求和功能,使設(shè)計(jì)者可以更加專注于功能的實(shí)現(xiàn)與邏輯的設(shè)計(jì)。很大程度上提高了游戲制作的效率,由于使用游戲引擎進(jìn)行開(kāi)發(fā)的人員越來(lái)越多,各種不足和缺陷也在逐漸修補(bǔ),所以游戲設(shè)計(jì)的質(zhì)量可以得到保證。我們游戲的設(shè)計(jì)制作風(fēng)格是從上到下,分別是:游戲應(yīng)用、引擎應(yīng)用和系統(tǒng)接口。游戲應(yīng)用之所以處于最上層,是因?yàn)樾枰ㄟ^(guò)向下調(diào)用引擎提供的不同組件和相關(guān)API來(lái)實(shí)現(xiàn)游戲所需的功能,比如物理碰撞、聲音效果等。而且可以引入自己制作的模塊,并不局限于引擎提供的模塊使用,也使游戲引擎具有更加廣泛的應(yīng)用性[4]。
該游戲的流程控制:玩家進(jìn)入游戲主頁(yè),可以選擇進(jìn)入到設(shè)置頁(yè)面和關(guān)卡選擇頁(yè)面。在關(guān)卡選擇頁(yè)面可以點(diǎn)擊進(jìn)入到相應(yīng)知識(shí)點(diǎn)學(xué)習(xí)的游戲關(guān)卡,如圖2。
圖2 關(guān)卡選擇圖
在游戲房間頁(yè)面可以進(jìn)入相關(guān)學(xué)習(xí)知識(shí)點(diǎn)游戲的關(guān)卡。當(dāng)在游戲?qū)?zhàn)頁(yè)面點(diǎn)擊暫停按鈕或者點(diǎn)擊設(shè)置鍵時(shí),會(huì)彈出游戲菜單,玩家可以通過(guò)游戲菜單選擇重新選擇關(guān)卡,游戲音效開(kāi)關(guān)等選項(xiàng),如圖3[5]。
圖3 設(shè)置選擇圖
教學(xué)模式 :玩家進(jìn)行游戲的關(guān)卡模式,大體分為四個(gè)步驟:
(1)知識(shí)點(diǎn)介紹。對(duì)玩家進(jìn)行Python知識(shí)點(diǎn)的教學(xué),如圖4,5所示,玩家需要掌握相關(guān)知識(shí)點(diǎn),因?yàn)榻酉聛?lái)的關(guān)卡房間中通關(guān)問(wèn)題與知識(shí)點(diǎn)相關(guān)。
圖4 知識(shí)點(diǎn)教學(xué)
圖5 知識(shí)點(diǎn)教學(xué)
(2)選擇出口。玩家學(xué)習(xí)完畢知識(shí)點(diǎn)后,會(huì)進(jìn)入相關(guān)迷宮房間進(jìn)行游戲,在規(guī)定時(shí)間內(nèi),通過(guò)游戲角色的移動(dòng),選擇迷宮中題目的正確答案。
(3)游戲角色死亡。玩家選擇錯(cuò)誤答案后,會(huì)死亡。死亡后,玩家會(huì)再次看到迷宮題目,并帶有先前的知識(shí)點(diǎn)介紹和題目答案解析,如圖6所示。
圖6 錯(cuò)誤提示圖
(4)游戲角色復(fù)活。玩家死亡后,可以重新進(jìn)入該關(guān)卡,但該知識(shí)點(diǎn)下的進(jìn)度清零,需要重新通關(guān)[6]。
設(shè)計(jì)一款學(xué)習(xí)類游戲需要考慮以下幾點(diǎn)因素。
首先,作為游戲使用者的主體,一切游戲設(shè)計(jì)都是為玩家即學(xué)習(xí)者服務(wù)的,所以我們必須要使玩家可以在游戲中獲得成就感,這樣才能最大限度留住玩家。因此,需要在游戲中設(shè)計(jì)制作出使玩家獲得成就感的游戲環(huán)節(jié)。其次,要發(fā)揮出游戲影音效果和劇情設(shè)計(jì)的優(yōu)勢(shì),提高玩家的游戲體驗(yàn)。學(xué)習(xí)類游戲還需要引入豐富的相關(guān)教學(xué)資源,設(shè)計(jì)恰當(dāng)?shù)娜蝿?wù)環(huán)節(jié),以此來(lái)激發(fā)玩家的學(xué)習(xí)動(dòng)力[7]。
學(xué)習(xí)游戲中的內(nèi)容是需要圍繞相關(guān)知識(shí)領(lǐng)域來(lái)設(shè)定的,例如該項(xiàng)目就是圍繞Python編程語(yǔ)言的語(yǔ)法規(guī)則、使用方法等方面來(lái)設(shè)計(jì)的,游戲設(shè)計(jì)要同時(shí)符合游戲的規(guī)律和學(xué)習(xí)特點(diǎn)。該項(xiàng)目就包括了旨在計(jì)算思維,提供批判思維和解決問(wèn)題能力的提高與鍛煉。在設(shè)置游戲內(nèi)容的過(guò)程中,游戲中的知識(shí)應(yīng)該按照從易到難的層次進(jìn)行劃分,方便玩家選擇相關(guān)知識(shí)點(diǎn)。在融入知識(shí)點(diǎn)的同時(shí),我們也需要綜合考慮游戲的互動(dòng)性和娛樂(lè)性。只有這樣,才可以真正在游戲中起到學(xué)習(xí)作用[8]。
學(xué)習(xí)類游戲可以通過(guò)游戲任務(wù)來(lái)進(jìn)行積極性的提升。任務(wù)可分為最終任務(wù)、關(guān)卡任務(wù)、具體任務(wù)、分支任務(wù)。
(1)最終任務(wù)
最終任務(wù)是整個(gè)游戲的目標(biāo),游戲設(shè)計(jì)也是圍繞最終目標(biāo)來(lái)進(jìn)行相關(guān)設(shè)計(jì),最終任務(wù)貫穿游戲的始終。
(2)關(guān)卡任務(wù)
最終任務(wù)向下可以劃分成一層層的關(guān)卡任務(wù)。玩家可以通過(guò)完成不同的關(guān)卡逐步進(jìn)行解鎖,在掌握相關(guān)知識(shí)點(diǎn)后才可以完成最終任務(wù)。關(guān)卡任務(wù)會(huì)由不同的場(chǎng)景構(gòu)成,在以最終任務(wù)的實(shí)現(xiàn)為目標(biāo)的指引下,玩家成功完成相關(guān)關(guān)卡任務(wù),才可以順利進(jìn)入下一個(gè)游戲場(chǎng)景,繼續(xù)推動(dòng)游戲進(jìn)行。
(3)具體任務(wù)
每個(gè)關(guān)卡中都設(shè)置有具體任務(wù),它是完成關(guān)卡任務(wù)及最終任務(wù)的前提。
(4)分支任務(wù)
分支任務(wù)可以在游戲過(guò)程中穿插,因?yàn)樗沁x擇性任務(wù),由玩家自主選擇是否完成,并不是強(qiáng)制性任務(wù),給予玩家自主選擇,所以分支任務(wù)可以貫穿各個(gè)關(guān)卡中。這些分支任務(wù)不僅可以使游戲內(nèi)容更加豐富有趣,而且可以對(duì)分支任務(wù)進(jìn)行設(shè)置,在完成分支任務(wù)后,還可以給予玩家額外游戲獎(jiǎng)勵(lì),極大地提高了玩家的積極性[9]。
游戲任務(wù)是將教學(xué)內(nèi)容融入到游戲中的主要方式,促進(jìn)學(xué)習(xí)目標(biāo)的完成。游戲者對(duì)任務(wù)的完成度可以視為對(duì)教學(xué)內(nèi)容的掌握程度,當(dāng)任務(wù)完成時(shí),即可認(rèn)為達(dá)到了教學(xué)目標(biāo)。任務(wù)的難度要與學(xué)習(xí)者的能力發(fā)展動(dòng)態(tài)平衡,采用自頂而下的任務(wù)系統(tǒng)設(shè)計(jì)模式的任務(wù)系統(tǒng)可以有效地解決教育學(xué)習(xí)類游戲的 “粘度”問(wèn)題。教育游戲任務(wù)系統(tǒng)的任務(wù)樹(shù)應(yīng)該具有有窮性, 樹(shù)的深度和廣度要適度,游戲要保證在有限的時(shí)間內(nèi),游戲玩家可以隨著關(guān)卡任務(wù)的逐步完成 解鎖最終任務(wù)。完成最終任務(wù)意味著玩家已經(jīng)基本掌握了游戲設(shè)計(jì)之初的預(yù)期目標(biāo),即掌握某一領(lǐng)域的相關(guān)基礎(chǔ)和擴(kuò)展的學(xué)科知識(shí),從而可以結(jié)束教育游戲。這是為了保證了在最初設(shè)計(jì)任務(wù)系統(tǒng)時(shí), 出發(fā)點(diǎn)是教育性, 而不是游戲性[10]。
該項(xiàng)目設(shè)計(jì)了一款適合中國(guó)學(xué)生學(xué)習(xí)編程能力的本土化Python學(xué)習(xí)游戲軟件。隨著對(duì)學(xué)習(xí)類游戲研究的深入,游戲的設(shè)計(jì)會(huì)更加細(xì)致,學(xué)習(xí)性和趣味性會(huì)不斷增長(zhǎng),編程教育類游戲的設(shè)計(jì)會(huì)從面向總體設(shè)計(jì)逐漸細(xì)化,會(huì)對(duì)各種各樣的編程語(yǔ)言方面,如C語(yǔ)言,編程語(yǔ)言的實(shí)現(xiàn)等方面進(jìn)行設(shè)計(jì)相關(guān)方面游戲,該項(xiàng)目也為我國(guó)Python學(xué)習(xí)游戲軟件本土化提供了參考依據(jù)。