第5章 比现实更有趣的世界
师,斯科特·费希尔(Scott Fisher),成功地通过数字手套和固定在头上的一个显示设备实现了虚拟现实的原型。通过这些工具,用户可以在以主视角三维图像展现的虚拟世界里操控各种物体。最后,费希尔在1989年写道:“将会诞生交互影院和交互游戏,里面既可以有日常生活中的物品,也可以有现实中没有的东西,人们的数字化身可以有不同的外貌。最终,电信网络上会出现可配置的虚拟现实服务器,用户们可以远程登入,和其他人的数字化身进行交互……虚拟世界将会和现实世界一样多姿多彩,在那里面,人们甚至可以通过一些传送门瞬间消失,进入另外一个虚拟世界。”
尽管卡马克也是一个科幻小说爱好者,着迷于里的全息成像台,但他并没有去堆砌宏大的虚拟现实设计方案,他更专注于解决当前的技术问题,譬如如何在计算机上显示出三维图像。
卡马克很久以前在苹果机上制作那个MtV标志的时候就体验过三维图像编程。在那以后也出现过一些主视角的三维游戏。1980年,理查德·盖略特就在他的第一个角色扮演游戏《阿卡拉贝斯》(Akalabet),它是飞行模拟类的,玩家可以透过各种飞机的舷窗体验到在三维世界里飞行的感觉。1990年,理查德·盖略特的维真公司出品了一个太空主题的战机游戏:《银河飞将》(ing Commander),它很快就在id的湖畔小屋里流行了起来。
卡马克觉得他可以做得更好。在他看来,飞行模拟类的三维游戏实在太慢了,繁复的图像让玩家们感觉自己像是一只在空中飞行的蜗牛。他和id的其他人都更偏爱类似街机的快节奏动作游戏,譬如《防御者》、《行星撞击》、《金手套》,在其他人忙于《拯救罗瓦》和《鬼屋里的戴夫》时,卡马克就开始尝试去做这没有人做过的东西:快节奏的三维动作游戏。
然而,他随即发现,PC机的性能还不足以运行那样的游戏。卡马克翻遍了各种书籍和期刊,但没发现什么有价值的东西。他又像当初做卷轴效果时一样:先尝试最直接的办法,如果不行,再拓宽思路。三维游戏之所以很慢的一个原因是要画的物体表面太多,但卡马克又想到,是不是可以让计算机每次少画些表面,就像给马儿戴上个眼罩,譬如,在绘制走道时,省略掉地板和天花板,只画出两侧的墙壁,用透视法的话,它们就是两个简单的梯形。此外,卡马克又独辟蹊径地使用了所谓的“射线追踪”算法(raycasting),在剔除掉玩家视角外的物体后,游戏的速度得到了极大的提高。这时,就只剩下最后一个挑战:在三维的世界里加入人物,解决的办法是简单地绘制出表现这些人物的图像和动画,《银河飞将》就已经可以根据玩家和目标之间的距离远近来动态缩放图像的大小。在综合了削减多边形、射线追踪、动态缩放这些技术后,卡马克已经可以做出一个流畅的三维世界了。
整个研究工作花费了卡马克六个星期,以前他顶多都只需要四个星期。当罗梅洛看到这成果时,他再次叹服于卡马克的天才。他们接下来讨论了应该制作个什么样的游戏,才能发挥出这个引擎的优势。他们最终决定制作一个未来核战后的世界,玩家在里面开着坦克营救幸存者。《气垫坦克》(ank)于1991年4月发布——id创造了主视角射击类游戏。
尽管《气垫坦克》是一个创新的游戏,但它比不上《基恩》,它看上去过于简陋,尽是大块大块的单调颜色,抛去这些不足,它还是体现了id那益发血腥的风格。在那些核污染产生的异种死去时,艾德里安让它们变成了一团血胶;就像《基恩》里的唷扑一样,它们也继续逗留在这个世界里,于是当玩家回到他曾经屠戮过的地方时,还可以重新回味他给这里带来的不幸。
id不断地尝试着