《Cocos2D-X游戏开发技术精解》一1.5 引擎的组成

简介:

本节书摘来异步社区《Cocos2D-X游戏开发技术精解》一书中的第1章,第1.5节,作者: 刘剑卓 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 引擎的组成

Cocos2D-X游戏开发技术精解
作为知名的2D游戏引擎,Cocos2D-X具备的功能算得上达到应有尽有、无所不能的程度了。在引擎中甚至都提供了一些3D功能。按照模块以及功能来看,引擎中包含了画面渲染、碰撞检测、音乐音效、操作响应、内存控制、粒子效果、文件读写、UI界面等一系列的功能。这些内容,将在本书后续的章节中逐个进行详尽的介绍。其实读者只要看看本书各个章节的目录,就会知道Cocos2D-X引擎为开发者提供了哪些丰富的功能。

说明:

因为Cocos2D-X引擎发展从未停滞不前,所以读者看到本书时,它一定会有一些新的功能或者工具出现。

Cocos2D-X引擎为开发者提供了开发游戏的基础内容。游戏开发者可以在引擎中找到与游戏制作相关的所有内容。除此之外,它还支持许多第三方的工具或者程序库,比如物理模拟库、动画工具、地图编辑器以及粒子编辑器。这些工具与程序库,能够帮助开发者更快更高效地完成游戏制作的过程。因为Cocos2D-X引擎已经拥有了广大使用群体,其中包括Zynga、Namco、GLU等国际知名游戏公司,所以越来越多的开发者分享与之配套的工具。下面简单地为读者列举一些Cocos2D-X引擎中的功能。这算是作为前期的铺垫,在后续的章节读者将会详细地熟悉它们。

场景管理:采用种子树的方式来管理画面。使用流水线的方式来绘制游戏界面。
场景切换:提供了丰富的场景切换效果,比如滚轴、翻页、淡进淡出。
精灵以及精灵列表:精灵是游戏内容的基本元素,它被用来表现游戏中的各个物体。
特殊效果:画面的透明、波纹、波动、液态效果等。
动作功能:引擎中的精灵具备丰富的动作或者行为。比如移动、旋转、伸缩等。
UI界面:引擎中提供了一些简单的菜单以及按钮组件。
支持物理功能:引擎外接了两款物理引擎,Box2D与Chipmunk。
粒子系统:用于游戏中的火焰、雪花、爆炸等特殊效果。
字体功能:快速的可编辑字体绘制功能,支持TTF标准字体。
支持纹理集合:引擎支持将多张纹理整合为一张纹理的功能。此功能用于节省内存,提供绘制速度。
地图背景功能:支持三种地图图块拼接方式矩形、菱形以及正六边形。
绘制到纹理:这是一个三维渲染技术,类似二维平面中的绘制缓冲区技术。
用户交互:引擎可以响应iOS设备中的触碰以及加速度计,和Mac平台的触碰、鼠标以及键盘。
跨平台功能:隐藏各个平台的差异,为开发者提供统一、完整的功能。
声音模块:提供了丰富的声音播放功能,支持多种音频格式。
支持脚本开发:引擎中提供了对Lua以及JavaScript脚本编写的支持。
上述的条目只是列出了大部分Cocos2D-X引擎中的功能。如果读者是第一次接触游戏引擎的话,看到如此多的功能,难免会感觉到学习的压力。大可不必有如此的担心。因为Cocos2D-X引擎设计之初,就是为了让更多的新人进入游戏开发领域,所以它一直秉承着简单易用的观念。上述列举的功能中,有些内容甚至于只需编写一句代码就可以实现。再加上本书中使用了很多示例项目作为介绍,读者将会非常轻松地成为Cocos2D-X引擎的开发高手。

Cocos2D-X引擎中大部分的源代码是基于C/C++编写完成的,所以开发者也主要使用C/C++编程语言来完成。不过,由于引擎提供了脚本支持,开发者也可以选择使用Lua或者JavaScript。Cocos2d-X引擎已经足够成熟,足够稳定。引擎不仅拥有众多的开发者,而且在各个平台都已存在许多游戏产品。Cocos2D-X引擎能够成为2D引擎中的佼佼者,获得玩家和开发者的热衷,完全是因为其强劲而完善的功能。Cocos2D-X具备了优秀引擎的品质:功能完善、性能强劲、多平台支持、丰富的工具、简单易用。

说明:

由于跨平台的特性,在引擎中还存在基于Objective-C和Java的源代码。

虽然Cocos2D-X引擎总是被用来制作二维游戏,但是其底层的渲染库选用的是OpenGL ES 2.x。究其原因,无非想要通过硬件设备来提高引擎的渲染能力。以个人电脑为例,如果只是进行简单的平面图形绘制,那么通过CPU的运算就可以快速实现。但是面对色彩纷呈的游戏画面,CPU的运算就不够用了。对于那些复杂、大型的游戏,玩家就需要通过显卡来提升性能了。对于移动设备也是如此。此时就是OpenGL ES渲染库登场的时候,OpenGL ES是专门为移动设备打造的3D渲染器,它已经成为硬件领域的技术标准。

Cocos2D-X引擎选用OpenGL ES作为渲染底层,出于两个明显的原因。

(1)因为OpenGL ES已经成为各个平台系统的标准支持,所以选用它可以从根本上解决引擎跨平台的问题。

(2)OpenGL ES渲染库能够获得来自设备显卡的支持。这是一种对游戏渲染性能最佳的提升方式。

基于上述两点原因,OpenGL ES就成为了引擎开发者最佳的选择。虽然引擎的渲染库是基于三维空间的,读者也不用担心缺乏对三维空间技术的理解。因为Cocos2D-X引擎已经为开发者降低了技术复杂度,对于开发者来说几乎完全感觉不到任何3D方面的内容。开发者不需要知道画面效果是怎样用OpenGL ES代码来实现的。

相比来说,二维游戏更容易开发,也更容易让人理解。而且多数情况下,2D游戏产品对设备硬件的要求更小。开发者能创建更生动和拥有更多细节的画面。开发者哪怕对OpenGL ES的技术一点不知,也仍然能够运用Cocos2D-X引擎制作出优秀游戏。现实情况也是如此,笔者曾经问过一些开发者,他们也并不懂得任何三维空间的技术,却也做出了让人称赞的游戏。这就好像我们所使用的手机。很多人并不知道它是通过怎样的技术来接听电话或者发送信号的,但依旧是人手一台,聊得不亦乐乎。

说明:

如果读者要想成为游戏制作技术的高手,那么OpenGL ES开发是必须掌握的技能之一。

相关文章
|
人工智能 安全 Unix
游戏编程之九 设计工具之游戏引擎
游戏编程之九 设计工具之游戏引擎
81 0
|
JavaScript 前端开发 vr&ar
【游戏开发】unity入门教程
Unity是一款非常受欢迎的游戏引擎,它可以用于开发2D和3D游戏以及虚拟现实和增强现实应用程序。如果你是一个刚开始接触Unity的开发者,这篇教程将为你提供一些有用的指导。
|
前端开发 JavaScript iOS开发
《Cocos2D权威指南》——2.2 构建游戏场景
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第2章,第2.2节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1159 0
《Lua游戏开发实践指南》一第1章 游戏开发入门
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第1章 ,(美)Paul SchuytemaMark Manyen 著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1503 0