论文部分内容阅读
3D游戏引擎通过封装游戏中的通用技术和提供统一的接口,形成了一个面向游戏应用程序的基础库。它包括了场景渲染、物理模拟、资源管理等丰富的模块,是一个十分庞杂的系统。将这样的系统架构在通用组件之上,不但可以利用通用组件带来的特性,还能使游戏引擎有更稳定的基础。本文首先回顾了游戏引擎的发展历史,分析了现有3D游戏引擎的架构。然后在通用组件的基础上设计并实现了一个比较完整的3D游戏引擎TinyEngine,在引擎设计中主要做了以下几个方面的工作:整体架构设计:将游戏引擎划分为三个子系统,其中游戏视图和游戏逻辑位于上层,游戏基础位于下层。这样的划分将玩家交互和游戏逻辑相分离,同时游戏基础隔离了特定操作系统与上层的游戏视图和游戏逻辑,实现了引擎的平台无关性。游戏视图设计:游戏视图负责与玩家的交互,它接收经游戏基础转换的输入消息并发送事件供游戏逻辑进一步处理,利用统一的接口渲染图形用户界面(GUI)和3D场景。基于DXUT的GUI提供了丰富的图形界面效果,利用场景树高效地管理3D场景。游戏逻辑设计:游戏逻辑负责管理游戏世界的状态和角色,它处理游戏视图发送的输入事件,并由游戏视图定时渲染。游戏角色作为游戏逻辑的核心,其属性组件定义在XML文件中,实现了数据驱动(data-driven)的设计。游戏物理通过封装Bullet引擎管理角色的物理属性和碰撞检测,为游戏增加了真实感。游戏基础设计:游戏基础建立在操作系统和通用组件之上,并为上层提供必要的工具支持。其中包括了基于ZLib的资源管理器、基于FastDelegate的游戏事件、基于Lua和LuaPlus的游戏脚本等模块。最后,本文运用TinyEngine引擎开发了一款小游戏,该游戏验证了引擎的主要功能,展示了其所具有的易用性和可扩展性,并在总结与展望中指出了下一步的研究方向。