摘 要 对现有游戏引擎开发技术进行改进,提出了一种有效的2D游戏引擎设计与实现方法,该方法以引擎架构为基础,以累积渲染技术作为主要渲染加速手段;结合精灵与动画技术进行具体实现,达到游戏引擎设计的目的。最后通过该方法实现了一个2D游戏引擎,并用实验验证了该方法的有效性。
1、引言
2D游戏开发是游戏开发领域中一个不可或缺的重要分支,绝大多数休闲游戏与动漫游戏都是使用2D游戏技术开发实现的。2D游戏技术已经成为了手机及一系列小型设备游戏开发的主导技术。游戏引擎是游戏开发的最基础部分,为此我们提出了一种有效的2D游戏引擎的设计与实现方法。通过该方法,我们设计并实现了一款2D游戏引擎。
2、2D游戏引擎核心构架
2.1 引擎构架
引擎构架是游戏引擎的骨架,它的任务就是把图像渲染、输入处理、音频播放、资源管理等游戏引擎的基本功能组合成一个有机的整体。目前已经有很多比较成熟的引擎架构方法包括:
(1)结构化构架。结构化构架采用的方法是将游戏引擎内部的模块以结构化的形式组合,并以API的形式提供接口,这种构架模式的优点是效率高,接口简单清晰,适合于做一些速度要求比较高的引擎,但是缺点是其模块之间耦合度高,不易修改。
(2)基类根形式构架。基类根形式构架是以基本的几个抽象服务提供接口类为基础,并以接口与实现相分离为原则,来进行引擎实现,提供的实现类在引擎内部创建,而将接口供给用户使用。这种构架模式的优点是结构清晰,实现灵活,可以适应比较大的变化,适合于做一些较大且有跨平台需求的引擎,但是该架构依赖于基本的抽象类的继承关系,导致引擎内部类继承了无用的功能而变得虚大,况且接口的通用性使得实现的效率不高,导致整体效率偏低。
(3)组件形式构架。组件形式构架是把不同功能的模块做成互相独立的系统,模块内部可以使用任何构架方式,只需要提供相应的接口即可。引擎以模块管理器为核心,支持插件形式组件增加方式,可以将新增的功能组件以插件的形式来插入系统工作,这种构架方式极其灵活,且模块内效率比较高,所以某些大型商用游戏引擎采用这种方式,但这种方式设计比较困难,实现比较复杂,需要大量的开发经验。
鉴于本文所提引擎开发是以研究为主,且2D游戏要求效率不是很高,我们决定采用结构最为清晰的基类根形式构架方法。以4个基本服务抽象类作为整个引擎底层提供服务的基础(如表1)。在基本类的基础上派生出引擎使用的基本类结构(见表2)。
表1 基本服务抽象类及功能说明
类名 |
功能说明 |
IRefCount |