论文部分内容阅读
近年来游戏业发展迅速,而游戏引擎是一个处理游戏底层技术的平台,使用游戏引擎,游戏开发人员可以不用花过多精力去处理系统架构、内存管理、图像绘制等一些底层的技术,可以直接使用引擎提供的API来进行游戏开发,从而大大缩短游戏开发时间。游戏引擎作为游戏的核心部分,则需要面对规模复杂性和技术多样性的挑战。为了控制这种复杂性,本文从编程语言结合设计模式的角度以组件化的形式对游戏引擎的功能进行分析和相应的结构设计。本文分析和归纳了游戏引擎中的几种常用的技术,通过组件化的层次结构和模块化设计,着重研究了游戏引擎各主要部分的实现。首先,通过对当今一个比较完整的游戏引擎的功能分析,把游戏引擎划分为核心对象、图形系统、支持功能和扩展功能四个大块。然后从功能定义的角度将游戏引擎的场景管理、场景查询和各种场景对象管理归到核心对象部分,将缓存管理、3D几何计算、GPU程序、阴影管理、渲染管理、引擎状态管理和渲染子系统归为图形系统部分,接着定义了动画、字体、文件系统、输入、图像媒体、外表面、粒子系统、脚本、数学库等引擎作为支持功能模块,最后讨论了游戏引擎的扩展,并把Windows平台、Direct3D9渲染子系统、粒子系统库、物理系统、Cg支持和室内场景支持等作为引擎的扩展功能实现。在实现上本文结合设计模式设计了描述游戏引擎各个部分功能的类和类的成员,并对实现中一些关键部分如场景管理器做了详细的研究。本文通过对游戏引擎的架构设计和功能分析,使我们对游戏引擎在游戏开发中的作用和相关的图形技术有了更清楚的认识。同时,通过将功能多样的游戏引擎以组件化方式的设计和实现,可以使游戏引擎结构更加清晰,同时更加容易使用和便于扩展。对于如何对系统各部分进行合理交互和职责分配,进而控制一个系统的复杂性,本文提供了一个比较有价值的参考方案。