论文部分内容阅读
游戏引擎是游戏中进行实时图像交互应用的核心组件,是游戏的灵魂,是游戏产业的核心技术。游戏引擎直接控制游戏的内容,包括剧情、关卡、美工、音乐、操作等,把游戏中的所有元素捆绑在一起,使之能够同步的、有序的进行工作。简言之,游戏引擎就是控制游戏功能的主程序,从计算的游戏系统环境、物理碰撞和游戏物体的相对位置,到控制游戏音量和显示效果,以及接受玩家的输入等。研究表明游戏引擎标志了一个企业甚至一个国家的游戏水平。一个国家是否拥有一款通用的、强大的游戏引擎标志着整个国家的游戏产业水平。同时,游戏引擎的进步,推动着和游戏有关的很多产业。游戏引擎可以独立于具体游戏的开发,先于游戏开发出来。然后,游戏开发人员便可以通过底层接口构建更加真实复杂的虚拟世界。一款通用的引擎,不但可以走上商业道路,为研发团队提供利润,同时,购买者可以减少二次开发带来的消耗,增加游戏制作的效率。纵观国外游戏行业,拿大名鼎鼎的通用游戏引擎unreal在当今的游戏业的名气已经说明了它的辉煌;ID Software公司将虚拟现实技术应用在游戏引擎中,其开发基于IDTech4引擎的《雷神之锤4》和《毁灭战士3》中,大规模的游戏场景的渲染,大大提升了游戏的真实感,游戏特效提升到了一个空前的高度;韩国政府更是拿出大笔资金聘请专业人士研究整合国外先进的游戏引擎,并整合出一套优秀的游戏引擎供其国内的游戏开发商使用,而其直接效益就是游戏产业为韩国的经济带来了大量外汇收益。反观国内,中国游戏产业起步较晚,水平相对落后,基础技术储备和研发水平据国外差距较大,游戏数量庞大的背后是游戏质量相对较差,普遍存在“山寨”现象,大多数游戏都采用国外第三方提供的比较陈旧的游戏引擎,只有个别公司拥有自主研发的游戏引擎,这体现了在中国现阶段,游戏产业的虚假繁荣。在当今的游戏产业中,游戏引擎在与之关联的产业中表现的地位越来越高。它是游戏开发中的必不可少的核心部分,从而,它的通用性、移植性、重用性的良好,完全影响到游戏品质的好与坏。而在今天这个大环境下,尤其是国内,一款通用的游戏引擎更能够填补国内自主研发的空缺。同时,可以彰显我国的游戏产业的技术水平。随着2D、3D游戏的发展,各种游戏层出不穷,即时策略游戏、武打射击游戏、角色扮演游戏、冒险迷宫游戏,也推动了游戏引擎的发展。如今,游戏引擎已经发展为一个复杂系统,由多个子系统共同协作完成,其中包括游戏建模,渲染引擎,人工智能、动画、音效、脚本引擎,物理引擎,网络引擎、场景管理,文件管理、数据管理等众多内容,涵盖了游戏开发的全过程。本文通过对游戏引擎的功能框架和设计流程的分析,针对游戏引擎中的部分基本功能进行深入研究,利用当今非常流行的微软的DirectX进行开发,构建了基于DirectX的简单游戏引擎,主要包括三个模块:1.渲染效果模块:渲染所描述的是对已经成型的作品进行二次细节美化处理。游戏引擎中的渲染技术,包括了成像的几乎全部工作。而游戏作为一种视频娱乐技术,视觉给用户的感受必然是至关重要的。也就是说,一款游戏好与坏给玩家的第一印象就是画面,而他们就是有渲染技术决定的。因此,渲染时游戏引擎中非常核心的部分,它的好与坏,直接影响到最后游戏的成功与否。本文设计的渲染模块主要包括与渲染有关的光影处理、纹理处理、粒子系统。2.碰撞检测模块:碰撞系统就是在研究怎样确定两个对象碰撞了的技术,而当一个几何图形占据了另一个几何图形的相同虚拟空间时就会发生碰撞。当谈到物体间发生碰撞需要检测时,将碰撞从数学角度转换为真实反应时,会为程序增加真实感。阻止一个物体穿过另一物体,或阻止物体穿过作为场景而创建的几何图形。如果物体之间相互穿过,或物体穿过环境,那就很难创建需要交互处理的对象。本文主要处理的是物理系统中的碰撞检测。3.动画加载模块:动画加载是指从外部读取文件,加载到内存中处理的技术,这项技术的出现就是为了实现引擎的工程化和商业化。我们把一些经常改动的部分从写死的程序代码中分离出来,把它们做成更加利于编辑处理的部分。这样,负责这部分的人就可以不再单纯是编程人员,他们可以是美术人员、特效人员、策划人员等等。同时,在一个程序发布之后,开发商可以只是更改这些部分而无需重新改动整个客户端,这样就达到了工程的可扩展性。本文的动画加载模块主要是加载相关的利于扩展和提高效率的模型、动画和脚本系统。针对上述模块,本文分别从其原理、结构、实现算法等方面进行深入探讨,就每个模块利用DirectX进行设计实现,并在最后给出了具体的实现效果图。