Visual C++游戏开发经典案例详解 - 图文 下载本文

第1篇游戏开发基础

一般的屏幕分辨率为1024768或者图像的分辨率为1024768,这都是指的屏幕或者画面在宽度(X轴)上可以显示1024个点,而高度方向(Y轴)上可以显示768个点。在显示屏上的平面坐标系如图1.25所示。

图1.24平面几何中的XY坐标系统图1.25显示屏上XY坐标系统

在显示屏上,所有平面坐标都只有正坐标,而没有负坐标,而且都是以屏幕左上角为原点的,X轴仍然是从左向右线性递增,而Y轴则是由上向下线性递增。虽然其也可以接受负值。但如果X或者Y坐标为负值,那么这些对应的点就位于屏幕外,而不会显示在屏幕中,也没有实际意义。

屏幕中坐标系统的大小由显示器的分辨率来决定,一般经常使用的有640600、1024

768及1280

720等,其都是屏幕上对应的坐标点。例如:800

明X坐标轴上有800个像素点,Y坐标轴上有600个像素点。

1.2D和3D图像显示技术的概念

图像的显示都是在二维平面坐标系中,即是平面的,没有立体感,只有x轴和y轴。所有图形元素是以平面图片的形式制作和显示的,这就是2D图像显示技术。如图1.26左图所示,就是一个2D图像的显示。

2D图像中的动画是以一张一帧的形式预先存在的。这些图形元素最终都会以复杂的联系方式在游戏中进行调用而实现游戏世界中丰富的内容。

而图像的显示都是在三维立体标系中,物体是真实占有空间的,即有立体感。而且可以以任何人的视点(摄像机)来任意移动并改变视角。这就是3D图像显示技术。如图1.26右图所示,就是一个3D图像的显示。

3D技术把游戏世界中的每个物体看作一个个立体的对象,由若干个几何多边体构成。为了显示对象,在文件中存储的是对对象的描述语句。3D图像在显示时,程序通过对这些语句的解释来实时地合成一个物体。通过若干个立体几何和平面几何公式的实时计算,玩家在平面的显示器上还能以任意的角度来观看3D物体。即使仅仅是图形显示上的变化,在3D引擎下世界构成的任何事情也要以3D世界观来对待。

14

480、800600就是说

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

第1章游戏开发者都应该掌握的知识

图1.262D和3D显示例图

2.2D和3D图像显示技术的比较分析

3D技术相对于2D技术的优点有如下几个方面。

q3D技术在三个重要的方面显得非常灵活,首先就是表现在你眼前的世界3D游戏

能够让玩家以任意的角度来观看世界,并可以让玩家在其中以任意角度观察。显然想通过2D技术是实现不了的。因为表现的结果有上万种可能性。

3D技术在动画制作方面有独特的优势。如果用2D技术来实现,那么在视角的转换上就会非常受限,而且存储这些动画会超过所能承受的最大空间。3D动画能够很轻松地越过这些困难,只要先给3D对象定义变形和运动的规律。实际运行时,程序就会让3D对象按照预定的规律来运动,形成3D动画。但是在现有的游戏中,还没有很好地发挥这一优势。q

3D对象易于修改,因为它本身是由若干个多边体像搭积木一样组成的。这些多边体可以像橡皮泥一样任意地揉捏,来符合最终的要求。而2D图像是由手工绘制而成,修改非常不便,一些大的改动往往导致已有的工作成果作废,需要重新绘制。

q

例如:有时需要表现游戏中的人物在四个方向上行走时的动作,那么2D就必须预先画好起码四幅图像,游戏运行时分别从不同的文件中调用行走时的图像,来表现行走动作。如果这时人物需要能在8个方向上行走,那么工作量就会增加一倍,在制作一些动画时,工作量更是急剧地增长。这时,使用3D技术就能省下不少的时间。

但2D技术也不是说一无可取,2D技术相对于3D技术,也有其优点。

q

2D的图像能够画得很精致,可以把一些细节完美地表现出来。3D虽然也能通过增加多边体来更细致地表现对象,但与2D图像所能达到的最高水准还是相差一段距离。如果你的游戏不需要诸如旋转视角等功能的话,那么采用2D技术会给你的玩家带来更好的视觉享受。q

2D技术在屏幕上显示和处理都很快,因为所有的图像都已经预先处理好了,设计者所要做的只是把其从文件中调出来并显示到屏幕上就可以了。利用显卡来做这些工作是绰绰有余的。在实时的游戏中,你能够轻易地获得每秒几十帧的显示速度,这就为处理器节省了大量的时间,使其有充裕的时间来做显示以外的其他工作。例如:对即时战略游戏来说,电脑方的人工智能就需要较多的处理器时间去进行计算。现在3D加速卡的速度已经变得越来越快了,但如果要模拟一个真正的3D世界,这点速度还远远不够。所以至少在未来的几年内,2D图像的显示速度还将占有较大的优势。

15

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

第1篇游戏开发基础

qq

使用2D的图像技术来做一个显示引擎很容易,但对于3D图像来说,制作显示引擎就困难得多了。随着技术的普及,这一优势会渐渐消失。

一般的3D游戏具有较高的操作自由度,对有经验的玩家来说是没问题的。但对一些新手来说,自由度越高就感到越难以控制。2D游戏一般具有较少的操作自由度,新手容易在设计者的引导下一步步地进行下去。

总之,作为游戏设计者,需要决定采用哪种技术。如果设计的游戏需要比较自由的空间,倾向于动作化,并且有强大的技术力量,那么3D引擎将是最好的选择。如果只是想制作具有精美图像的游戏,不需要太高的自由度,那么2D技术是最好的选择。

%

注意:事实上,3D技术与2D技术并不存在什么孰优孰劣的问题,只存在着哪种技术能

更好地为玩家和设计者服务的问题。

1.2.2游戏引擎技术

引擎

,其相当于游戏的核心,决定着整个游

没错,游戏开发中也有类似赛车的

戏的速度的稳定性。玩家在游戏中体验到的剧情、关卡、美工、音乐,操作等内容都是由游戏的引擎直接控制的。其把游戏中所有的元素捆绑在一起,并指挥这些元素有序地工作。

引擎就是

用于控制所有游戏功能的主程序,从计算物体的碰撞物理系统和图像的显

简单地说,游戏引擎就是指

平台,能够方便地支持游戏开发的后续工作。根据不同

示,到接受玩家的输入,以及按照正确的音量输出声音等。通过游戏设计的模型构建一个

的游戏类型,可以分为STG引擎、RPG引擎,ACT引擎等等游戏类型引擎。同样,也可以根据采用显示技术的不同,分为2D引擎和3D引擎等显示引擎。

除此以外,引擎还有一个重要的职责就是负责玩家与电脑游戏之间的沟通,处理来自键盘、鼠标、摇杆和其他外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。

其实,说了这么多,引擎就是经过不断的进化,由多个子系统共同构成的复杂系统,游戏中的引擎是整个游戏的框架,在框架打好后,编剧、美工、关卡设计师、建模师、动画师只需要往里填充内容就可以了。所以,一般游戏开发中,引擎的开发占全部开发总量的50%以上。

下面笔者将介绍一下整个游戏引擎的进化过程。1992年,Wolfenstein3D引擎,其作者是大名鼎鼎的约翰

卡马克。这个引擎开创了

第一人称射击游戏的先河,更重要的是,其在X轴和Y轴的基础上增加了一根Z轴,在由宽度和高度构成的平面上增加了一个向前向后的纵深空间,这根Z轴对那些看惯了2D游戏的玩家造成的巨大冲击可想而知,如图1.27所示。

1993年,Doom引擎,其同样是出自idSoftware公司,在技术上大大超越了前面的Wolfenstein3D引擎,因为Wolfenstein3D引擎的所有路径之间的角度都是直角,是说玩家只能笔直地前进或后退,而Doom引擎中路径之间的角度可以为任意,而且墙壁的厚度也

16

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

第1章游戏开发者都应该掌握的知识

可以为任意的,如图1.28所示。

图1.27Wolfenstein3D游戏截图图1.28Doom游戏截图

1995年,Quake引擎,也是出自idSoftware公司,是当时第一款完全支持多边形模型、动画和粒子特效的真正意义上的3D引擎,而不是和Doom一样的2.5D引擎。此外Quake引擎还是连线游戏的始作俑者,把网络游戏带入大众的视野之中,促成了电子竞技产业的发展,如图1.29所示。

1997年,QuakeII引擎,充分地利用3D加速和OpenGL技术,在图像和网络方面与前作(Quake)相比有了质的飞跃,也确定了idSoftware公司的3D引擎市场上的霸主地位,如图1.30所示。

图1.29Quake游戏截图图1.30QuakeII游戏截图

1997年,Unreal引擎,是使用最广的一款引擎,其出自Epic公司。游戏中的许多特效即便在今天看来依然很出色。而且其应用范围不限于游戏制作,还涵盖了教育、建筑等其他领域。经过不断的更新,至今依然活跃在游戏市场上,丝毫没有显出老迈的迹象,如图1.31所示。

1998年,Half-Life引擎,采用了Quake和QuakeII引擎的混合体,加入了脚本序列技术和人工智能技术,使得游戏中敌人的行为比以往游戏中的敌人更加聪明和狡诈,如图1.32所示。

1998年,Dark引擎,出自LookingGlass工作室,虽然其在图像方面比不上QuakeII引擎,但是在人工智能方面却是真正取得突破的游戏引擎。例如,游戏中的敌人会懂得根

17

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer