|
第一部分: 被采访对象:负责引擎开发的John Carmack 记者:距离《Quake III》的发布已经有很长时间了,在这段时间里,除了在QuakeCon及其它的一些展会上及一点升级计划之外,我们很少听到你的消息。能不能描述一下你新开发的“毁灭战士”引擎,目前开发的怎么样了? John Carmack:新引擎的开发比我们以前做过的所有事情都要顺利,因为当公司的其它成员还在制作《Quake III: Team Arena》的时候,我就已经开始着手新引擎的基础工作,到他们有时间着手新引擎的时候,已经基本上可以使用了。新引擎最初是在“Quake 3”引擎的基础上发展而来的,这使得我可以不用重新改写文件存储代码,控制代码以及其它的一些子系统就可以制作出一款新的着色系统。当着色系统完成后,其它的程序师就已经从《Quake III: Team Arena》和《重返德军总部》中脱身出来投入到了其它代码的重新编写中。尤其是当我们使用C++之后,“Quake 3”的代码库中所剩的代码就很少了。在开发的初期我制定的战略性决策到现在都没有改变过。我后面做的努力都是是它更清晰,更实用,速度更快。当艺术师和制图师开始使用引擎来工作的时候,它的表现已经远远的超出了我们最初的设想。 记者:“Quake 3”引擎自从制作完成后曾经授权过很多次,许多开发厂商都使用过这款引擎来制作了他们自己的游戏。尤其是Raven software制作了“盗尸者II(GHOUL II)”系统,你在制作新的“毁灭战士”引擎时有没有考虑过这些系统或是与一些开发商讨论过他们的需求,还是只为了制作特定的游戏。 Carmack:我试图将我们的注意力集中在我们特定的 游戏上,而不是试图解决世界上所有的问题。我们在开发过程中遇到了很多难以判断是对我们现有技术的有益扩展还是没有证实其正确性的工作。有对特别的要求说“不”的权威力量和勇气,才能保证写出高质量的代码。有些程序师会同意加入特殊的要求而没有全面考虑它所带来的影响,我们则力图避免这种做法。 记者:“Quake”引擎(现今在线游戏群体的造就者之一)最吸引人们的地方并且是就在于它可以修改游戏或者创造一个全新的游戏。这一点在制作“毁灭战士”引擎时是否也考虑在内了?与早先的一些游戏相比,你认为mod制造者使用这个新引擎是容易了还是困难了? Carmack:我们所有的工具的一个最大的改进就是现在它们是集成在游戏内的了,所以正式版发行时就自动附带着制作游戏的工具。游戏使用的地图文件与编辑器使用的文件是一样的,所以游戏的拷贝可以打开新创的源数据。我们还没有确定在何处嵌入mod制造者的源数据,但是可以确定是一个C++制作的动态链接库。设计者在恰当的使用它们时会有一个学习曲线,但是所有的生成器都包含在游戏内了。关卡设计者必须慢慢的学习如何更有效率的使用光线。你不能在地图中根据自己的想法任意的投放上百个光源,你需要先考虑场景中最主要的光源,然后根据需要投放光源,这与电影中光源的投放原理是相通的。 记者:《雷神之锤3》在其本质上是一个多人游戏,而且距离id software上次发行传统的单人游戏《雷神之锤2》已经有五年的时间了。在为两种不同的游戏制作引擎时有什么不同吗?在为这个单人游戏制作新的引擎时有什么是你需要重新或者特别考虑的? Carmack:单人游戏在核心的渲染系统上与多人游戏是不同的,但是游戏的其它部分必须做一些折衷的决定。单人游戏更富于表现力和精确的效果,比如说多重混和骨骼运动系统在网络环境下就不会运行的很好。 记者:现在显卡的更新速度非常快,你是如何看待现在市面上的这些显卡的?有什么新显卡使你有兴趣吗? Carmack:关于即将面世的显卡有很多有趣的事情,但是NDAs将迫使我只讨论能够使用的显卡。 对于《毁灭战士3》由好到差的显卡: 我始终认为GeForce 4 Ti是你可以买的最好的显卡,因为它拥有极高的速度和优秀的驱动能力。 虽然在理论上Radeon 8500在运行《毁灭战士3》时应该比GF4快,因为它可以提供我需要的单程七层材质存取,在GF4上则需要两到三次(根据细节程度)。但是实际上,GF4运行的更快一些,因为它具有高效的处理性能。对于程序师来说,8500比GF4拥有更好的断片路径,更好的渲染力和精确度,但是它的驱动能力比起Nvidia的GF4还差一定的距离。所以我还有点犹豫到底使用哪一个作为最主要的开发平台。 GF4-MX对于现在的游戏来说是一款速度很快的显卡,但是对于《毁灭战士3》来说它还不够好,主要是因为它较低的材质单位计算能力和顶点梯度的缺失。 在一个较慢的CPU并且打开所有特效的情况下,GF3将会比GF4-MX运行的快,因为它承担了一些工作。但是如果CPU比较强劲的话,还是GF4-MX运行的快一些。 128位的DDR内存的GF2系统将比Radeon-7500系统快一些,也是因为Radeon-7500在处理细节的能力较差。 最慢的显卡就是64位的SDRram的GF和Radeon了,用它们玩《毁灭战士3》就显得有些力不从心了,除非你运行在320x240的分辨率下。 记者:前一阵子,我们看到一则新闻是关于你非常认真的在和一个小组合作试图制造一个可以把人载入太空的火箭。从工程学的角度来看这是可行的,但是它并不是一个轻松的计划,而且花费也是巨大的。这一计划为什么会如此吸引你呢? Carmack:我想说的就是与自然界的力量对抗比仅仅是抓住消费者的喜好更有挑战性。另外航空工业令人震惊的低效率也是一个驱动因素,我想航空工业需要一些新鲜的血液。我在研究工作中投入了合理的时间,到目前为止一切进行的都还令人满意。 第二部分: 被采访对象:负责工具开发的Robert Duffy和负责物理、碰撞探测系统的Jan Paul van Waveren Robert Duffy在来到id software之前就已经从事游戏工具的开发了。在1998年,他制作了QERadiant,一个基于id公司的QE4的《雷神之锤2》的关卡编辑器。QERadiant很快就成为《雷神之锤2》的主流编辑器,在同John Carmack接触并访问了id software的办公室之后,Duffy与id签约开始为《雷神之锤3:竞技场》制作编辑器,最终变成了id公司的全职雇员。他为《毁灭战士3》制作了开发工具并且集成在游戏中,这使得mod开发者在游戏一上市就可以使用它们了。 记者:你用来制作《毁灭战士3》的工具已经基本上完成了吗? Robert Duffy:工具基本上已经完成了,我们现在的工作就是添加一些东西并修正一些问题。最近我添加了一个集成在游戏内的声音编辑器,这样就方便了Trent Reznor和他的成员使用,使得他们可以在游戏中动态实时的编辑声音了,这样对于他们把握音乐对于关卡的适合程度是有帮助的。现在我主要将精力集中在游戏性问题和一些特殊效果的设计上。 记者:听说你们的工具是集成在游戏中的,能不能谈一谈这方面? Robert Duffy:是的,编辑器和其它的所有工具都是集成在游戏中的。你可以通过控制台来运行它们。在视窗操作系统中,你运行游戏之后就可以运行起工具来了。编辑器仍然使用了很多的Windows代码,所以它不能在Macintosh机器上运行,但是其它的工具会运行的很好。 记者:你认为mod制造者在使用这个新引擎时需要进行的调整是简单还是复杂? Robert Duffy:可能最需要调整的地方是在制作模型和材质方面,因为很多东西的源模型都是由很多的多边形组成的。在《雷神之锤3》中一个模型大概需要两到三千个多边形组成,但是在《毁灭战士3》中角色模型大约是由一百万个多边形组成的。在游戏中使用时可能会降低到四五千个,但是你在创建模型的时候需要到达百万个。 记者:所以这是模型的最初设计,在游戏中使用时会根据实际需要最优化,是吧? Robert Duffy:是的。但是你把两个同时放入游戏中后并看不出什么区别,这是因为bumpmapping和其它的一些特殊效果造成的。 记者:你现在制作的材质怎么样了? Robert Duffy:很大一部分已经制作完成了。它们都以大数量的多边形建造了一个墙的模型,然后渲染团块将它变成团块造型,之后混和一系列的材质将它变成3D造型。 记者:听起来传统的二元空间分割(Binary Space Partition,BSP)方法有所改变,或者说是完全的被淘汰了。 Robert Duffy:并不是这样,传统的BSP应该分三部分--先做出二元空间分割,然后进行能见度和光线计算。现在我们只是做出了二元空间分割,光线和能见度都是实时计算的。 Jan Paul van Waveren是制作《雷神之锤》系列的元老之一。一开始他为《雷神之锤》一代和二代制作机器人直到后来受雇于id公司专门为《雷神之锤3》制作死亡竞赛模式的由电脑控制的机器人在《毁灭战士3》的制作中,他的工作是创建物理引擎和碰撞探测系统。 记者:你在id公司的工作是从为《雷神之锤3》制作机器人代码开始的…… Jan Paul:是的,是从《雷神之锤3:竞技场》开始的,直至扩展到《雷神之锤3:团队竞技场》加入了分组智能。从那时起,我开始同时做我的学位论文,但是我抽出很多时间来进行游戏的制作,我先完成了碰撞探测系统的制作,当我完成论文后才投入了物理引擎的制作当中。 记者:那你是如何从制作人工智能转向制作碰撞探测系统和物理引擎的呢? Jan Paul:我一直就是一个3D程序师,我还经常为我自己的一些小引擎设计程序。为游戏制作机器人是我非常感兴趣的一件事情,我十分希望能够沉浸其中。这也就是我开始为《雷神之锤》一代和二代制作机器人的原因。当然,现在我又重新开始进行3D程序设计。设计人工智能时也需要一些3D程序,例如区域系统等。也就是说我一直没有放下3D程序设计,制作物理引擎其实就是3D程序设计。 记者:使用新的“毁灭战士3”引擎和以前的“Quake”引擎有什么不同? Jan Paul:我认为John制作的引擎使用起来都非常的方便。在《雷神之锤3》的制作中,我较晚才进入游戏设计,所以我必须使得机器人能够很好的适合游戏的方方面面。在《毁灭战士3》中,我制作了很多基础性的东西,所以在这一点上与以前有些不同。 记者:当你开始为游戏制作碰撞探测系统和物理引擎时,你的目标是什么?你想让引擎能够做到什么? Jan Paul:关于碰撞探测系统和物理引擎大家经常看到的问题就是碰撞探测是基于相同时间间隔的交叉点测试的。(此时,van Waveren拿起两个汽水罐来表达他的观点)这个物体正在运动,每隔固定的时间你就会检查它是否与别的物体相交。所以如果这个物体(拿起第一个汽水罐)运行的非常快,并且在这个时间间隔在这里,下一个时间间隔在这里(移动第一个汽水罐到第二个汽水罐的一侧),它们就不会交叉,你就会错过碰撞。所以这里就有一个问题,你怎样才能找到碰撞在哪里发生?我们首先必须解决这个问题。 在设计《毁灭战士3》的最初阶段,我们使用多边形模型来研究物体碰撞探测,所以我们能够精确的计算出一个模型与另外一个模型相撞时是怎样运动和旋转的。我们可以精确的计算出碰撞发生在哪里,以及碰撞发生的时间。 正是因为碰撞探测系统如此的精确可靠,所以我们可以计算物体在何时何地碰撞,才可以使用物理引擎精确的模拟自然界中的各种运动。我们甚至可以在物理引擎中模拟子弹的运动。子弹是高速运动的物体,如果你做交叉点测试将一无所获,它将会越过所有的东西。所以我们可以精确计算子弹与其它物体的交叉点,它在何处和环境碰撞,然后你可以看到子弹在那里弹开,这些都是物理引擎的结果。 记者:它可以使所有的东西都偏转吗? Jan Paul:你应该看到了游戏的演示版,当我们设计盒子时,子弹此时就是物理引擎中的一个多边形模型,所以它与盒子的交叉点和碰撞都是经过精确计算的。子弹当然时高速度的,然后信息传送给盒子,盒子就开始运动了。 记者:所以如果你们从不同的部位射击盒子,盒子将会做出不同的反应? Jan Paul:是的,射击敌人也会产生同样的效果。如果你射击敌人的肩膀,它就会旋转或是后退,如果你射击他的大腿,它就会摔倒。根据你射击部位的不同,将会产生不同的模拟效果。 记者:游戏中有很多的烟雾效果,这也是物理引擎作用的结果还是其它的特殊效果? Jan Paul:我们现在的物理引擎是非常高速的,但是如果有数千的物体同时运动,它也会变慢的。所以我们在这里有一个单独的粒子系统(当然是为了速度上的原因)。Graeme Devine制作了游戏的粒子系统。它在制作上使用的方法与物理引擎非常相似。它是为很多独立的物体,大量的小物体运动而设计的。 如果你从烟雾中发射火箭,这些烟雾就会被带出漩涡,这是一个非常复杂的系统。Robert设计了使得它的使用更加方便的工具,你可以为模型加入各种不同的效果,加入不同的粒子效果,加入声音,甚至是设计大型的游戏场景。 例如游戏中的一个场景,当大量的小鬼在房子中繁殖时,桌子飞向了空中,空中产生了各种不同的粒子。大爆炸使得桌子击中了房间天花板的灯,于是灯开始摇晃。然后晃动的阴影投向了屋子中所有的物体,甚至包括正在移动的物体,如此逼真现实的效果都是由粒子系统产生的。 未完待续 |