开放源码

FS: 很多人都认为您是全世界最出色的游戏工程师之一。您认为在今后几年中,这个世界上是否更有足够的任务和深度来让您保持足够的兴趣?

John: 当然,更有很多难题需要解决。现在,我正在利用我的很多闲暇时间研发一些基于Linux平台的程式。我已完成的一项工作是为Linux编写两个3D驱动 程式,即在这个平台上进行大量的编程。作为一名研发人员,这对我很有用,因为我做了大量高层次的、API级别的编程工作,但是我应当继续深入到系统底 层。通过研发设备驱动程式,编写一些深入到硬件内部的部署级程式能够开阔我的眼界,让我能够从整个流程的角度看待各项工作。有很多程式员只知道顶层的研发 方法,而不知道程式工作的基本原理,这主要是因为他们无法“看到”系统的内部结构。

我 正在考虑着手的另外一项工作是(因为我喜欢清楚地从最高层到最底层的任何技术细节)花一些时间研发我自己的网络堆栈,以便进行研究和学习。我还做了一些我 想要尝试的试验,以便在串行驱动程式和分组驱动程式的层次上了解操作系统实际上为路由时间和排序所支出的开销。我希望从我们通常用于通信的协议层下面获得 一些信息。

FS: 仅仅是在Linux平台上,还是也包括Windows和Mac平台?

John: 关键是在Linux平台上开展这些工作更加方便,因为您能够获得您所需要的任何信息。尽管Linux还不能取代Windows成为主流的桌面操作系统,但是他的确具备一些独到之处。

吸 引我这样做的原因是有人为Matrox显卡编写了一个Linux驱动程式。我对他进行了测试。显然他不能兼容Quake 3。因此我决定将他下载下来仔细研究。我对他的出色的工作机制留下来深刻的印象。尽管他的速度不快,但是他几乎能够说是个功能齐全的、高质量的程式。但 是他在纹理的交换方式方面存在明显的缺陷。他们交换的是最近使用的纹理,而不是最少使用的纹理,因而您能够在屏幕上看到明显的失真。

我很清楚他的工作方式,因而我想“太好了,他提供了源代码。”因此我决定下载源程式、进入CVS库和任何文档,按照我的想法改进代码,发现程式缺陷,并将其消除!整个过程很明确。

由 此得出的结论是,Apple的驱动程式曾也存在相同的缺陷。因此我们能够在两个驱动程式中发现相同的缺陷,但是对于Linux程式来说,我能够直接进入 源程式,消除这个缺陷。尽管在很多层次上仍然存在不少障碍,但是具备这种能力很重要。从根本上说,假如您在使用一个源码完全开放的系统时碰到了一些问 题,您能够花时间自行解决这个问题。您无需等待别人的帮助。您无需低声下气地寻求帮助,也无需等待补丁发布,而通常这样做会降低时间的利用效率,但 是假如某个问题真的让您头疼不已,您能够直接查看源代码,解决这个问题。这会让人感到很振奋。

关于Linux的其他问题

FS: 这就是您对待问题的态度——亲手解决问题。您并不想等待别人来发布一个升级程式,而是愿意自己动手。

John: 是的,这就正是为什么在我对网络或其他问题进行研究时,我更愿意使用Linux平台。假如需要,您能够取出操作系统的某些部分,告诉自己:“好的,现在我想要把这一部分完全删除,因为我想要做一个试验。”您能够获得自由发挥的空间。

我认为,在未来几年中,软件的可用性将日益得到重视。有很多经济趋势和此有关。您将看到价格低于500美元的PC和90美元的Windows使用许可。假如人们只想执行一些很基本的任务,他们很可能希望获得一个免费的操作系统。

Linux界有很多疯狂的支持者,他们的观点有时缺乏足够的理性。但是,在关于Linux的实际优势的宣传中的确存在着一些真实情况。

FS: 您很关注技术,而且您鞭策自己不断进步。但是您是否考虑过找一个上司来帮助您学习新的技能?

John: 我知道在某些工作上聘请管理人员能够带来很多好处。我们在第三季度末聘请了Graeme来帮助我们管理部分业务。但是他并没有对我的工作方式产生实际的影 响,因为Graeme还没有蛮横到干涉每项具体的工作。事实上,我自己对工作的安排往往好过大部分管理人员给我定制的工作计划。

我 也意识到了我的个人组织能力的局限性。我会将几千件事情放在我的任务清单上,而且常常是从头开始对任何事情进行排序。我的确认为假如有个人的主要工作就是 确保我知道和了解任何这些任务的重要性就好了,因为每个人的组织能力都存在一定的不足。您自己可能不会这样做,但是有些事情就是因为您一直不愿意去处理而 最终泡汤。我已意识到了让某个人帮我安排工作的好处。

最 近我在找一个人来对一些程式——尤其是Linux驱动程式——的OpenGL性能进行兼容性测试。我为此编写了大量的程式,我也尽量设法将这件事负责到 底,但是我知道我需要采取多种方法来实现我的目标。我希望编写一个完美的程式,但是我也深深意识到,在我的有限的时间里,我不可能做到面面俱到。

有时候有一个专门负责帮助您的助手会带来很大的方便。但是这对我来说仍然只是个理论上的问题。我相信这样做会有所帮助,但是还没有看到实际的效果。

Carmack作为学生

FS: 出了组织能力以外,能否将一位管理人员视为老师?您觉得能够从谁身上学到对自己有用的知识?

John: 实际上,我几乎向每个人学习。这是十几岁时的我和现在的我的主要区别之一。当我十几岁时,我的想法是:“我比我周围的人都聪明,因此我完全不用理会别人说 什么。”我在大学的几个学期中都是如此。现在回想起来,我觉得我采用了错误的处世方法。是的,也许我的确比教授聪明,但这并不意味着我不能从他身上学到对 我有用的知识。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!