一种2D游戏引擎的设计和实现.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种2D游戏引擎的设计和实现

一种2D游戏引擎的设计与实现2007-09-28 08:17作者:曾旭晟 倪胜巧 彭舰出处:计算机与信息技术责任编辑:方舟   摘 要 对现有游戏引擎开发技术进行改进,提出了一种有效的2D游戏引擎设计与实现方法,该方法以引擎架构为基础,以累积渲染技术作为主要渲染加速手段;结合精灵与动画技术进行具体实现,达到游戏引擎设计的目的。最后通过该方法实现了一个2D游戏引擎,并用实验验证了该方法的有效性。   1、引言   2D游戏开发是游戏开发领域中一个不可或缺的重要分支,绝大多数休闲游戏与动漫游戏都是使用2D游戏技术开发实现的。2D游戏技术已经成为了手机及一系列小型设备游戏开发的主导技术。游戏引擎是游戏开发的最基础部分,为此我们提出了一种有效的2D游戏引擎的设计与实现方法。通过该方法,我们设计并实现了一款2D游戏引擎。   2、2D游戏引擎核心构架   2.1 引擎构架   引擎构架是游戏引擎的骨架,它的任务就是把图像渲染、输入处理、音频播放、资源管理等游戏引擎的基本功能组合成一个有机的整体。目前已经有很多比较成熟的引擎架构方法包括:   (1)结构化构架。结构化构架采用的方法是将游戏引擎内部的模块以结构化的形式组合,并以API的形式提供接口,这种构架模式的优点是效率高,接口简单清晰,适合于做一些速度要求比较高的引擎,但是缺点是其模块之间耦合度高,不易修改。   (2)基类根形式构架。基类根形式构架是以基本的几个抽象服务提供接口类为基础,并以接口与实现相分离为原则,来进行引擎实现,提供的实现类在引擎内部创建,而将接口供给用户使用。这种构架模式的优点是结构清晰,实现灵活,可以适应比较大的变化,适合于做一些较大且有跨平台需求的引擎,但是该架构依赖于基本的抽象类的继承关系,导致引擎内部类继承了无用的功能而变得虚大,况且接口的通用性使得实现的效率不高,导致整体效率偏低。   (3)组件形式构架。组件形式构架是把不同功能的模块做成互相独立的系统,模块内部可以使用任何构架方式,只需要提供相应的接口即可。引擎以模块管理器为核心,支持插件形式组件增加方式,可以将新增的功能组件以插件的形式来插入系统工作,这种构架方式极其灵活,且模块内效率比较高,所以某些大型商用游戏引擎采用这种方式,但这种方式设计比较困难,实现比较复杂,需要大量的开发经验。   鉴于本文所提引擎开发是以研究为主,且2D游戏要求效率不是很高,我们决定采用结构最为清晰的基类根形式构架方法。以4个基本服务抽象类作为整个引擎底层提供服务的基础(如表1)。在基本类的基础上派生出引擎使用的基本类结构(见表2)。 表1? 基本服务抽象类及功能说明 类名 功能说明 IRefCount 提供引用计数功能 ITypeInfomation 提供类型识别功能 IObjectInfomation 提供对象识别功能 IPersistence 提供对象持久化功能 表2? 基本类结构继承关系 类名 父类 IBase ITypeInfomation IResource IBase、IObjectInfomation、ITypeInfomation   其中,IBase类是引擎中绝大部分接口类的基类,它实现了的类型识别虚方法。IResource类是引擎中资源的基类,它在IBase基础上实现了引用计数和对象信息功能。   2.2 引擎模块实现   为了实现方便,我们把引擎划分成7个功能模块:core,math,video,system,input,audio,scene。   (1)core模块。除了定义了引擎基本类及功能以外,还提供了一些基本设施,例如日志系统,异常处理,以及资源管理等。   (2)math模块。提供引擎需要的数学库,包括向量,矩阵,基本图元的定义和实现功能。   (3)video模块。负责基本图元的渲染,对渲染环境的设置,对纹理的创建及加载,以及基本字体渲染。   (4)system模块。提供引擎在操作系统下的驱动以及对操作系统功能使用的封装,包括窗口管理,定时器等。   (5)input模块。负责处理输入设备产生的事件,及对输入设备的管理,如对键盘,鼠标,手柄等的管理。   (6)audio模块。处理音频文件的播放以及音效处理等。   (7)scene模块。负责引擎中的场景管理。   引擎的具体架构见图1。      图1 引擎架构   3、2D游戏引擎核心渲染技术   3.1 累积渲染技术简介   在2D游戏中,常常将需要的游戏图像合并到一个大纹理中,渲染时使用该纹理进行大量图元渲染。如果一个一个渲染所需图元,引擎的效率必然会低,但如果一次性大量渲染许多图元,则效率会有较大提升。,鉴于2D图元的简单性,我们使用累积渲染技术就可以实现高效率的对大批量的图元进行渲染。   累积渲染技术的

您可能关注的文档

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档