CSDN博客

img lemonzhu

传奇程序员John Carmack 访谈实录(2)

发表于2004/11/1 0:30:00  902人阅读

FS: 你是否考虑过开发一款赛车游戏?

John: 我们曾经在推出Wolfenstein 之后讨论过这个问题。 当时我正在研究一些三维象素-landfield技术,我们制作了一些汽车行驶的简单演示。但是我们从来没有采取任何措施来将这个想法付诸实施。但是如果我们真的开发一款赛车游戏,那肯定也属于非常有趣的赛车类游戏——例如F-Zero游戏,而不是非常严肃的赛车模拟游戏。这里我要再次指出,游戏界有很多有效的发展途径,但是我有我自己的个人爱好。我的爱好恰好让我们既可以开发出成功的游戏,又可以让游戏具有我所认为的真正的娱乐性。

Id公司的下一款游戏
FS: 你认为你的个人爱好并不是开车,而是火箭发射器?

John: 游戏的目的就是娱乐。模拟游戏从来没有让我获得愉快的感觉,包括飞行模拟、赛车模拟和所有类似的模拟游戏。我知道它们在某些方面具有一定的娱乐性。它肯定不会像我说的:“这些游戏非常枯燥,所有人会喜欢它们”。但是,它们并不是我喜欢的游戏类型。

在我刚刚喜欢上RGP游戏时,我的生活因为其他一些事务而变得越来越忙碌,因而我没有很多时间用来玩游戏。我一直都很喜欢简单的卷轴游戏。尽管从Gauntlet到Quake 3,它们已经发生了很大的变化,它们的基本理念仍然没有改变——你需要四处奔跑、打败敌人、拾起武器、及时进入下一关。这是一个从根本上非常有效的、核心的、首要的游戏元素,我对将相对较为类似的游戏(例如Quake、Quake 2和Quake 3)制作成具有不同风格的游戏并不觉得有什么不好。就像总有人玩赛车游戏和飞行游戏一样,现在也总是会有各种各样的第一人称射击游戏。我认为我们的每个项目都得到了重要的收获。我们的下一个游戏可能会采用一种完全不同的方式,因为并不是公司中的每个人的想法都与我一样。因此下一次我们可能会稍微改变一下我们的策略,但是我们还没有做出最终的决定。

FS:它仍然是一款第一人称游戏吗?

John: 它很可能仍然是一款第一人称游戏,但是它不一定是一款动作游戏。Graeme和我一直在讨论很多游戏的设计创意,并且探讨了我们目前拥有的各种选择,但是我们还没有准备好讨论任何细节。它很可能是一款第一人称游戏——这几乎是肯定的。

FS: 我刚才在想,如果id进入RTS或者其他类型的游戏领域,可能会出现非常有趣的情况——这就像Blizzard从RTS转向开发动作RPG一样。

John: 我不是一个真正的实时战略游戏玩家。实际上,我从来没有真正坐下来玩过一款SLG游戏。这不是我喜欢的类型。它与第一人称游戏完全不同——后者是最有现场感的游戏。

实时战略游戏是最没有现场感的游戏之一。你只是指挥你的军队,而不是你自己在游戏中冲锋陷阵。我想我们还是会继续开发第一人称类游戏。从第一人称游戏转向第三人称游戏只是一小步,但是我认为肯定有其他一些公司更加擅长开发第三人称游戏,例如那些在开发指挥战略方面更具实力的公司。

与游戏行业的很多人不同,我并没有在计算机上制作电影的想法。而正是这种想法导致了很多公司陷入困境。有些游戏设计人员认为他们是导演,而我认为你应当摆正自己的位置。我只是一名游戏设计师,而不是一名电影导演。这也是促使很多公司转向第三人称游戏的原因。第三人称显然更适于显示人物动画这样的特效。Steed肯定希望开发更加重视动画的游戏,但是这可能并不是我们的下一款游戏的开发重点。我们还没有最终决定,但是我肯定将继续开发第一人称游戏。

关于游戏行业
FS: 你把在计算机上制作电影视为“很多公司陷入困境的原因”的说法很有意思,因为有很多3D显卡公司——例如3dfx和Nvidia——实际上将“把好莱坞引入台式机”作为他们的宣传重点。

John: 这个现象存在很多有趣的问题—— 一个是以最高的质量发挥今天的3D引擎的威力所需要的人力正在迅速接近好莱坞所需要的电影布景人员的数量。就像现在,Quake 3远远没有真正地达到我们所能制作的视觉效果的最高水平,但是只有这样我们才能保持足够快的开发速度。

但是如果有人根据这个圣诞节推出的产品了解了今年的技术水平之后说:“我想要制作出视觉效果最惊人的、最接近电影的游戏”,那么他可以制作出远远超过人们目前所看到的视效水平的游戏。相关的技术都是现成的。这就是过去一年中游戏行业的发展趋势,尤其是一些特殊的效果,例如各个层次的完全纹理渲染,需要场景设计人员加入进来,以不同的方式设计他们的场景,以及利用模型构建所有这些特效。这样的努力现在可以被用在计算机游戏中。而过去并不是这样。

在我们开发Doom和Quake时,我们并没有能力投入如此多的人力。如果你需要设计一个房间、一条走廊和另外一个房间,你应当采用的方法是:走廊、模块、模块、天花板。这就是你所能做的一切,因此我们所能开展的工作受到了严重的限制。

FS: 你总是支持以规模较小的团队开发游戏;这是否意味着孩子们可以在自家的车房中和伙伴们一同开发游戏?

John: 我们还没有充分地发掘出所有可能的游戏种类。很多人在很多方面对游戏行业有所不满,而事实上的确很多发行商并不喜欢发行创意新颖的游戏。来自Definition 6的Chris Hecker 一直在用多种方法推广物理游戏;他开发了一些新奇的游戏。他所开发的游戏使用了一个新颖的创意。他还制作了一个简短的游戏演示。这个游戏将物理作为它的核心原理,但是它并不是像“让我们将物理加入一个第一人称设计游戏”一样。它是一个非常独特的游戏。它采用了一个很好的游戏设计,而且与物理学密切相关。但是发行商对它一点都不感兴趣。

这的确非常糟糕,但是与此同时,我们也可以从其他一些事情上看到一些积极的迹象,例如有些人通过在互联网上销售他们所开发的一些简单的小游戏而赚了大钱,例如每年通过被下载的游戏获得几千美元的收入。我对此感到非常振奋,因为我们可以清楚地看到,有些人可以通过开发主流之外的游戏赚钱;这种情况因为互联网而成为了可能。

我们在公司创建早期以共享软件的形式获得了成功。通过最初的Keen三部曲,我们每年的收入达到了10万到15万美元。通过第二个三部曲,我们每年借助共享软件获得的收入达到了50万美元。这还是在我们进入正式的商业销售市场之前。现在看来可以比当时做得更加出色。这的确很有意思。但是由于货架上需要占用成本费用和货架空间,发行商并没有兴趣发行创意新颖的游戏。我确信肯定有一些新的游戏种类正准备崭露头角,但是面临着一些阻力。

Id不是一个发行商
FS: 你对Halo感兴趣吗?

John: 我看过它的影片;看起来非常出色。现在的问题是无法根据屏幕截图来判断一个游戏的好坏,因为任何一个不够胜任的渲染引擎都可以渲染某个特定的场景。关键在于各个对象能否无缝地连接到一起。Bungie拥有很多杰出的游戏设计人才。他们从事游戏行业的时间和我们差不多。他们很多年来就像是id在Mac平台上的影子。但是现在他们已经走在了前面,并在PC平台上取得了一些重要的成果。他们表现得非常不错。

FS: 再回到开创新的游戏种类和来自发行商的阻力的话题,你是否有兴趣帮助推广新的游戏种类,例如提供一些资金来发行这些游戏?

John: 我肯定不想成为一个发行商。Id内部就这个问题讨论了很多年。五年以前,所有的游戏开发公司都希望成为发行商,因为当时有很多小型发行商。后来这些小型开发商逐渐被合并为少量大型发行商。我们就这个问题讨论了很长时间,而且我们自己发行了最初的Quake共享软件,但是当与发行商达成协商之后,我们很可能损失了一些利润,因为发行商的业务管理往往相当糟糕。但是最后所有人都达成了一致意见——尤其是在我们看到很多发行商的合并和倒闭之后——做一个开发商比做一个发行商好得多。因为软件开发商是这个行业中比较清楚的部分,你只需要交付CD,再通过邮件接收支票。但是,作为一个发行商,你需要处理行业中的很多你根本不想接触的混乱部分,例如代理商在取走并售出你的产品之后付费等。我一点也不想接触这方面的业务。

FS: 或者利用你的影响力来说服一些发行商,你知道,也许你应该利用这个机会。

John: 我不会投入太多。我会对这样的事情临时发表一些意见,但是我不会对一些我知道没有足够的时间和精力来努力的事情提出承诺。事实上,这对于我保持对主要工作的专注非常重要。我愿意不去理睬大量的琐事。这一点非常重要,因为如此多的事情都可能需要占用我的时间。可以从很多面临类似处境的人的生活中看到这样做的重要性:整天都有人不停地找他们,从而使得他们无法开展任何工作,因为想要达到某个目的的人会给他们拨打电话和发送电子邮件——对他们进行访问,或者请他们提出一个业务建议。

有时候我会因为没有完成更多的工作而感到内疚。尤其是在即将到来的一年中,有很多不同的硬件设计工作需要完成,而且每个人都没有一个明确的发展方向。我告诉自己,我应当参与到开发工作中,帮助所有人达成一致意见,因为我的地位使得我比较适合扮演这样的角色。微软在很多方面很乐于听从我的建议,很多硬件公司肯定也愿意这样做。他们对我存在一定程度的尊重。但是在开发Quake 3期间,我没有时间来从事这方面的工作。

现在我可以四处宣传一些想法,但是我深知,即使是现在,我也不能完全投入这项工作,因为尝试并带领整个行业沿着我所希望的方向向前发展实际上是一个全职的工作。我还没有狂妄到认为世界没有我就转不了。因此我想要说的是,我会尽量提供帮助,但是我不会全身心地投入这项工作。

关于Trinity
FS: 让我们换个话题,我读到的一篇文章提到在Quake 3成功推出之后,你准备花更多的时间研究引擎。

John: 我目前正在开展多项引擎研究工作。

FS: Trinity是其中之一吗?我想人们一直对“Trinity”有些迷惑不解。

John: 我一直不知道为什么每个人都对Trinity感到迷惑不解。在推出Quake之后,我开始研究新的渲染技术,人们都将其称为“下一个引擎”或者其他名称。Michael Abrash建议我们采用Intel的做法:用一条附近的河流命名你的下一个项目。达拉斯有条名为Trinity的河,所以我们就下一个项目的名字取为“Trinity引擎”。当然,我们最终没有将其用于某个项目,因为Quake II是Quake I的续作,而且我没有在Quake II上使用[Trinity],因而没有任何一个项目采用了这项技术。刚才我们谈到了我当时所做的工作。在开始开发Quake III时,我针对不同的渲染技术编写了六个不同的研究引擎。

但是这仍然只是我所从事的研究工作。其中包括2个三维象素项目,1个空间扭曲项目,1个照明图项目,其中的一部分工作成果后来成为了Quake III引擎。

有一件事一直是id和我的技术指导工作的真正实力之一。你可以看到一些公司紧紧抓住某个聪明的创意不放;有些你可能耳熟能详的游戏则是以一个创意为核心进行游戏开发。而我并不受限于某个特定的创意的束缚。正如我刚才所说的,在开始开发Quake III时,我有六个不同的任务需要完成。我观察了所有这些任务,然后对自己说:“这些任务更加简单明了。”但是我们为Quake III所做的工作实际上是很多方法中的一种比较正确的方法。我现在还有很多任务需要完成。但是没有人会在上面贴上魔法标签,所以我需要亲自评估所有这些不同的任务。

三维象素和曲线
FS: 你刚才提到了三维象素,而且你正在开展这方面的研究。你是否认为3D硬件公司应当关注三维象素加速?你怎样看待已经推出的三维象素游戏,例如“三角洲部队”?

John: 三维象素开发?我过去编写过一些三维象素引擎。实际上Shadowcaster——即Raven的最初名称——的早期版本中就曾经使用了三维象素地面。但是在我们重新编写该程序,以便更多地使用多边形时,我们将三维象素地面删除了。用三维象素技术显示对象可以带来一些实际的好处,因为它可以通过多种方式为您提供完整的纹理和轮廓细节。我在刚开始开发Quake III时编写了这两个三维象素引擎,我当时认为我可以让它们完全通过软件运行,但是它只能提供相当低的分辨率。根据你所能达到的水平,以及硬件多边形的生成速度,在这种情况下并没有必要使用这项技术。

我分析了内存存取模式;你可以用硬件做一个三维象素光迹追踪器,它所使用的硬件资源远远少于我们现在在进行各种三角形光栅处理时实际所用的资源。我认为它在很多情况下可以提供更加具有吸引力的视觉效果。但是它的确很难理解,因此我不太愿意向人们推荐这样的技术。我知道我做了一些介绍性的演示,但是PC行业能达到现在的硬件水平的根本原因是我们都可以借鉴SGI这个例子。我们拥有“这显然可以发挥作用,你看他们已经做到了”的说法的实际证据,因而问题就在于如何挑战并最终超过他们的成绩。

如果要推荐某种全新的技术,有人会说:“你应当让你的工厂生产三维象素芯片,你应当尝试这项技术,并向它投资几百万美元。”我不愿意这样做,因为我们并没有一个完整的证据来表明我们在开发引擎时有必要采用这项技术,也不能证明它可以带来足够的渲染改进。如果有人真的做了一个三维象素开发工具,你可以得到它的深度值,并将其与现有的三角形混合,这可能会是一个有趣的中间步骤,但是坦白的说,我并不认为它会占用如此多的硬件资源。由于现在每个人都在想方设法让自己的产品独树一帜,所以可能会有人用这种技术作为宣传的噱头,但是肯定仅此而已,因为他们还不知道具体怎样使用这项技术。

我认为现在有些非常具有潜力的技术,但是我并不能肯定这就是未来的发展方向,因为尽管这些技术适用于环境的开发,而且你可以将它们用于一些出色的应用,但是还不清楚它们是否适用于角色的开发。你可能会说:“也许你必须用一个变形矩阵构建这个模型,然后当你对它进行Raycast渲染时,让光线在接触变形网格时转向。”但是我还没有编写过这种软件版本。只有在我可以提供一个显示这种技术的工作方式,而且它看起来比你直接可以实现的效果更好的情况下,我才会向别人推荐这项技术。我现在还没有时间来做这件事情,因为我有一些迫在眉睫的研究任务需要完成。

但是我认为这项技术具有一些重要的潜力,有可能会成为一个有趣的发展方向。我现在真正想向所有人介绍的技术是更高阶的表面渲染,包括曲线、细分表面等。现在每个人都对这些技术非常感兴趣。在使用了两年时间之后,我发现它们并不像宣传得那样出色;它们存在不少问题。你直接从外面往往发现不了,对于一个开发人员来说,必须要深入内部才能看到这些技术的本质。

如果你曾经读过相关的研究文献,了解贝赛尔曲线的工作方式,你可能会想,哦,这项技术非常出色,这正是我们在三角形单元之后的前进方向。你并没有意识到所有的“实际”问题,例如使用无效的、标准的,但是退化的边缘。你不能随意地划分一条曲线——除非将其提高到两侧的平面。你不能通过调整其他部分连接两个交叉点。所有这些细微的不足最终会造成很大的不便,尤其是在比较困难的情况下,你很难全面地了解发生问题的环节。三维象素技术也存在所有这些问题,这就是我为什么不愿意上台演讲,描绘未来的远景,因为很多技术从表面上看来很出色,但是当你深入到它们的内部时,往往会得出相反的结论。

对竞争的看法
FS: 既然你打算重新开展研究工作,那么这是否会对id的下一款游戏的推出时间产生一定的影响?

John: 这取决于我们最终决定下一步采取什么措施。我目前正在开发的两种技术都适用于现有的Quake 3框架,因此这些新技术可能会被加入到下一个产品中。

目前我们得到了一个非常重要的机会,即我们可以使用这个牢固的、稳定的、可扩展的、灵活的引擎,从而将我们的开发重点放在游戏设计上,而不需要考虑引擎的开发。。。 从一位管理人员的角度来说,这无疑非常有利。但是,如果我们这样做,我现在正在开发的技术很可能不会在三年、四年甚至更长的时间内被用于新的产品。对于技术的发展来说,这是相当长的一段时间。因此我们需要一个真正强有力的激励来促使我们将一些新技术加入到下一个产品中。

FS: 你是否通过玩其他游戏和观看竞争对手的产品来开展研究工作?

John: 我经常玩Unreal,将来我可能会喜欢玩Unreal Tournament——尽管我现在还没有玩这款游戏。另外,我还会玩很多演示版的游戏。我不会进行一次真正彻底的调查,玩遍市场上的每款游戏。通常我只是在别人玩最热门的新游戏时旁观一下。而我不会花很多的时间玩其他的游戏。当然,我玩Quake 3的时间超出了其他任何一款游戏。

FS: 公司中是否有专人负责这项工作?

John: Christian和Graeme会玩大部分新游戏。过去是Brandon负责玩每个游戏。当他在id时,所有信息都会从他那里过滤一下。Tim也经常出于一些研究目的玩游戏;Tim在浏览其他游戏方面表现得相当尽责,而Graeme和 Christian 玩其他游戏的主要目的只是娱乐。

Carmack的研究
FS: 你能否简单地介绍一下你的研究内容?

John:我现在正在开发的一个渲染引擎技术是一个更好的照明模型。Quake 2 在计算中添加了发射性照明,它可以带来真实的光线反射效果,但是很多人实际上并不喜欢这种技术,因为它消除了一些阴影,从而让更多的对象陷入黑暗之中,尽管这比较符合实际情况——很多人都喜欢更为明显的阴影。在Quake 3中,我们重新只使用了一个直接照射灯,这在一定程度上是因为我不想在曲线上进行有限元放射计算。另外一项技术将让设计人员可以在任何地方渲染纹理和划分轮廓,从而让我们可以手动改进对象的显示效果。因此,主要有两个研究方向。实际上,它们可以被结合到一起,或者共同使用。它们都给我带来了一些有趣的技术难题。这些技术可能会在我们的下一款产品中得到展示。

我的其他一些研究内容与游戏引擎无关。我正在利用Web摄像头进行一些视觉研究,例如一种头部跟踪装置。我可以利用这种装置,在游戏中加入一些有趣的内容。例如当你来回摇你的头时,你在游戏中扮演的角色也会做出同样的动作。或者像一种支持全息照相的窗口界面,你只需要移动你的头,就可以改变你的形象。我并不认为Web摄像头用于足够快的速度,在没有显著延时的情况下实现上述目标,但是这仍然是一个相当有趣的技术。你可以利用面部表情等,将它提高到新的水平。

我认为这些技术的应用将会超过我的想象。所有短时间的不连续都是由于输入/输出设备的变化所引起的。当人们开始用鼠标进行各种操作时,事情发生了变化。我认为“计算机视觉”已经具备足够的实用性,足以对对象产生“鼠标式”的影响。毕竟,有些事情只能通过鼠标完成,而不能依靠键盘。这仍然处于自由猜想阶段。

现在出现了一些有趣的应用,因为我们现在运用了足够强大的CPU运算能力,可以进行一些相当复杂的计算。与很多图像技术不同,它还有很多尚未解决的研究问题。很多人正在研究这些难题,但是我们没有“SGI实例”来知道怎样将对象组合到一起和提高运算速度。

我所感兴趣的最后一个研究方向是实现更加通用的3D技术,例如能够在3D世界中利用其他的渲染工具(例如HTML)开展工作,以及能够建立不与某个特定游戏相关联的小型网络空间。我认为我们可以构建一个基础设施框架。我们可以开发一款第一人称设计游戏,但是框架具有足够的通用性,因而我们可以用它完成其他任务。

所有现有的软件显然都是针对第一人称射击游戏而设计的,但是人们以后可以利用这些技术执行其他一些有趣的任务。通用化总是要付出不菲的成本。你可以通过技术的专用化提高它的工作效率,但是在某个转折点你可能会发现通用化的成本并不是很高,而拥有一个更加通用的平台所带来的好处更加显著。我认为3D游戏目前正处于一个这样的转折点。

现在的我们与两年前大不相同。当时我们仍然需要考虑每一个很短的帧来提高一点点性能。由于硬件加速的发展——尤其是轮廓加速的实现,以及速度更快的CPU和容量更大的RAM的出现,这种情况已经不复存在。我认为我们的通用平台的速度可以达到专用版本的90%以上,同时可以利用这个平台处理大量其他的、有趣的任务。

综合性问题
FS: 你希望建立一个永久性的Quake世界,让人们可以在其中进行对话和交流吧?

John: 是的,甚至不一定与Quake有关。我认为在利用介质通信方面有很多有趣的工作需要完成。你会看到人们互相交流,在一个服务器上会面等。这方面有很多潜在的发展方向。我不会将其称为虚拟现实,因为VR已经成了一个与死亡和毁灭联系在一起的名次。从来没有一家成功的VR公司,但是我认为其中很多公司失败的原因都是当时并没有相应的技术来实现他们的创意。在很多情况下,创造力和创新精神都会受到技术发展的限制。

Doom就是一个典型的例子。我们用了很多的聪明、才智和创造力才开发出了Doom,但是所有这些聪明才智在五年之前并不能产生任何作用,因为当时的技术限制使得人们不可能开发出像Doom这样的游戏。有些时机是适合出现新的创新技术的。

我认为在未来几年中,将会出现很多这样的创新技术,例如3D界面的通用化。每个人都用一种含糊的、空想的方法预言互联网和Web在未来的某个时候拥有一个3D界面。但是没有人提出真正实现这个目标所需要的具体细节。现在可能是实现这个目标的时机,但是也可能不是。

我很关注这些研究方向,而且我将从事所有这些研究工作。最终我将把那些最有前途的技术研究到底。

FS: 你是否建议年轻人上学?

John: 如果你是为了正确的理由上学,那么学校将是一个很好的学习知识的场所。大学可能是一个信息极为丰富的环境。我现在回想我的大学生活,会觉得我浪费了很多宝贵的时光。我当时应当使用他们的图形工作站和其他设备学习知识。

如果你只是为了获得一个学位,以便找到一份满意的工作,那么我并不支持。如果你上学是为了结识聪明人、拓展知识面和学习新知识,那么我完全支持。有些人在大学的收获比我上面列出的多得多。至于我,我一直都是那种只会看产品手册的学生。我喜欢这种学习方式,但是并不是所有人都喜欢这样。我并不认为大学是一个不好的地方,但是我并不支持这样的观点:“你必须上大学,这是唯一的成功之路”。原因很简单,它并不是唯一的成功之路。

我认为,至少对于一些年轻的、发展迅速的行业(例如互联网和游戏设计)而言,才能和一份表明你的工作经验的简历比学位更加重要。我从来不问别人“你是否有一个学位?”我更关心的是“你做过什么?”如果要从坐在课堂里参加考试或者在家里编写游戏程序来证明你所拥有的天赋之间进行选择,我认为后者不失为一条合理的成长道路。

FS: 最后一个问题——你现在玩的是什么游戏机?

John: 我在家经常玩的游戏机是Nintendo 64,但是除此以外我们还拥有Playstation、Saturn和其他一些游戏机。

Firingsquad 和 Gamers.com 非常感谢John和Anna抽出时间接受我们的访问。我们的这篇文章得到了广泛的好评,我们希望在不久的将来访问您所喜爱的其他程序员。请到我们的留言板上发表您对本访问的看法。

阅读全文
0 0

相关文章推荐

img
取 消
img