一种2d游戏引擎的设计与实现

一种2d游戏引擎的设计与实现

ID:20018753

大小:93.50 KB

页数:5页

时间:2018-10-09

一种2d游戏引擎的设计与实现_第1页
一种2d游戏引擎的设计与实现_第2页
一种2d游戏引擎的设计与实现_第3页
一种2d游戏引擎的设计与实现_第4页
一种2d游戏引擎的设计与实现_第5页
资源描述:

《一种2d游戏引擎的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一种2D游戏引擎的设计与实现摘要对现有游戏引擎开发技术进行改进,提出了一种有效的2D游戏引擎设计与实现方法,该方法以引擎架构为基础,以累积渲染技术作为主要渲染加速手段;结合精灵与动画技术进行具体实现,达到游戏引擎设计的目的。最后通过该方法实现了一个2D游戏引擎,并用实验验证了该方法的有效性。  1、引言  2D游戏开发是游戏开发领域中一个不可或缺的重要分支,绝大多数休闲游戏与动漫游戏都是使用2D游戏技术开发实现的。2D游戏技术已经成为了手机及一系列小型设备游戏开发的主导技术。游戏引擎是游戏开发的最基础部分,为此我们提出了一种有效的2D游戏引擎的设计与实现方

2、法。通过该方法,我们设计并实现了一款2D游戏引擎。  2、2D游戏引擎核心构架  2.1引擎构架  引擎构架是游戏引擎的骨架,它的任务就是把图像渲染、输入处理、音频播放、资源管理等游戏引擎的基本功能组合成一个有机的整体。目前已经有很多比较成熟的引擎架构方法包括:  (1)结构化构架。结构化构架采用的方法是将游戏引擎内部的模块以结构化的形式组合,并以API的形式提供接口,这种构架模式的优点是效率高,接口简单清晰,适合于做一些速度要求比较高的引擎,但是缺点是其模块之间耦合度高,不易修改。  (2)基类根形式构架。基类根形式构架是以基本的几个抽象服务提供接口类为

3、基础,并以接口与实现相分离为原则,来进行引擎实现,提供的实现类在引擎内部创建,而将接口供给用户使用。这种构架模式的优点是结构清晰,实现灵活,可以适应比较大的变化,适合于做一些较大且有跨平台需求的引擎,但是该架构依赖于基本的抽象类的继承关系,导致引擎内部类继承了无用的功能而变得虚大,况且接口的通用性使得实现的效率不高,导致整体效率偏低。  (3)组件形式构架。组件形式构架是把不同功能的模块做成互相独立的系统,模块内部可以使用任何构架方式,只需要提供相应的接口即可。引擎以模块管理器为核心,支持插件形式组件增加方式,可以将新增的功能组件以插件的形式来插入系统工作

4、,这种构架方式极其灵活,且模块内效率比较高,所以某些大型商用游戏引擎采用这种方式,但这种方式设计比较困难,实现比较复杂,需要大量的开发经验。鉴于本文所提引擎开发是以研究为主,且2D游戏要求效率不是很高,我们决定采用结构最为清晰的基类根形式构架方法。以4个基本服务抽象类作为整个引擎底层提供服务的基础(如表1)。在基本类的基础上派生出引擎使用的基本类结构(见表2)。类名功能说明IRefCount提供引用计数功能ITypeInfomation提供类型识别功能IObjectInfomation提供对象识别功能IPersistence提供对象持久化功能表1基本服务抽

5、象类及功能说明类名父类IBaseITypeInfomationIResourceIBase、IObjectInfomation、ITypeInfomation表2基本类结构继承关系  其中,IBase类是引擎中绝大部分接口类的基类,它实现了的类型识别虚方法。IResource类是引擎中资源的基类,它在IBase基础上实现了引用计数和对象信息功能。  2.2引擎模块实现  为了实现方便,我们把引擎划分成7个功能模块:core,math,video,system,input,audio,scene。  (1)core模块。除了定义了引擎基本类及功能以外,还提供

6、了一些基本设施,例如日志系统,异常处理,以及资源管理等。  (2)math模块。提供引擎需要的数学库,包括向量,矩阵,基本图元的定义和实现功能。  (3)video模块。负责基本图元的渲染,对渲染环境的设置,对纹理的创建及加载,以及基本字体渲染。  (4)system模块。提供引擎在操作系统下的驱动以及对操作系统功能使用的封装,包括窗口管理,定时器等。  (5)input模块。负责处理输入设备产生的事件,及对输入设备的管理,如对键盘,鼠标,手柄等的管理。  (6)audio模块。处理音频文件的播放以及音效处理等。  (7)scene模块。负责引擎中的场景管

7、理。  引擎的具体架构见图1。  图1引擎架构  3、2D游戏引擎核心渲染技术  3.1累积渲染技术简介  在2D游戏中,常常将需要的游戏图像合并到一个大纹理中,渲染时使用该纹理进行大量图元渲染。如果一个一个渲染所需图元,引擎的效率必然会低,但如果一次性大量渲染许多图元,则效率会有较大提升。,鉴于2D图元的简单性,我们使用累积渲染技术就可以实现高效率的对大批量的图元进行渲染。  累积渲染技术的主要思想就是,在渲染2D图元时,不设置世界矩阵,而是创建一个相同的图元。利用原本的世界矩阵对此新图元的顶点直接进行变换,并且放入一个缓冲中,等适当的时机再一次性渲染。

8、一次性渲染是在任何一个下列条件被满足之时进行的:  (1)2D场景

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。