海's profile大海的世界PhotosBlogLists Tools Help

Blog


    6/17/2007

    DOOM之父:John Carmack

       对于现在的孩子们来说,也许CS就是主视角射击游戏的代名词。但对于一个较早接触电脑游戏的玩家而言,也许永远不会忘记输入 " iddqd" 和 "idkfa" 然后在迷宫里火拼直到头晕恶心呕吐在键盘上。我个人对于ID出品的游戏一向热衷,最近每天晚上仍在密闭的铁皮罐儿里和僵尸怪物不断做亲密接触,对于John Carmack的敬仰之情从来都有如滔滔江水的。一句话:在我心中他就是上帝就是神仙或者别的什么东东。比起他的成就来,更让人敬佩的是他的专注。“卡马克只活在当前时刻。专注,是他力量的源泉。他心中既没有对未知前途的憧憬,也没有对似水年华的追忆,他的注意力全部集中于如何解决眼前错综复杂的编程问题。他不保留任何过去的事物,不管是照片和记录,还是游戏或软盘,他甚至连他的处女作--[鬼魂]和[造影]--都没有留一份拷贝,他没有校园年鉴可唤起他学生时代的回忆,他也不保存刊登过他早期作品的杂志。他只有当下要用到的东西。他的卧室由一盏台灯、一个枕头、一条毯子和一堆书组成,甚至没有床垫。他什么都没从家里带出来,除了咪子(Mitzi),继母送给他的一只猫。”作为id software的创始人及主程序员,约翰-卡马克几乎以一己之力编写了DOOM 及Quake 1,2,3代的引擎。其中颇为经典的Quake II引擎曾经被无数的主视角射击游戏的开发商们购买并使用,DOOM III的引擎也以出色的光影效果以及画面表现力引领着业界潮流。即便是今天看来粗糙无比的DOOM,在当年也是一款开天辟地的作品。卡马克见证了计算机图形技术发展的每一阶段历史,当年微软开发DirectX的时候比尔盖茨也要先征求卡马克的意见,可以说id公司在图形方面的技术直接引导了PC机显示卡的发展,而没有约翰卡马克就没有id software。是他带给了我们绚丽多彩的三维世界。 如果你认为卡马克不是这个星球上最棒的图形程序员,那么千万不要表露出来,否则你会被别的程序员认为脑子有问题。想想吧,在当年那个漆黑一片,只有白色的DOS提示符的屏幕上,在当年PC机那可怜的性能下,没有API,没有OpenGL,创造出一个五颜六色的三维世界是一件多么了不起的事。卡马克曾说,他在DOOM中所使用的空间坐标系在一个科班出身的图形程序员眼中是如此的蹩脚,但他凭借着勤奋和自律,凭借着全身心的投入,把一个运行如飞的DOOM引擎展现在了世人面前。卡马克喜欢那种完全融入到工作中的感觉。这时的他很开心,他根本不会去想以后会怎么样,如果能就这么编写代码并且有足够的钱买比萨和书,他就很满足了。他早就说过,只要给他一台计算机,一些比萨和可乐,哪怕把他锁到柜子里,他也可以自得其乐。常人难以想象的专心和投入给他带来了常人难以想象的成就。一般人总是想着"我要拥有法拉利,所以要努力奋斗",而卡马克只是每天都在做着自己真正想做的事,从没间断过,如今他已经是拥二十几辆法拉利的家伙了。

        但是,话说回来,id的成就并不能归功于卡马克一个人。如果没有罗梅洛,也可能就没有今天的id。卡马克和他,一个精于技术,一个善于经营。一个内敛专注,一个热情豪迈。不可否认是罗梅洛把卡马克的技术和引擎发挥到了极致,是他发挥出了引擎的商业价值。这个世界是商业的。谁都知道自从罗梅洛离开id以后,id就一直在走下坡路。主视角射击游戏老大的地位再也不是不可动摇的了。看看雪乐山的Counter-Strike吧,几乎全世界每一个有PC机和年轻人的地方就会有反恐精英的身影。valve小组的half-life引擎从性能上来讲是比不上quake II的,但玩CS的玩家是玩Q3A玩家的成百上千倍。CS风靡全球后,valve的half-life2引擎在物理模型的真实度方面开创了一个新纪元,这个引擎已经不能说比DOOM III的逊色了。技术并不是一切,也不等于金钱。这个世界就是这样。在计算机技术飞速发展的今天,再也不会有第二个id,再也不会有第二个约翰卡马克。天才总是很少,不然就不会叫做天才。任何一个想像卡马克或是比尔盖茨一样改变全世界的家伙无疑会死得很惨。不过抽个空yy一下幻想一下倒也不错!

    John Carmack , 偶像就是偶像!

    最近重游DOOM3,于是写了这样一篇东西,

    虽然大部分是摘抄的吧……

    发在这里好了

    时常过来瞻仰一下

    便又有了动力!

     

    [转]John carmack密码:0x5f3759df

    有人在Quake III的源代码里面发现这么一段用来求平方根的代码:

    /*
    ================
    SquareRootFloat
    ================
    */
    float SquareRootFloat(float number) {
        long i;
        float x, y;
        const float f = 1.5F;
        x = number * 0.5F;
        y  = number;
        i  = * ( long * ) &y;
        i  = 0x5f3759df - ( i >> 1 );      //注意这一行
        y  = * ( float * ) &i;
        y  = y * ( f - ( x * y * y ) );
        y  = y * ( f - ( x * y * y ) );
        return number * y;
    }
    0x5f3759df? 这是个什么东西?学过数值分析就知道,算法里面求平方根一般采用的是无限逼近的方法,比如牛顿迭代法,抱歉当年我数值分析学的太烂,也讲不清楚。简单来说比如求5的平方根,选一个猜测值比如2,那么我们可以这么算
    5/2 = 2.5; 2.5+2/2 = 2.25; 5/2.25 = xxx; 2.25+xxx/2 = xxxx ...
    这样反复迭代下去,结果必定收敛于sqrt(5),没错,一般的求平方根都是这么算的。而卡马克的不同之处在于,他选择了一个神秘的猜测值0x5f3759df作为起始,使得整个逼近过程收敛速度暴涨,对于Quake III所要求的精度10的负三次方,只需要一次迭代就能够得到结果。
    好吧,如果这还不算牛b,接着看。
    普渡大学的数学家Chris Lomont看了以后觉得有趣,决定要研究一下卡马克弄出来的这个猜测值有什么奥秘。Lomont也是个牛人,在精心研究之后从理论上也推导出一个最佳猜测值,和卡马克的数字非常接近, 0x5f37642f。卡马克真牛,他是外星人吗?
    传奇并没有在这里结束。Lomont计算出结果以后非常满意,于是拿自己计算出的起始值和卡马克的神秘数字做比赛,看看谁的数字能够更快更精确的求得平方根。结果是卡马克赢了... 谁也不知道卡马克是怎么找到这个数字的。
    最后Lomont怒了,采用暴力方法一个数字一个数字试过来,终于找到一个比卡马克数字要好上那么一丁点的数字,虽然实际上这两个数字所产生的结果非常近似,这个暴力得出的数字是0x5f375a86。
     
    Lomont为此写下一篇论文,"Fast Inverse Square Root"。
    John Carmack, ID的无价之宝。
    6/12/2007

    Carmack宣布新一代引擎技术

    在日前的Apple 2007全球开发人员会议上,id software合作创始人John Carmack出人意料地演示了id最新一代引擎技术。该引擎被称为id Tech 5,将用于idsoftware未来的游戏中,并可以作为第三方授权,支持PlayStation 3, Xbox 360, PC和Mac多平台开发.

    Carmack首先对该引擎技术作了介绍:"过去几年来id一直在秘密开发下一代技术和相应的游戏...这是我们首次公开演示该了技术。"

    id Tech 5引擎Demo演示为一段沙漠山谷中的赛道场景,场景中有旗帜,观众,赛车等等。根据Carmarck说,该引擎使用了超过20GB的独特纹理。"我们这儿所获得的整个世界有独特的纹理,这条赛道包括20GB的纹理。开发人员和美工可以修改整个场景,比如说山顶的颜色,将名字刻在岩石上。他们可以随心所欲地在物体表面上改变,对游戏没有任何影响。"

    而MacRumors网站则称,Carmack还指出这个Demo仅仅花了10天时间完成。

    从相关新闻稿来看,id Tech 5"实际上消除了过去对美工和设计人员的纹理内存限制,允许在像素级别上对整个游戏世界实现独特的定制设计,并提供了几乎无限的视觉真实性。"该技术可以允许"广袤的户外场景,而室内场景则具有前所未见的艺术细节。"

    以下是id Tech 5引擎Demo中的一些截图(光影效果很好,远景有CG的感觉了,继续向电影级画质前进!):
     

    如今能被成为神人的屈指可数,Carmack绝对称的上是其中之一,敬佩之情犹如滔滔江水…………

    6/8/2007

    昨晚在住处听到知了叫了

    很早就想注意知了到底什么时候开始叫了(以俺自己听到的第一声为准),似乎它开始叫了,才证明炎炎夏日的真正到来。昨晚下班在宿舍切西瓜,忽然就听到了知了的叫声,嗯,印象里面应该是今年入夏以来听到的第一声,记录一下。今晚该铺凉席了。
    地里西瓜枝连枝,夏日炎炎蝉先知。
    6/4/2007

    回顾5月25日,“据传,特大利空!”

    今天老妈给俺发了个短信,说股市仍然是绿的一塌糊涂,她老人家的股票依旧是跌停状态中,想出都出不去,只能等着被套了。俺只能回短信安慰一下,同时自己也倍感郁闷,心想这股民也够可怜的,被政府“和谐”的那叫一个无奈。福无双至,祸不单行,这边还没郁闷完,那边一朋友又发来一条消息,俺看了以后顿感火大,同时为那些被政府玩儿弄与掌股之中却浑然不觉的股民悲哀一下。
     
    独乐不如与众乐,这就拿上来给大家分享(说明,编辑笔误,最后应该是2007年5月29号,不是2005年,因为消息发表日期就是2007年5月25日):
    ------------------------------愤怒的分割线----------------------------------------------------
    回头看一下,5月25日在个大论坛都可以看到的一条传闻,可笑啊,可悲啊,我们这么信任的管理层,出尔反尔,毫无诚信,用最卑劣的手段,辟谣,充分给利益集团胜利逃忘的时间,对广大小散,蒙蔽,利诱,暗下黑手,最终全盘斩尽!

    公信,诚信,原本我就不信,这次可好,我更坚定了。

    ======以下原文=======

    据传,特大利空!

     据可靠消息,上层要求入市的社保资金、和房屋维修资金等政府性资金务必于07年5月23日前退出股市,最迟不得迟于2005年5月29日。

    http://cn.biz.yahoo.com/070525/124/mdw5.html 


    ------------------------------愤怒的分割线----------------------------------------------------
    大家看看GOOGLE的链接把,看看发贴的时间,就知道这是事实,且蓄谋已久。 痛心。这就是为什么要避谣的原因,因为消息泄漏了,为了防止散户根据泄漏的消息提前离场,就通过避谣稳住散户,好让特殊资金有时间从容退场.从所有的证据来看,绝对是有提前向特殊资金打过招呼,并且时间点都是一天不差.消息泄漏给散户后,避谣就是为了稳住散户.我们不惧怕正常的市场调整,但我们不容忍依靠黑幕剥夺散户财产。
    随便找了下面这个帖子,发现很多人当时还是不相信(说实话当时俺要看到这条新闻,估计也不相信)。所以说在中国过炒股就是靠消息啊,别的都是白扯.
     
    话又说回来,政府会救市吗?6月1日庄家对股价的继续打压,超出了政府预期,这正是逼迫政府出面,大家想一想,政府会出面救市吗???!!!如果不救,庄家会继续打压股价。胁散户以令政府,政府会屈服吗?看看半夜鸡叫的发布信息模式,大家就知道了,总之不管结局如何,散户永远是利益纷争的牺牲品,所以现在观望为妙。
    正所谓无可奈何花落去,大势已去,建议大家在反弹中果断离场减损,越快越好,因为庄家同时也在离场,要赶在他们前面。
    留得青山在,不怕没材烧,机会随时有,只要你还有本钱。前期有获利的还好,当少赚了,没利润的千万果断,庄家陪的是利,你们陪的是本,少输当赢......
    个人感受:阿弥佗佛,保佑散户逃过一劫,尤其是那些拿养老钱、养命钱炒的大叔大妈们大爷奶奶们.....
    庄家将在你们的反弹期望中,把筹码彻底转移到散户手中……