周文宏 賈文 高悅 郭馥英 宋力
摘 要 目前 游戲產(chǎn)業(yè)的發(fā)展如火如荼 為了與時俱進 降低教學(xué)實踐中的游戲編程難度 提高學(xué)生的學(xué)習(xí)興趣 對 計算機游戲程序設(shè)計 課程的教學(xué)內(nèi)容 教學(xué)工具進行改革 并對教學(xué)方式進行研究和探索 以期提升教學(xué)質(zhì)量 從而提高學(xué)生的游戲設(shè)計與開發(fā)能力 以及工程實踐能力
關(guān)鍵詞 游戲程序設(shè)計Unity3D 教學(xué)方法
中圖法分類號: TP311? 文獻標識碼:A
1 引言
在2010 年,西安電子科技大學(xué)開設(shè)了“計算機游戲程序設(shè)計”課程,這門課程最初為計算機科學(xué)與技術(shù)學(xué)院面向大三所開設(shè)的任選專業(yè)課,總學(xué)時36 學(xué)時,計2 學(xué)分。
該課程的教學(xué)目標是讓學(xué)生了解游戲的分類、開發(fā)過程以及設(shè)計游戲所需的各種基本知識,并通過游戲設(shè)計實踐,使學(xué)生對游戲設(shè)計具備一定的基礎(chǔ),同時培養(yǎng)學(xué)生的游戲設(shè)計全局觀,為進一步探索游戲設(shè)計奠定基礎(chǔ)。
開發(fā)工具使用Visual C + +, 結(jié)合DirectX 及OpenGL。授課教材以耿衛(wèi)東、陳為編寫的《計算機游戲程序設(shè)計》(第二版)為主,結(jié)合主講教師編寫的補充內(nèi)容。其特點是涉及的技術(shù)理論較多、較深,該程序用C/ C++編寫,交互方式涉及Windows 系統(tǒng)的消息機制,復(fù)雜效果涉及DirectX,OpenGL 的使用,對一部分學(xué)生而言,學(xué)習(xí)和掌握這部分內(nèi)容有較大的難度,因此需要投入較多的編程時間,程序調(diào)試也較困難,這導(dǎo)致了學(xué)生學(xué)習(xí)效率以及動手實踐的積極性降低,從而直接影響課堂教學(xué)質(zhì)量和教學(xué)效果。另外,由于Unity3D 在游戲行業(yè)的盛行,以及手游市場的占有率較高,目前已成為國內(nèi)使用最多的游戲引擎之一。其具有界面友好,功能豐富,素材資源眾多,以及入門較為容易等特點,并且可以做到立刻出結(jié)果,由于采用C#編寫腳本,因此降低了學(xué)習(xí)難度。基于上述原因,此次課改對課程的教學(xué)大綱、教學(xué)內(nèi)容、教學(xué)工具,以及考核方式進行了較大的改動,并對多種教學(xué)方法的融合進行了研究和探索。
2 課程改革內(nèi)容
保留原來前三章的內(nèi)容:計算機游戲簡介、游戲程序設(shè)計概述、二維游戲的基本編程技術(shù);刪除有關(guān)DirectX,OpenGL 的高級圖形技術(shù)、人機界面、游戲中的人工智能等內(nèi)容;增加Unity3D 引擎介紹、基于Unity3D 引擎的游戲開發(fā)技術(shù)、游戲開發(fā)項目案例等內(nèi)容。課改前后教學(xué)內(nèi)容對照如表1 所列。
第一部分:第1~3 章,主要以軟件工程的思想講述游戲程序設(shè)計方法,以Windows 系統(tǒng)為平臺,剖析二維游戲的設(shè)計原理和編程方法,以便讓學(xué)生理解和掌握二維游戲的框架設(shè)計思路及基本編程技術(shù),編程語言以C++為主。
這部分之所以保留,目的是讓學(xué)生不僅僅掌握一門游戲開發(fā)工具的使用技能,更重要的是理解游戲引擎背后的設(shè)計原理。因此,該課程教學(xué)目標不僅僅是培養(yǎng)一名合格的程序員,而是要培養(yǎng)理論基礎(chǔ)扎實、工程實踐能力突出,以及創(chuàng)新意識強的高層次專業(yè)技術(shù)人才。
第二部分:講述Unity 3D 游戲開發(fā)工具的操作與使用以及開發(fā)的基本知識,最后通過游戲案例將所講知識融會貫通。
3 教學(xué)方法
教學(xué)方法多種多樣,教師不能只單純追求熱點效應(yīng),而應(yīng)當基于學(xué)生與課程特點,適當?shù)夭捎枚喾N或混合教學(xué)模式[1] 。
3.1 案例演示導(dǎo)入知識教學(xué)法
弱化識記型知識。比如,在Unity 3D 軟件使用中,命令、按鈕以及快捷鍵等操作方式有很多步驟,這些知識主要靠識記。在教學(xué)中主要以操作“菜單”為主,減輕學(xué)生入門時的識記負擔(dān)。
課堂上,主要采用案例演示導(dǎo)入知識教學(xué)法,即給出任務(wù)→案例演示→游戲創(chuàng)建→腳本編程→知識點講解。通過案例運行的直觀效果引出知識點,然后再講授相關(guān)內(nèi)容,最后再運行一次案例,使學(xué)生加深理解。隨著課程的深入,后期讓學(xué)生在示例的基礎(chǔ)上,通過修改、擴展新功能,鞏固所學(xué)知識,加強實際的動手能力。
下文以“風(fēng)車旋轉(zhuǎn)”游戲為例,闡述具體的教學(xué)實施步驟。
首先,講明任務(wù)為實現(xiàn)風(fēng)車的轉(zhuǎn)動。然后設(shè)計游戲規(guī)則,思考需要準備哪些素材。
第一部分:先運行游戲例子,進行效果演示。
(1)打開已建好的項目,運行游戲。
(2)點擊鼠標左鍵,使風(fēng)車的旋轉(zhuǎn)。第二部分:創(chuàng)建游戲。
(3)設(shè)計游戲規(guī)則,準備游戲的素材:風(fēng)車圖片。
(4)創(chuàng)建場景視圖。
(5)給場景添加游戲?qū)ο螅簩L(fēng)車圖片拖拽到場景視圖中,命名為windmill。
(6)設(shè)置風(fēng)車的坐標、大小,以及背景顏色。
(7)運行,查看風(fēng)車的靜態(tài)效果。第三部分:編寫腳本。
(8)創(chuàng)建腳本文件RotateController.cs,在該腳本的Update()函數(shù)中編寫鼠標左鍵被按下時,改變旋轉(zhuǎn)速度。
這里讓學(xué)生先對Update()有個印象和大概的了解。以后會在MonoBehaviour 基類中進行詳細的講解。
第四部分:掛載腳本。
(9)把RotateController 腳本拖拽到windmill 對象上(在第5 步創(chuàng)建的)。
(10)運行游戲,單擊鼠標左鍵后,風(fēng)車開始旋轉(zhuǎn)。
3.2 項目綜合實例教學(xué)
教師根據(jù)教學(xué)目標和內(nèi)容要求收集、選取典型案例,對案例進行演示,對涉及的關(guān)鍵技術(shù)及其實現(xiàn)方法進行分析和講解,培養(yǎng)學(xué)生的游戲設(shè)計全局觀。表2 以“自建跑道的駕駛游戲”項目為例,介紹案例中涉及的主要知識點。
3.3 實驗教學(xué)
實驗教學(xué)主要分為以下3 項。
(1)學(xué)生根據(jù)教師給的示例,通過實際操作對腳本代碼加以分析和理解。
(2)完成專題實驗作業(yè)。
(3)自由組合,1 ~ 4 人為一組,完成一個實踐項目。從構(gòu)思、設(shè)計到實現(xiàn),最后進行成果匯報,并提交設(shè)計文檔,教師進行當場點評。
在該環(huán)節(jié)中,主要采用任務(wù)驅(qū)動模式[2] ,將實踐教學(xué)作為理論教學(xué)切入點,實現(xiàn)理論與實踐的有機結(jié)合[3] ,可以鍛煉學(xué)生的主動思考能力和設(shè)計能力,培養(yǎng)學(xué)生的團隊合作意識、溝通協(xié)調(diào)和創(chuàng)新能力,為學(xué)生以后步入社會、及早適應(yīng)工作奠定基礎(chǔ)。
3.4 課堂搬進實驗室,邊講邊練,教學(xué)更直觀
將教室遷移至具備實驗環(huán)境的機房,采用“教、學(xué)、做”一體化教學(xué)方法。教師課前先將相關(guān)示例程序共享,學(xué)生可以跟著教師的講解同步操作,這樣可使學(xué)生加深印象,快速掌握課堂內(nèi)容,提高學(xué)習(xí)效率。
3.5 借助智課平臺,貼心化教學(xué)
建課時, 教師會將教學(xué)目標、教學(xué)計劃、教學(xué)PPT、示例代碼等相關(guān)教學(xué)資料上傳至智課平臺。每次課后,教師將當天的教學(xué)視頻上傳,并根據(jù)實際情況更新教學(xué)資源,以供學(xué)生預(yù)先了解或復(fù)習(xí)。
3.6 線上教學(xué),拓展知識或翻轉(zhuǎn)課堂
本次課改增加了4 學(xué)時的線上教學(xué)。教師會根據(jù)實際情況來進行知識拓展,或者翻轉(zhuǎn)課堂教學(xué)。知識拓展是為了開闊學(xué)生視野,可以講授新知識、游戲產(chǎn)業(yè)新動向,或者讓學(xué)生觀看相關(guān)領(lǐng)域的視頻。
翻轉(zhuǎn)課堂以學(xué)生為中心,將學(xué)習(xí)的決定權(quán)從教師轉(zhuǎn)移給學(xué)生。其核心在于把低階的教學(xué)目標移出課堂之外,從而把課堂時間解放出來進行高階目標的深層學(xué)習(xí)[4] 。這個方法需要提前跟學(xué)生溝通,圈定專題范圍,并要求學(xué)生在課前一起學(xué)習(xí)新知識、查閱資料以及準備云課堂上的演講,在云課堂上陳述小組工作成果,回答其他學(xué)生的提問。學(xué)生通過教來學(xué)習(xí),并從其他學(xué)生對演講的評論和提問中獲益[5] 。
4 考核方式
考核方式多元化,全面考核學(xué)生??傇u成績由3部分組成,即“專題實驗作業(yè)(20%) +實踐大作業(yè)(40%,含答辯過程)+筆試(40%)”。其中,實踐大作業(yè)由小組完成,提交材料包括分工說明、策劃書、設(shè)計文檔、答辯PPT、源代碼等。
5 實踐的效果與存在的問題
基于實踐教學(xué)環(huán)境的使用,使過去“理論+上機實驗” 的教學(xué)方式變成了“邊講邊練”的模式,解決了理論與實踐教學(xué)相分離導(dǎo)致的教學(xué)效果低下的問題;加強了學(xué)生現(xiàn)場吸收效果,提高了學(xué)生學(xué)習(xí)的積極性。
課改實施一年來,學(xué)生對教學(xué)內(nèi)容、教學(xué)方法、講課示例、筆試占總成績的比例等給了許多的反饋意見,該課程后期將會適時改進。2022 年,選課生和旁聽生中有3 人選了授課教師的有關(guān)游戲設(shè)計與開發(fā)方面的本科畢業(yè)設(shè)計題目,且在畢設(shè)答辯中均獲得了優(yōu)秀成績。在“2022 年陜西省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目”中,參與指導(dǎo)的團隊入選了國家級一般項目。
但該課程仍存在一些不足,因為專業(yè)設(shè)置、課程性質(zhì)等原因,實踐操作課時安排較少,理論課也未涉及更深的技術(shù)及編程技巧。另外,因硬件設(shè)備的限制,講課內(nèi)容也未涉及虛擬現(xiàn)實技術(shù)。
6 結(jié)束語
通過本次的“計算機游戲程序設(shè)計”課程實踐教學(xué)改革,選用Unity3D 作為游戲開發(fā)工具,融合了多種教學(xué)方法,使學(xué)生學(xué)習(xí)的興趣和積極性得到了大幅提高。實踐證明,該課程教學(xué)改革加強了學(xué)生創(chuàng)新意識與工程實踐能力,并取得了較好的教學(xué)效果。在今后的教學(xué)工作中,將通過進一步的實踐探索和學(xué)生反饋,并總結(jié)教學(xué)問題,不斷改進和完善,實現(xiàn)教學(xué)革新推動教學(xué)發(fā)展。
參考文獻:
[1] 吳寧,房琛琛,任燕飛.大班教學(xué)環(huán)境下基于SPOC 的混合教學(xué)設(shè)計與效果分析[J].中國大學(xué)教學(xué),2016(5):32?37.
[2] 楊競?cè)A.項目教學(xué)法在計算機教學(xué)中的應(yīng)用[M].吉林:吉林人民出版社,2021.
[3] 張奕櫻,霍英杰.任務(wù)驅(qū)動教學(xué)法在計算機教學(xué)中的應(yīng)用實踐[J].佳木斯職業(yè)學(xué)院學(xué)報,2023,39(1):151?153.
[4] 郭建鵬.翻轉(zhuǎn)課堂教學(xué)模式:變式與統(tǒng)一[J].中國高教研究,2019(6):8?14.
[5] 張萍,DING Lin,張文碩.翻轉(zhuǎn)課堂的理念、演變與有效性研究[J].教育學(xué)報,2017(1):46?55.
作者簡介:
周文宏(1966—),碩士,高級實驗師,研究方向:計算機應(yīng)用技術(shù)。