【转】3D之神JohnCarmack

来源:互联网 发布:京东 研发 知乎 编辑:程序博客网 时间:2024/06/03 01:18

John Carmack,

  如果你问比尔.盖茨,“你最欣赏的程式师有哪些?”,在他的回答中,肯定会出现JohnCarmack(卡马克)的名字。(PS:论坛争论很凶的DX和OPENGL的前者---DX API的很多修改都是根据JC的建议)没错,John Carmack 在程式师中的崇拜程度,甚至到了无以为加的地步,他设计出了游戏史上最强大的3D引擎,30 岁时就步入了美国互动艺术设计名人堂。微软在很多问题都非常尊重他的意见,甚至展示Windows 95 多媒体应用的3D演示程式就是使用他设计的引擎。

  另外他还是个超级游戏设计师和王牌玩家,冲动而富有激情和感染力,正是因为对游戏的热爱,才进化成为程式员,并不断改进自己所从事的产业。作为年轻一代,John Carmack是典型的美国梦样版,他用自己的热情点燃了一种新的艺术形式、一种文化现象,并在商业上获得巨大成功。他的经历使自己成为叛逆的偶像,他既是电脑骇客,同时也名列《财富》杂志(Fortune)评选的500佳企业管理者;他被誉为游戏界的列侬(Lennon),其实他自己更乐於被看作金属乐队(Metallica)的成员.ID Software的Co-founder, technical director 和 Lead Programmer,3D FPS游戏鼻主。

  90年代初,John Carmack推出了石破天惊的Castle Wolfstein, 然後再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。 标准的编程狂人,结婚前每天14小时以上的时间都在码。ID的图形引擎几乎成为显卡厂商的重要标准,远的不说,04公布的DOOM3 引擎直到现在还是牛X的一塌糊涂,一直作为显卡评测工具也说明了一些问题。但JC最令人敬仰的不是他的技术,而是他那颗骇客的心。所有游戏公开源代码,所有领先的图形引擎I都毫无保留的开源,可以说没有JC 现在游戏的图形技术肯定要滞後很多,只有真正的神才是不怕被别人抄袭他的技术。

1992年:《狼穴 3D》(Wolf 3D)
1995年:《毁灭战士》(DOOM)
1996年:《雷神之锤》(Quake)
1997年:《雷神之锤 II》(Quake II)
1999年:《雷神之锤 III—竞技场》(Quake III Arena)
2004年:《毁灭战士 III》(DOOM III)
2005年:《雷神之锤 IV》(Quake IV)

PS:JC的业馀爱好是制作私人火箭



再付JC 为 Michael Abrash的《图形程式开发人员指南》写的序,绝对的震撼
  

  我在学校读书的时候开始在AppleⅡ电脑上编程,几乎所有早期的工二作都基於Apple平台。毕业之後,我很快发现80年代後期Apple II工作举步艰难,於是我不得不迅速转入Intel的PC环境。过去我在Apple上花—了好些年得到的知识,在PC机上不需要几个月就可以,学到。作为一名程式师取得收入,最大的好处就是能够购买所有想要的书和杂志。我买了许多。我处在一个一无所知的领域,於是我阅读在我身边所能找到的所有东西,时事报导、社论甚至广告都有我可以吸取的资讯。

  早些时候,John Romero给了我—些Michael Abrash的文章,这些都是好文章:图形硬体、代码优化、雄心勃勃的开发者的知识和聪明才智,它们读起来更是轻松愉快。有很长一段时间,我到各个书店去寻找Michael的第一本书《Zen of Assembly Language》,但—直没有找到,只好将就利用我所能发掘到的他的文章。从那些文章里,我学到了EGA视频控制不为人知的秘密,并且开发成几个精致的技巧,有几个成为Commander Keen系列游戏的基础。正是它们导致了id软体公司的产生。

  —两年後,就是Wolfenstein—3D开发出来以後,我第—次“碰到”Michael,当时我正在M&T的BBS上线上漫游,这个BBS是Dr.Dobb出版商在Internet火爆起来之前构建的,这时我看见了他发出的邮件。我们交换了email。有好几个月,我们在图形学论坛扮演着领袖二人组的角色,直到Doom游戏占据我的生活。

  当Doom引起轰动以後,Michael一个新得到工作的朋友让我们又彼此取得了联系,并且我终於有机会见到Michael。那天我说得嗓子都哑了,我与Michael和他的合作者中感兴趣的人讲述着Doom的所有细节。从那以後,每隔几天我就能收到—封发自Michael的email,或是徵求我某个观点的细节,或是讨论将来图形学的发展方向。

  最後,我徵求他的意见—给他—份在id软体公司的:工作:“只要思考;不要向任何人汇报;有机会整天从一张白纸开始编程。—个编程员做他该作的事情的机会”。但他未答应。但是我一直坚持,一年以後,我终於说服他屈驾来id看一看。当时我正在研制Quake。从Doom到Quake是我们迈出的极大的—步。我知道我该在哪里结束,但我—点也不知道如何到达那里。我试过很多很多的方法,即使是失败了也让我学到了许多东西。—定是我的热情感染了他,因为他接受了这项工作。

  於是开始史诗般的编程。数十万行的代码编出来,重编,再重编……。

  此刻回想,我感到Quake的许多方面都有遗憾之处, 但那只是—个杰出的人不愿轻易地承认它技术上的成功而已。的确, 一年以後, 我可能会发现Quake中的某些地方有待改进。但现在对我来说,它看起来依然非常好。我们使它引人入胜。我很高兴Michae1在他正在发行的文章中描述了许多Quake的技术,我希望我们能够教给别人一些。当—个非编程人员听说我允许发行Michael的文章和源代码时,我总见到一幅目瞪口呆的面孔——“你那样做想十什麽?”。他们不会明白的。

  编程不是一个零和一的游戏,教给你的同行一些东西并不会丢失它们。我与人分享我能做到的一切时觉得很高兴,因为我深深地热爱编程。一辆法拉利小车不过是一种物质享受,但做人最重要的是真诚。

  这本书包含了许多最初的文章,正是它们帮助我开始我的编程生涯。对於後面这些文章内容的出版,我希望我所做的努力能为其他人起到同样的铺路石的作用。

原创粉丝点击