论文部分内容阅读
随着CPU运算能力提升和独立显卡渲染3D图形的加速,3D游戏已成为游戏开发的主流。游戏公司一般都在Windows下购买商用的或者内部自主研发的游戏引擎作为游戏开发的框架,这对于游戏开发爱好者来说代价过于昂贵。然而免费的游戏引擎文档不齐全,难以搭建起编程平台。一些可视直观的工具和可以反复利用的组件构成了完整的游戏引擎程序。他们之间互相与外部的开发环境相互联接,用数据驱动方式给开发者提供了非常便捷的开发方式。这些游戏引擎的开发者会提出诸多的软件组件泳衣提供行业内软件开发者的销量。这些软件组件非常的智能,很多都包含一些新兴的功能,诸如人工智能和图像声音之类的组件。由于它们有非常灵活且可以多次反复利用的平台,并且他们向这些游戏行业开发者提供了各种开发中的关键功能,这些游戏引擎被人们亲切的成为“中转站”,利用这些“中转站”可以很大程度上节省相关的成本,并且是整个过程变得简单,加快了游戏的上市日期,这些对于日新月异的游戏行业来说都是不可缺少的。一些虚拟现实的游戏引擎都很大程度上提高了游戏者的实际体验。类似于其余类型的中间件方案,这些引擎一般会提供一个平台一样的抽象层。这些抽象层可以通过极少部分的源代码改动来实现多平台的游戏运行,无论在个人电脑还是游戏机上都能非常流畅的运行游戏。基本的架构组成了这些游戏引擎。这样会极大程度上给一些子系统的变更和加入全新的游戏中间组分(这一方式会提高成本)来实现一些全新功能带来方便。通过这个引擎中间层,他可以很好地将相同的游戏在各种不同的平台上表现。这些游戏引擎一般会被设计成可替换部分或者全部组件的方式,来加强游戏引擎在平台上的表现力。这种可替换组建的引擎通常价格较为昂贵。这些增加功能的游戏组件主要有几种,比如:涉及到物理计算方面的,用来声音处理的组件FMOD,能加快渲染速度的组件类似于SpeedTree等。同时有一些游戏引擎被设计成各组件相互独立的形式,来方便不同的用户从自己的需求出发来自己组装有个人特点的引擎组件,比如像RenderWare。然而类似也会给这些游戏引擎的开发者提出公告的难度要求,这些引擎开发者也要仔细思量他们自己的兼容和相互工作的协调。有一些只包括三维实时渲染却不包括其他开发功能的游戏引擎要求开发者能根据自己实际需求开发出符合自身需求的功能。或者是通过与已有组件相互集成。这些包括渲染、三维和图像三个部分。由于很多具有明显特征的被概括为“三维引擎”,从而这个术语已经没有了相当明确的含义。比如一些图像类的引擎,如:Vision引擎、Truevision3D引擎和RealmForge引擎。如今的图像或者是游戏引擎一般都会提供所需要的场景结构图像,这种结构通过运用面向对象这种方式来表达三维的游戏世界,极大给游戏开发者进行相关的设计和对游戏里的虚拟世界的渲染带来了方便。本文将介绍如何在Linux下利用Ogre图形渲染引擎、Newton物理引擎和连接这两个引擎的OgreNewt库作为工具,开发出两种不同的3D游戏场景。场景的实现具有良好的移植性,只要有必要的库文件,也可在Windows下运行。本文首先介绍了编写游戏当中需要用到的与Ogre、Newton和OgreNewt的相关技术,然后对这两个游戏场景进行了需求分析和整体框架的建模,接着编写Makefile脚本把这三个源码的头文件和链接库合成一个“完整”的游戏引擎,最后讲解了具体的实现细节。具体的实现中用了多态、继承和模板等技术降低了模块间的耦合性;使用单件模式和工厂模式实现了统一实例化和管理实体,降低了代码的复杂性。