John Carmack

上帝花了6天创造了这个世界,id software和它的创始人、引擎师约翰·卡马克(John Carmack),则用6款游戏创造了个人电脑的3D世界。

  1992年,id做出了《德军总部》,将JC在90年实现的平滑滚动效果利用到极致,逼真到普通用户第一次在PC上面模拟真实的世界。

   1995年,id发布《DOOM》,让电脑进入3D世界,DOOM勾画出了从来没有过的逼真场景,让玩家相信他就在《DOOM》的世界中。同时 《doom》是第一款支持连线的游戏。之后的《DOOM2》、《Ultimate DOOM》、《毁灭公爵》等游戏都是基于这个引擎,从此个人电脑上有了 虚拟的世界。

  1996年,id发布《Quake》,让电脑第一次运行真正的3维世界,将逼真性再上一层。并且首先支持了3D加速卡。

   1997年,id发布《Quake II》,实现了动态的光线,个人用户从而第一次在自己电脑上可以看到同样物体动态效果下的不同颜色。而且首先支持 OpenGL标准和完全3D加速,从此游戏画面可以精确到用像素来填充了。后来基于Q2引擎开发的《Half-life》、《Conter- Stirke》、《DOD胜利之日》都大红大紫。

  1999年,id发布《Quake III Arena》,使用了JC的 Trinity(三位元)引擎,从而使电脑游戏可以几乎无限的绘制多边形并加以填充——因为JC实现了“圆”,《QuakeIII》中,人们第一次在3D 世界中看到了真正圆形的东西。而后来发布的《重返德军总部》和《使命召唤》都是基于《Quake3》的Trinity引擎编写的。从此,个人电脑上可以几 乎乱真的渲染出3D的画面。

每次id发布游戏,都能让3D游戏上一个台阶,都能让普通用户电脑上显示的3D画面向真实的世界跨进一大步。每 次JC写出他的引擎,都能在3D界保持数年的领先,让各大硬件厂商追逐他的标准。2004年8月,id正式对外发布了《DOOM3》,这是id有史以来开 发周期最长的游戏,从2000年立项,用了足足4年才开发完成。

  出生于德克萨斯州的约翰·卡马克与许多电脑天才一样,从小就对电脑和程 序设计充满狂热,七年级时的卡马克对《创世纪》和《巫术》等游戏痴迷不已,他刚开始制作的几个基于Apple II的小游戏都在模仿《创世纪》。天才们的 另一个相同点是绝对不会循规蹈矩,卡马克中途放弃了在密苏里大学就读计算机科学专业的机会,开始了自己艰辛的创业之路,为了获取Softdisk公司的程 序员职位,他在雪地中徒步走了三英里才得以赶到招聘地点。这间汇聚了众多程序设计精英的公司一如当年的“仙童”,约翰•卡马克在这里 结识了约翰•罗梅洛,汤姆•豪尔等意气相投的好友,随后他们一同返回德克萨斯建立了自己的游戏公司—— id Software。

  卡马克是一个天才的程序设计师,仅仅依靠自学和钻研掌握了高深的程序设计技巧,他甚至相信可以用编程完成一 切。他腰缠万贯,拥有20多辆豪华跑车,却仍然如同普通员工一样每每加班到深夜。如果说,有一个人能够引导整个行业的技术潮流,让所有人跟随着他的脚步, 按照他指引的方向前进,那么这个人就是约翰·卡马克。

  盛名之下的id,目前仅仅拥有13名固定员工,闪耀着黑曜石光辉的办公大楼下的停 车场里停泊着13辆法拉利跑车,公司的每一名成员都是令无数人眼红的百万富翁,很多人因此忘记了,他们也是一群追逐游戏制作领域最尖端技术的天才设计师。 独力开发的精良图像引擎已经成为id的一项标志和衡量主流硬件配置的参照物,从初试锋芒的《Wolf3D》到震惊世界的《DOOM》,再到延续id精神的 《Quake》系列,从1990年2月1日公司建立之日起,id始终扮演着一位为追求速度与技术飞跃而无所畏惧的勇猛斗士。

约翰·卡马克和他的id Software的更多相关文章

  1. 卡马克揭开VR延迟背后的真相

    原文:http://oculusrift-blog.com/john-carmacks-message-of-latency/682/ 延迟是OculusVR所面对的最大挑战之一,  它不仅会分散玩家 ...

  2. sqrt开平方算法的尝试,是的看了卡马克大叔的代码,我来试试用C#写个0x5f3759df和0x5f375a86跟System.Math.Sqrt到底哪个更强

    今天笔试遇到一个代码题,要求写一个开平方算法,回来发现了雷神之锤里的一段神代码: float Q_rsqrt( float number ) { long i; float x2, y; const ...

  3. 转:一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...

  4. [转载]求平方根sqrt()函数的底层算法效率问题

    我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然 ...

  5. Sqrt函数高效实现

    转自一个Sqrt函数引发的血案 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来 ...

  6. C/C++ 开源库及示例代码

    C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...

  7. 一个Sqrt函数引发的血案(转)

    作者: 码农1946  来源: 博客园  发布时间: 2013-10-09 11:37  阅读: 4556 次  推荐: 41   原文链接   [收藏]   好吧,我承认我标题党了,不过既然你来了, ...

  8. 一个Sqrt谋杀触发功能

    我们平时常常会有一些数据运算的操作,须要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是怎样实现的?就拿最常常使用的sqrt函数来说吧.系统怎么来实现这个常常调用的函数呢? ...

  9. 牛顿迭代法(Newton's Method)

    牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.但是,这一方法在牛顿生前并未公开发表. 牛顿法的作用是使用迭代的方法来求解函数方程的根. ...

随机推荐

  1. mac下使用marsedit写博客

    在Windows习惯了使用Windows live write写好博客,然后发布上去,到了mac下,发现了一个很好的替代品  MarseEdit 下载安装后,打开出现如下解码,选择 I already ...

  2. 通过分析java heap dump解决生产问题

    最近在生产环境遇到一个问题,正常情况下,ECS CPU始终保持在10%以下,内存也只占用40%左右,但是连续2天出现了CPU占用100%的情况,然后系统卡住.看阿里云的ECS监控,能看到CPU飙到了1 ...

  3. [转帖漫画]什么是 MD5 算法?---摘要算法 具体算法 一直搞不清楚

    漫画:什么是 MD5 算法? 2017-10-05 20:16 来源:伯乐专栏作者/玻璃猫,微信公众号 - 梦见 好文投稿, 请点击 → 这里了解详情 梦见 摘要哈希生成的正确姿势是什么样呢?分三步: ...

  4. poj 3254(状态压缩DP)

    poj  3254(状态压缩DP) 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相 ...

  5. GCC 提供的原子操作

    gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作. 其声明如下: type __sync_fetch_and_add (type *ptr, typ ...

  6. Java:JUnit4使用详解

    对于Junit的总是一知半解不太懂,现在认真梳理一下: 此次针对的是Junit4版本,注解也是在Junit4版本才有的,之前的版本并无注解功能.而注解开发基本上被认为是一种优秀的设计,所以我们写单元测 ...

  7. iPhoneX设计尺寸和适配

    被iPhone X刷了一天屏,到下午实在受不了各种假帖.标题写着“iPhone X 适配.指南.设计稿” 内容却是发布会回顾和手机介绍.索性自己去官网找素材写一篇只针对iPhone X适配的贴子,与设 ...

  8. Java参数引用传递之例外:null

    今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化. 原来是null作为参数传递的时候,就不是引用传参了. 引自:http://blog.cs ...

  9. 【LaTex】随便学学,

    教程 http://blog.csdn.net/u014803202/article/details/50410748 一个数学公式编辑器 http://latex.91maths.com/

  10. 【BZOJ1858】序列操作(线段树)

    [BZOJ1858]序列操作(线段树) 题面 BZOJ 题解 这题思路很简单,细节很烦,很码 维护区间翻转和区间赋值标记 当打到区间赋值标记时直接覆盖掉翻转标记 下放标记的时候先放赋值标记再放翻转标记 ...