论文部分内容阅读
计算机游戏是计算机科学的一个重要组成部分。计算机游戏的研究领域包括游戏AI引擎、游戏视频引擎和游戏音频引擎等。在当前的计算机游戏研究中,开发人员把主要的精力集中在AI引擎和视频引擎的研究上。而在音频处理方面,开发人员通常都是只是调用一些通用的音频接口,如DirectSound、OpenAL等。由于这些音频接口并不是给游戏专用的,因此开发人员在进行音频处理的时候必然会遇到以下五个问题:一是现有音频接口非常复杂,不太适合游戏的开发;二是现有音频接口没有提供对压缩声音文件的解码操作,而游戏里面通常都有一些压缩声音文件的播放;三是现有音频接口没有解决游戏声音领域里面最重要的实时性问题,也就是播放时间延迟的问题;四是现有音频接口没有对音频处理占用资源进行管理,而游戏可分配给音频处理的资源是非常吝啬的;五是现有音频接口的异常处理还是不太方便游戏音频开发的调试。可见开发一个让游戏专用的音频引擎是非常必要的。为此,本文引入了一个游戏专用的音频引擎,本引擎的设计与实现始终都是围绕着上述的五个问题而进行的:为解决接口复杂型的问题,引擎根据一定的封装原则把接口各种复杂接口代码都封装到各个数据结构中;为了解决声音解码问题,引擎使用一些现有的解码库进行解码;为了解决播放延迟问题、引擎设计了声音预取数据算法、动态数据更新播放算法和声音预测表算法;为了解决资源管理的问题,引擎引入了多线程播放控制算法;为了解决异常处理的问题,引擎设计了多种异常处理类。本文将会对上面提到的引擎对这五个问题的解决方法进行详细的描述,同时也给出引擎的部署方法和测试数据分析以验证引擎确实解决了这五个问题。