基于Cocos2d—x的游戏引擎
2017-11-09王玉峰
摘 要基于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