游戏引擎的起源

在信息时代,客观障碍已不复存在,所谓障碍都是主观上的。如果你想动手开发什么全新的技术,你不需要几百万美元的资金,你只需要在冰箱里放满比萨和可乐,再有一台便宜的计算机,和为之献身的决心。我们在地板上睡过,我们从河水中趟过。——卡马克

电子游戏的诞生

第一个计算机游戏于1958年在一个听起来不太可能的地方出现——美国政府的核实验室。实验室的负责人为了打消周围农场主们对这个建在他们家门口的核实验室的担心,用计算机在圆形的示波器上制作了一个非常简陋的网球模拟程序——《双人网球》(Tennis for 2),它其实只不过是一个白色的圆点在一条白线两边跳来跳去。农场的人们对这个新鲜玩意惊讶不已,但实验室的负责人回到实验室以后就把机器拆除了。

阿方索·约翰·罗梅洛(Alfonso John Romero)是成长于20世纪80年代的第四代游戏黑客。第一代是五六十年代那些在小型机上做开发的麻省理工的学生们,七十年代硅谷和斯坦福的接力者们是第二代,八十年代早期的一些刚起步的小游戏公司算是第三代。为了进入这个领域,罗梅洛需要学习那时游戏开发者们必备的一种计算机语言:HP-BASIC。

在第一次去了校园机房后几个星期,罗梅洛就完成了他的第一个游戏,一个文本方式的冒险游戏。因为那些大型机不能存储数据,所以编程都是通过在一张张薄薄的卡片上打孔来实现的,每张纸是一行代码,而通常一个游戏都需要上千行代码。一天在去校园的路上,他的车撞到了一块石头,车翻了,两百张卡片飞舞在空中,散落在了湿漉漉的地面上。罗梅洛觉得不能再这样下去了。他很快就找到了新欢:苹果II型机(Apple II)。

史蒂夫·乔布斯(Steve Jobs),一个大学辍学生,一个对佛教和哲学充满热情的人,于20世纪70年代中期在雅达利游戏公司开始了他的第一份工作。随后,乔布斯对未来发展趋势的敏感和史蒂芬·沃兹涅克(Stephen Wozniak)天才般的编程能力一起造就了他们自己的公司——苹果。

第一代苹果机是在1976年给“家酿”(Home Brew)计算机俱乐部会员们用的一个原型,价格高达666.66美元。1977年出产的苹果II型机是针对普通用户的,它带一个键盘,兼容BASIC语言,最重要的,它的图像是彩色的,尽管它没有硬盘驱动器,但它随机附送了两个在现在看起来很简陋的游戏手柄——它就是用来玩游戏的。

罗梅洛全身心地投入到了游戏制作中,他不但编程,还做美工。他甚至可以在半个小时里写出一个游戏。他给所有这些游戏都起了由两个首字母相同单词组成的名字 , 譬如《异形攻击》(Alien Attack)或者是《洞穴战士》(Cavern Crusader)。

我现在已经学了四年半的计算机了,我的编程能力即将有一次新的突破。——约翰·罗梅洛,王牌程序员,竞赛冠军,未来富翁

PC时代

《黑客:计算机革命的英雄们》(Hackers: Heroes of the Computer Revolution)是约翰·卡马克(John Carmack)的启示录。这本由史蒂文·利维(Steven Levy)于1984年撰写的书里探寻了所谓“改变了我们世界的神童们”,以及他们那二十五年欢腾的岁月,书里讲述的敢于破除常规的计算机爱好者们包括了20世纪50年代在麻省理工研制大型机的先驱,以及70年代硅谷的“家酿”俱乐部和80年代计算机游戏业的领跑者们。

尽管‘黑客’这个词在一些人看来有嘲笑的意味,仿佛那些人要么是脱离社会的书呆子,要么就是堆砌乱糟糟的‘不标准’代码的‘外行’程序员,而我觉得不尽如此。在他们不起眼的外表下,他们是开拓者,他们是幻想者,是冒险家,艺术家……他们才是清晰地洞察到计算机之所以是种革命性工具的人。——利维

在20世纪70年代时已经有了被称为因特网(Internet)的国际化计算机网络,但那只是政府以及国防部门和大学等科研机构才用得上的东西。而BBS(Bulletin Board System:电子公告牌系统)正好和因特网相反,它是大众化的计算机俱乐部,它是给所有人的,尤其是像卡马克这样的计算机和游戏爱好者。

尽管这些爱好者们可以聚集在BBS上交流,但早期调制解调器的速度太慢了,根本无法成为一种分发软件的方式。在这种情况下,每月一张的软盘自然而然地成为了软件发行的地下渠道。《软盘》杂志于1981年发行了面向苹果机的创刊号。1986年,他们开始发行IBM-PC及其兼容机的软件,所谓兼容机,就是指可以运行同样操作系统的机器。在经过那么多年的发展后,个人电脑的价格终于变得可以被普通用户接受,随之涌现了大量的新用户。

卡马克发现了一个新的赚钱途径:把他那些苹果机上的游戏转换到IBM-PC的机器上。他对这种新兴的系统几乎一无所知,但这对他而言正好是一个编程上的挑战。他驱车到一家商店拉回一台PC机,一个月后,他不光给《软盘》寄去了苹果机上的《黑暗构思》(Dark Designs),还附了一份转换过的,或者说是“移植”过的PC版本。卡马克通宵达旦地工作,他已经可以很熟练地同时推出三个平台的版本:苹果、苹果II GS、PC,而《软盘》会买下所有这些版本。

相遇

《软盘》杂志的经营者名叫艾尔·维科威尔斯(Al Vekovius)。蒸蒸日上的业务也带来了更大的挑战,艾尔现在经营的是一个资产达1200万美元,员工总数120名的大公司了,还有很多竞争者们在后面追赶,其中包括新罕布什尔州的《新时代》。

1988年的冬天,艾尔给《新时代》的编辑杰伊·威尔伯(Jay Wilbur)打了个电话,他们是在一次游戏业者大会上认识的。杰伊告诉艾尔,他认识两个游戏程序员也正在找工作,一个名叫雷恩·罗瑟(Lane Roathe)的前《新时代》雇员,另一个名叫约翰·罗梅洛。艾尔听到这个消息后激动不已,他能感觉到正在浮现的PC娱乐市场里所蕴藏的巨大商机,他让杰伊把那两个游戏程序员也带过来。

罗梅洛一开始就把他的雄心告诉了艾尔:他没有任何兴趣去做那些工具软件,他只想做大型商业游戏。但是,罗梅洛还有个当务之急的事情,那就是脱离苹果机,转向PC机。他就告诉艾尔,他觉得苹果机已经日暮西山了,主要是因为IBM-PC及其兼容机的兴起,而且苹果公司拒绝整合进IBM的软件标准,这直接使得用户在选择的时候更加偏向于IBM-PC机。罗梅洛想做的事是学习一种很热门的叫做C的计算机语言。

为了学习PC机编程,罗梅洛同意暂时加入PC部门,但他告诉艾尔,当时机成熟的时候,他还是希望能回到游戏制作上来。但时机似乎永远不会成熟,忍无可忍的罗梅洛向艾尔发难了。艾尔建议发行一份游戏特刊,每月一期。“月刊?”罗梅洛吓了一跳:“不可能,一个月的时间绝对不够。”“可是,我们的订户们已经习惯了每月一张盘了,”艾尔说:“或者我们可以暂时做成双月刊,但还是要尽快做到每个月一期。”

雷恩将会成为这个名为《玩家之刃》(Gamer’s Edge)的PC游戏双月刊编辑,现在只缺一个熟悉PC的程序员,而且,这个人必须是像雷恩和罗梅洛那样的玩家。杰伊说他倒是知道一个年轻人绝对适合这个位置,这个人寄来过不少精彩的游戏,他甚至知道如何把苹果机游戏移植到PC上。

PC上的《超级马里奥》和游戏引擎

给卡马克留下最深刻印象的还是与罗梅洛和雷恩的那一场交谈。这三个程序员几乎是一见面就开始了关于游戏编程的热烈讨论,从苹果机上16位图像模式下的双倍分辨率,到8086汇编语言的技巧,他们一刻不停地谈论着,不光是计算机方面的东西,还有其他方面的共同爱好:《龙与地下城》(D&D: Dungeons and Dragons)、《行星撞击》(Asteroid)、《魔戒》(Lord of the Rings)。

现在《玩家之刃》有了人手,公司把后面的一个小房间给他们作为办公室。但他们还缺一台重要的机器——电冰箱,因为做游戏开发需要有大量的垃圾食物储备,譬如苏打水和比萨饼。在接下来的一个星期里,他们还不断地往里面搬入各种东西:微波炉、音响、任天堂(Nintendo)。

“罗梅洛这个家伙居然搬了台游戏机进来?!”同事们出离嫉妒了,罗梅洛只好跟他们解释说这是用于研究的。但同事们不吃他这套,更让他们受不了的是,接下来还有工人推着一批崭新的386PC走进了那个所谓的游戏部门,这可是当时最强大的机器,公司里其他员工的机器只有它四分之一快。

卡马克最感兴趣的是编写游戏的核心部分——引擎,这个模块负责指示计算机如何在屏幕上显示图像。罗梅洛乐于做各种辅助工具,由此他们才能制作出游戏的角色、环境、地图,此外,罗梅洛还喜欢做游戏设计。但雷恩却不是很合拍。虽然他是《玩家之刃》的编辑,但和罗梅洛不一样,他不热心于PC,这使他和大家越来越疏远。与此同时,卡马克和罗梅洛,尤其是后者,心里已经有了另一个合适的人选:汤姆·霍尔(Tom Hall)。

真正让他们无法进行下去的是缺少一个美工。罗梅洛以前那些苹果机游戏的美工都是他独立完成的,他自己在这方面已经很棒了,但他想把这项工作转交给其他人——二十一岁的艾德里安·卡马克(Adrian Carmack),《软盘》的临时工。很凑巧,艾德里安和卡马克的姓氏一样,但他们没有任何血缘关系。

下一个游戏的点子是卡马克提出来的。他正在尝试一项编程上的突破:让游戏的世界不再局限于屏幕的边界——所谓的“卷轴效果”。到1989年的时候,卷轴技术已经是新游戏的一项必不可少的标准,这其中最成功的莫过于任天堂红白机上的《超级马里奥兄弟3》(Super Mario Brothers 3)。

他一开始先试了最直接的途径,在整个屏幕上重新绘制图像,但行不通,因为那时的PC实在太慢了。然后他尝试着优化——可以通过多使用一些内存来换取性能的提高吗?他试了几次,发现这也是死路一条。如果,卡马克想道,不是每次重绘整个屏幕,而是只重绘那些真正改变了的部分,会怎么样呢?那样的话,卷轴效果执行起来会快很多。

汤姆立刻感觉到了这技术的潜能:这意味着他们可以在PC上做出《超级马里奥》!还没有任何地方的任何人做过这样的事情,而他们现在就可以做出来,就在这里,就在现在,在PC上实现他们最喜欢的游戏。“我们来做《超级马里奥》!”汤姆说,“就今晚,从第一关下手!”

他打开电视机,插入《超级马里奥》的卡,开始游戏并按下暂停,然后在电脑上打开图素编辑器,就像别人临摹名画一样,汤姆开始在PC上重画出《超级马里奥》第一关里的图素,一个不漏——金币、白云、水管……。他惟一没有照着原样画的东西是主角本身。除此之外,他还不停把地在原版马里奥里发现的各种游戏功能一一告诉卡马克,然后卡马克迅速地在PC上逐个实现,与此同时,卡马克还在对卷轴效果进行优化。房间里多出十几个可乐瓶的时候,他们完成了第一关,时钟已经指向了凌晨五点五十分。