iphone游戏吧 关注:809,657贴子:10,875,996

博哥和吧友们进来看【超强技术帖】游戏引擎剖析

只看楼主收藏回复

介绍
  自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏,或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都以ID公司的Quake引擎为基础,这些游戏包括Counter Strike, Team Fortress, Tac Ops, Strike Force, 以及Quake Soccer。Tac Ops 和Strike Force 都使用了Unreal Tournament 引擎。


IP属地:江苏来自手机贴吧1楼2012-12-04 22:08回复
    事实上, "游戏引擎" 已经成为游戏玩家之间交流的标准用语,但是究竟引擎止于何处,而游戏又从哪里开始呢?像素的渲染,声音的播放,怪物的思考以及游戏事件的触发,游戏中所有这一切的幕后又是什么呢?如果你曾经思考过这些问题,而且想要知道更多驱动游戏进行的东西,那么这篇文章正好可以告诉你这些。本文分多个部分深入剖析了游戏引擎的内核,特别是Quake引擎,因为我最近工作的公司Raven Software已经在Quake引擎的基础上开发出了多款游戏,其中包括著名的Soldier of Fortune 。


    IP属地:江苏来自手机贴吧2楼2012-12-04 22:09
    收起回复
      开始
        让我们首先来看看一个游戏引擎和游戏本身之间的主要区别。许多人们会混淆游戏引擎和整个游戏。这有点像把一个汽车发动机和整个汽车混淆起来一样 。你能够从汽车里面取出发动机, 建造另外一个外壳,再使用发动机一次。游戏也像那。 游戏引擎被定义为所有的非游戏特有的技术。游戏部份是被称为 '资产' 的所有内容 (模型,动画,声音,人工智能和物理学)和为了使游戏运行或者控制如何运行而特别需要的程序代码,比如说AI--人工智能。
        对于曾经看过 Quake 游戏结构的人来说, 游戏引擎就是 Quake。exe ,而游戏部分则是 QAGame。dll 和 CGame。dll 。如果你不知道这是什么意思, 也没有什么关系;在有人向我解释它以前,我也不知道是什么意思。 但是你将会完全明白它的意思。这篇游戏引擎指导分为十一个部份。 是的,从数量上来说,总共是十一个部份! 每个部分大概3000字左右。现在就从第一部分开始我们的探索吧,深入我们所玩游戏的内核,在这里我们将了解一些基本的东西,为后面的章节作铺垫。。。


      IP属地:江苏来自手机贴吧3楼2012-12-04 22:10
      回复
        渲染器
          让我们从渲染器来开始游戏引擎设计的探讨吧,我们将从游戏开发者(本文作者的背景)的角度来探讨这些问题。事实上,在本文的各个段落,我们将常常从游戏开发者的角度探讨,也让您像我们一样思考问题!
          什么是渲染器,为什么它又这么重要呢?好吧,如果没有它,你将什么也看不到。它让游戏场景可视化,让玩家/观众可以看见场景,从而让玩家能够根据屏幕上所看到的东西作出适当的决断。尽管我们下面的探讨可能让新手感到有些恐惧,先别去理会它。渲染器做些什么?为什么它是必须的?我们将会解释这些重要问题。


        IP属地:江苏来自手机贴吧4楼2012-12-04 22:11
        回复
          @博哥就是王道 博哥你赏脸我再发


          IP属地:江苏来自手机贴吧5楼2012-12-04 22:11
          收起回复
            当构造一个游戏引擎的时候,你通常想做的第一件事情就是建造渲染器。 因为如果看不见任何东西 – 那么你又如何知道你的程序代码在工作呢? 超过 50% 的 CPU 处理时间花费在渲染器上面;通常也是在这个部分,游戏开发者将会受到最苛刻的评判。如果我们在这个部分表现很差,事情将会变得非常糟糕,我们的程序技术,我们的游戏和我们的公司将在 10 天之内变成业界的笑话。它也是我们最依赖于外部厂商和力量的地方,在这里他们将处理最大限度的潜在操作目标。如此说来, 建造一个渲染器确实不象听起来那么吸引人(事实如此),但如果没有一个好的渲染器, 游戏或许永远不会跻身于排行榜前10 名。
              如今,在屏幕上生成像素,涉及到 3D 加速卡, API ,三维空间数学, 对 3D 硬件如何工作的理解等等。对於主机(游戏机)游戏来说,也需要相同类型的知识,但是至少对于主机,你不必去尝试击中一个移动中的目标。 因为一台主机的硬件配置是固定的 "时间快照", 和PC(个人计算机)不同,在一台主机的生命期中,它的硬件配置不会改变。


            IP属地:江苏来自手机贴吧6楼2012-12-05 12:07
            回复
               在一般意义上,渲染器的工作就是要创造出游戏的视觉闪光点,实际上达到这个目标需要大量的技巧。3D图形本质上是用最少的努力创造出最大效果的一门艺术,因为额外的 3D 处理在处理器时间和和内存带宽方面都是极为昂贵的。它也是一种预算,要弄清楚你想在什么地方花费处理器时间,而你宁愿在什么地方节省一些从而达到最好的整体效果。接下来我们将会介绍一些这方面的工具,以及怎样更好的用它们让游戏引擎工作。
              建造3D世界
                最近,当我和一位从事计算机图形方面工作长达数年之久的人会谈时,她向我吐露道,当她第一次看到实时操纵计算机 3D 图象时, 她不知道这是怎么实现的,也不知道计算机如何能够存储 3D 图象。今天这对于在大街上的普通人来说或许是真实的,即使他们时常玩 PC 游戏, 游戏机游戏, 或街机游戏。


              IP属地:江苏来自手机贴吧7楼2012-12-05 14:26
              回复
                下面我们将从游戏设计者的角度讨论创造 3D 世界的一些细节,你也应该看一看 Dave Salvator 所写的“3D 管线导论“,以便对3D 图象生成的主要过程有一个整体的了解。
                  3D 物体(对象)被储存成 3D 世界中的一系列点(被称为顶点),彼此之间有相互关系,所以计算机知道如何在世界中的这些点之间画线或者是填充表面。一个立方体由8个点组成,每个角一个点。立方体有6个表面,分别代表它的每一个面。 这就是 3D 对象储存的基础。对于一些比较复杂的 3D 物体, 比如说一个 Quake 的关卡,将有数以千计(有时数以十万计)的顶点,和数以千计的多边形表面。


                IP属地:江苏来自手机贴吧8楼2012-12-05 17:17
                回复
                  好深奥的姿势啊


                  IP属地:美国来自iPhone客户端9楼2012-12-05 20:15
                  回复
                    本质上与上面的立方体例子类似,它仅仅是由许许多多的小多边形组成的一些复杂场景。模型和世界如何储存是渲染器的一部份功能,而不属于应用程序/游戏部份。游戏逻辑不需要知道对象在内存中如何表示,也不需要知道渲染器将怎样把他们显示出来。游戏只是需要知道渲染器将使用正确的视野去表示对象,并将在正确的动画帧中把正确的模型显示出来。
                      在一个好的引擎中,渲染器应该是可以完全被一个新的渲染器替换掉,并且不需要去改动游戏的一行代码。许多跨平台引擎,而且许多自行开发的游戏机引擎就是这样的,如 Unreal 引擎, --举例来说, 这个游戏 GameCube 版本的渲染器就可以被你任意的替换掉。


                    IP属地:江苏来自手机贴吧10楼2012-12-05 21:55
                    收起回复
                      智商


                      IP属地:云南11楼2013-10-14 10:19
                      回复
                        好!(此评论虽然才1个字,但语法严谨,用词工整,结构巧妙,琅琅上口,可谓言简意赅,足见评论人扎实的文字功底,以及信手拈来的写作技巧和惨绝人寰的创造能力,令人佩服佩服,再加上以感叹号收尾,实在是点睛之笔)


                        IP属地:江苏来自iPhone客户端12楼2015-04-05 00:10
                        回复
                          求解为什么4s玩游戏有锯齿啊?


                          IP属地:四川来自iPhone客户端13楼2015-04-15 16:59
                          回复
                            嗯。


                            IP属地:菲律宾来自iPhone客户端14楼2015-04-19 09:59
                            回复
                              经过一个晚上的试玩,感觉VEGAS没有让我们失望,其画面强过里约很多,特别是人物建模,车辆建模及反光等,完爆里约,并且剧情比较清晰,物理引擎也发挥了巨大的作用,如是撞着电线,不再是不倒的电线杆了,而且可以看到破坏效果,撞到人有时可以把人撞飞,除了操控性,其他的都相当不错,下面来具体的谈谈VEGAS吧
                              地图篇:
                              为了证实地图比里约大,我跑了一些地方,可能还有没跑到的,外围是水坝,水面反光还是不错的,但是水看起来还是不真实(特别期待MC5里的水面),但比里约肯定好了不少[图片][图片][图片]夜景很不错哦,远处的楼房我喜欢,不再像里约一样很多矮楼[图片][图片]最喜欢这里,所有广告牌都可以撞倒[图片]来到沙漠了[图片][图片][图片]这地方我喜欢,空旷,好办事[图片]通过沙漠的路,我来到了水坝,还进去小游了下


                              来自iPhone客户端15楼2015-07-18 09:21
                              回复