第一章 第一节 概述

翻译 2007年09月11日 23:38:00
第一章概述
这本书是写给不论你有没有3D图形经验,只要你想一窥游戏引擎设计大门的人们的。这一章从大的方面来看游戏引擎。目标是提供对游戏引擎的一个概观,本书剩余部分的更详细讨论都以这为基础。在这本书里,我们将研究游戏引擎的方方面面,并且检验随书附带的示例游戏引擎(可以在Apress网站下载http://www.apress.com)源代码里相应的特征。每一章都关注游戏引擎的一个主要概念或者子集。有几章是专注于渲染不同类型的图形,因为需要使用不同的技术来渲染复杂的对象。
 
什么是游戏引擎?
游戏引擎是任何电脑游戏的心脏。很多游戏引擎是紧紧的跟游戏绑定在一起,只能适用于一个游戏。然而,一个设计得当的引擎应该是模块化,可重用和足够灵活的,可以适用于同一类型的很多款游戏。游戏引擎一般是为某一特定类型游戏设计和优化过的。这些类型包括第一人称射击、实时战略游戏和车辆模拟,这几类最流行的一些游戏(to name a few of the most popular)。
 
在这里讲到的商业游戏引擎都是针对各自的游戏高度优化过的,这都是由非常有经验的专业人员组成的团队经过许多man-years开发的。这些商业游戏必须在非常广泛的硬件上良好的运行。它们既可以使用DirectX也可以使用OpenGL渲染,这样玩家可以自由的选择他们的系统中图形卡最好的工作方式。商业软件使用高级方法,例如vertex和pixel shaders的一些专利代码,为了提供公司刺向游戏市场的利刃。
 
第一人称射击游戏引擎
第一人称设计游戏引擎常是基于室内场景。这就强调了可视的细节和动画。增加可视细节就伴随着花费很多的纹理以及在给定的游戏级别上增加更多的多边形数目。为了补偿这些(必须维持一个合理的帧率),大多数的引擎依赖四叉树(Quadtree),Protal,或者空间二分法(BSP)剔除。剔除是从场景中移除多边形的过程。(这些剔除方法的具体细节在第三章。)这些类型的例子是id Software公司的Doom和Quake(在他们的许多版本中),以及Sierra公司的Half-Life(包括极其流行的反恐精英版本)。
 
实时战略游戏引擎
直到最近,实时战略游戏一直是二维的,基于精灵(sprite-based)的游戏,他们使用固定的视点和巧妙设计的sprite来给人三维的假象。新的游戏,例如Sierra公司的Empire Earth和Ensemble Studios的Age of Mythology把这类游戏带入到3D时代。图1-1展示了Age of Mythology游戏的一个场景。
图一 Age of Mythology中的一个场景
 
这一类游戏一般是室外的,面临着使人畏惧的在同一时间显示非常巨大数量的对象和广阔的地形的困难。这类游戏的游戏引擎使用高空视点来减少玩家视野里的对象数目和地形数目。这些游戏也使用相比第一人称射击里的相对较低的分辨率的对象。因为视点保持在离地面较远的一个固定点上,玩家不会足够近看到对象的细节。
 
车辆模拟游戏引擎
这第三类游戏引擎是车辆模拟。这一种包括第一人称军事战斗模拟器(飞机,直升机,坦克等等),赛车游戏,以及其他驾驶游戏。一个例子是NovaLogic公司出品的Comanche 4。
 
因为这些游戏是室外的,并且视点角度也相对没有限制,所以需要一些特殊的技术来维持可玩的帧率。这些技术主要落在剔除和细节级别(LOD)这些领域,来减少必须贴纹理和绘制的多边形数目。在室外的模拟游戏中,一个最普通的方法是把远裁剪平面移近视点。这会导致任何远于平面的多边形被移除场景。一个不好的效果是当视点移动时,玩家可以看到在远裁剪平面有对象忽隐忽现。这个问题的解决方法是使用雾。雾或者烟使多边形在接近雾的最大距离(通常是等于或者稍小于远裁剪平面的距离)时,退成雾的颜色。LOD和改进的面片(mesh)技术都提供了一个机制减少给定的对象的多边形数目,通过一个函数的方式,根据对象离视点的距离范围。LOD技术在模型远离眼睛时用低细节来替代高细节。另一方面,改进的面片技术,基于离视点的范围来修改单个的面片。
 
注意:不要混淆游戏引擎设计和游戏设计。游戏引擎是游戏背后的方法技术(enabling technology)。游戏设计需要考虑的许多问题无关于游戏引擎。游戏引擎提供游戏设计者向游戏传递概念或者故事情节的工具。
 

相关文章推荐

软件工程课件第一章第一节

  • 2010年05月18日 19:06
  • 550KB
  • 下载

读书笔记第一章-第一节 1.1定义数据库和实例

为了深入学习MySQL  了解innerDB 学习君在 朋友的推荐下 阅读《mysql技术内幕InnerDB存储引擎》--姜承尧 一书   并且总结笔记 在博客里给大家分享的同时也是给自己的再次阅读...

C++第一章第一节

  • 2013年09月04日 19:55
  • 2KB
  • 下载

算法四 第一章第一节基础习题

算法四第一章基础习题我只给出了代码类的习题 1.1.3  编写一个程序,从命令行得到三个整数参数。如果它们都相等则打印 equal,否则打印 not equal。 package chapter1;...
  • forTHQ
  • forTHQ
  • 2016年05月20日 15:34
  • 1572

PS教程课件第一章第一节

  • 2011年04月02日 13:04
  • 1.8MB
  • 下载

Unity Cg Shader编程 第一章 第一节

1. 基础知识1.1 最小的shader这篇教程主要讲在Unity中创建一个最小的shader所需的基本步骤。打开Unity,创建一个新的工程下载一个unity然后运行,你会看到一个空的工程。或者你可...

高等数学第一章第一节PPT

  • 2010年05月03日 10:41
  • 1.4MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一章 第一节 概述
举报原因:
原因补充:

(最多只允许输入30个字)