论文部分内容阅读
近年来,国内外的游戏产业发展迅速,各种新的游戏模式不断涌现。随着游戏产业的竞争日趋激烈,游戏工作室往往承受着保证游戏品质、项目期限和响应需求变更等多重压力,因此它们需要游戏引擎及相应的游戏资产管线更好地支持游戏制作的全过程。本文首先介绍了当前游戏产业的发展状况,并且阐述了游戏引擎在游戏制作过程中的重要地位。然后正文部分根据论文课题的研究现状,对3D游戏引擎的各个层次的重要组件进行了研究和设计。通过研究和设计,3D游戏引擎封装了一些有用的底层API和基本的图形接口,实现了资源管理方案、基于多核心的引擎架构、层次式的图形子系统、基本的脚本系统以及应用层的运行时游戏对象模型。同时,整个游戏引擎充分地应用了数据驱动的架构思想,使得引擎自身更加灵活并且有效地支持游戏制作过程。本课题的研究工作和创新点主要体现在如下几个方面:1)研究并设计内存对齐方案以提高存取数据的速度;考察了游戏引擎中各种内存使用的每一种模式,并为它们创建一个不同的堆来提高各级Cache的命中率;同时还阐述了内存池在克服内存碎片等方面的潜力。2)为了方便跟踪和调试错误,分析并设计了游戏引擎各个组件所需要的相关调试策略,实现了将调试信息定位到合适的输出目标的功能,并且支持在系统崩溃时输出转储文件以提供最后的重现现场的机会。另外,调试系统还支持绘制各种调试用的线条、文本和简单模型,用以辅助图形子系统的可视化调试过程。3)将输入输出系统、图形子系统、音频系统和游戏主循环划分到不同的线程中执行,实现了基于多核心的游戏引擎架构。各个线程之间采用发消息的方式进行通讯,以减小各个模块之间的耦合度,同时也让部分功能的异步调用模式成为可能。4)分析了传统的以对象为中心的模型的局限性后,为游戏引擎应用层实现了一个以组件为中心的运行时游戏对象模型,并且加入消息机制以支持各个游戏对象之间的相互通信。最后,本文对所研究的内容做了总结,指出了设计中存在的一些不足,并且提出了下一步的研究方向。