摘 要基于Cocos2d-x這一應用廣泛的開源游戲引擎來講述游戲引擎的理論、機制、技術,權衡了學生基礎及課程特點,考慮了學生的后續課程及職業發展。在課程講授內容的深度、廣度、難點、重點等方面進行了探索,取得了一定的成效。
【關鍵詞】Cocos2d-x 游戲引擎
本文探討把Cocos2d-x這一開源游戲引擎作為課程主線的原因、做法及效果。
1 游戲引擎及其相關基礎課程
游戲引擎是開發游戲的通用底層框架,其對游戲開發通用技術進行高層次抽象并封裝,方便開發者重用,并最終提高開發效率。游戲引擎通常包括圖像渲染引擎、場景管理、游戲界面、物理引擎、游戲腳本、聲音、網絡、內存管理等組件,涉及到《三維圖形程序設計》、《操作系統》、《數據結構》、《計算機網絡》、《線性代數》等課程的相關基礎知識,綜合性較強。
傳統的桌面游戲引擎如Unreal Engine、OGRE、CryEngine、Unity等相對重量、復雜,學習門檻較高,學習曲線較長。伴隨著手機的普及及HTML5技術的發展,涌現出了針對手機和瀏覽器的游戲引擎,比如Cocos2d-x、LibGDX、Three.js、Egret Engine等,這些游戲引擎相對輕量,容易上手,適合初學者。而且,隨著開源技術的發展,開源游戲引擎也逐漸增多,也給深入了解游戲引擎的內部實現提供了諸多機會。
當前,國內開發手機游戲使用較多的是Cocos2d-x、Unity等,開發HTML5游戲使用較多的是Egret Engine、Cocos2d-js、Layabox等,總體來講,這些引擎的書籍、文檔資料豐富,中文支持較好。經過權衡,我們選擇Cocos2d-x作為《游戲引擎基礎》課程的講解對象,意圖由淺入深、由點及面講解游戲引擎的組成及實現機制,促使學生加深對游戲引擎的理解,具備一定的游戲分析能力,掌握基本的開發技能。
2 Cocos2d-x的特點及實現
Cocos2d-x是2010年國內的王哲團隊基于Cocos2d-iPhone(Objective-C編寫)派生而來,用C++移植。Cocos2d-x作為一款開源、跨平臺、輕量、主要面向移動平臺的游戲引擎,其易于使用、高效、便于擴展,吸引了眾多游戲愛好者、游戲開發商、硬件廠商,市場也涌現出不少用Cocos2d-x開發的流行游戲。
最近幾年Cocos2d-x一致保持著快速迭代進化,其提供了JavaScript、Lua語言綁定,3D功能也不斷得到增強。Cocos2d-x的開發團隊還提供了Cocos Creator等開發工具,試圖覆蓋手機游戲制作的完整流程。如圖1所示。
Cocos2d-x的框架結構、源碼結構清晰,易于理解和分析。Cocos2d-x的基礎概念有導演、場景、層、精靈、調度器,圖像渲染功能有動作、序列幀動畫、骨骼動畫、場景轉換效果、粒子系統、瓦片地圖等,還集成了聲音、網絡、物理引擎等擴展庫。
當前,市面上有不少關于Cocos2d-x的書籍,涵蓋了基本用法、原理分析、案例制作等主題。同時,一些學校也將其列入選修課程,一些職業技能培訓機構也開設這方面的培訓。有鑒于此,將Cocos2d-x引入到《游戲引擎基礎》課程中值得嘗試。
3 基于Cocos2d-x的《游戲引擎基礎》課程實踐
圍繞Cocos2d-x講解《游戲引擎基礎》,關鍵在于要將游戲引擎一般理論與Cocos2d-x個案分析,Cocos2d-x框架機制與內部代碼實現,典型游戲案例分析與獨立開發游戲技能提升相結合。如圖2所示。
在實踐中,主要做法有:
(1)基于Cocos2d-x的附帶案例,講解導演、場景、層、精靈、動作等基本概念;
(2)分析Cocos2d-x源碼,講解精靈、動作、動畫、調度器等的內部實現,結合OpenGL ES講解精靈的渲染機制;
(3)基于Cocos2d-x集成的Box2d物理引擎,講解2D物理引擎的使用辦法和實現思路;
(4)在把握Cocos2d-x的基礎上,結合Cocos2d-html5、Cocos2d-x的Javascript綁定講解游戲腳本編程;
(5)在使用Tiled Map Editor瓦片地圖制作工具、Cocos Creator場景制作工具、Particle Universe粒子制作工具的過程中,學習瓦片地圖渲染、粒子渲染、場景元素屬性相關的理論知識;
(6)結合捕魚達人、保衛羅卜、太空戰機等游戲案例,結合理論分析游戲實現,并改動、擴展這些案例;
(7)課程實施過程中,引入了選擇、判斷題型的在線測試,檢驗基本知識點、Cocos2d-x API等的掌握情況,提高識記、理解效果。結課作業要求學生獨立完成簡單游戲的設計與開發。
總體而言,傳統的游戲引擎課程側重于講解數學運算、圖形渲染、場景管理等的封裝及實現,對學生的專業基礎要求較高,學生接受程度較低。本課程面向游戲開發等方向的初學者,嘗試把Cocos2d-x這一有較高市場競爭力的開源游戲引擎引入到課程,系統化地全面了解游戲引擎的設計、實現和應用,為后續課程的學習和職業發展打下良好基礎。
參考文獻
[1]于復興,吳亞峰,索依娜.Cocos2d-x游戲開發標準教程[M].北京:人民郵電出版社,2016:1-2.
[2]秦春林.我所理解的Cocos2d-x[M].北京:電子工業出版社,2014:18-19.
作者簡介
王玉峰(1982-),男。碩士學位。助教。主要研究方向為游戲引擎、全棧開發。
作者單位
華北水利水電大學軟件學院 河南省鄭州市 450045