APP下载

基于Cocos2d—x的游戏引擎

2017-11-09王玉峰

电子技术与软件工程 2017年19期
关键词:开源引擎基础

摘 要基于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

猜你喜欢

开源引擎基础
“不等式”基础巩固
“整式”基础巩固
五毛钱能买多少头牛
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
“五抓五促”夯基础
One Engine Left只剩下一个引擎