重读《DOOM启世录》

许多游戏开发者从事这一行是为了制作出最终的游戏,中间漫长的开发阶段只是不得不经历的过程,我尊重他们的工作态度,但我从事游戏开发的动机略有不同。

当然,我也为游戏的完成而自豪,但这途中所克服的各种困难却更加让我铭记。我已记不清我们那些老游戏发布时的情景,但我清楚地记得那些技术上的突破,早至《基恩》时的CRTC回绕,以实现平滑的卷轴效果(准确地说,早至理解苹果2汇编语言中并联数组里的结构体……),知识是需要积累的,学习是需要循序渐进的。

我的人生就是以知识的积累和学习的不断深入来分为不同阶段。

我启蒙阶段用的是学校里的苹果2型机,但当时的条件局限了我的学习速度和深度。今天的状况已经好多了,只要有一台便宜的二手PC机、一张Linux光盘和一个因特网的账号,你就拥有了足够的工具和资源,你就可以达到任何你期望的编程境界。

《软盘》的头六个月对我而言如同活在梦里,平生第一次,我身边有了比我更博识的程序员(罗梅洛和罗瑟),我手边有了大量的书籍和资料,而且我可以全身心投入到编程中,那真是一段好时光。

接下来的两年,直到Doom和几个家用机版本移植完成,我在稳步提高着我的知识面和技术水平,其中包括:更深入的图像编程、网络、Unix、编译原理、跨平台、RISC架构、等等。

Quake开发的第一年简直如同腾云驾雾,有迈克尔·亚伯拉什作为顾问,我尝试了大量新鲜课题。如果科班出身的图像程序员们知道我在写Doom时有多业余,他们肯定会大吃一惊,那时的我甚至不能正确地剪切墙体多边形(这就是为什么我用了那莫名其妙的极坐标系统),Quake逼着我踏上正轨,同时探索出新思路。

Quake开发的最后半年是在痛苦中度过的,那时我满脑子只想着把这该死的东西做完,当然,一切付出到后来都有了回报,但我绝不怀恋这段时光。

Quake2开发的过程中,我的学习经历又得到了进一步扩充:GLQuake、quakeworld、radiosity、OpenGL工具开发、Win32编程、等等,与此同时,我也有了不少关于下一步如何做的想法。

我认为接下来三位元引擎的开发将和Quake一样硕果累累。我在一些课题上已经有了非常深入的理解,我还正在尝试一些图像编程以外的全新领域,它们将会和我所有其他方面的工作产生积极互动。

卡马克厌恶那种貌似先哲圣贤般的夸夸其谈,但如果你一定坚持,他也会聊聊他的想法。"在信息时代,客观障碍已不复存在,"他说:"所谓障碍都是主观上的。如果你想动手开发什么全新的技术,你不需要几百万美元的资金,你只需要在冰箱里放满比萨和可乐,再有一台便宜的计算机,和为之献身的决心。我们在地板上睡过,我们从河水中趟过。

posted @ 2010-01-27 20:30  robinh00d  阅读(282)  评论(0编辑  收藏  举报