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. Scrum 5.0

    5.0--------------------------------------------------- 1.团队成员完成自己认领的任务. 2.燃尽图:理解.设计并画出本次Sprint的燃尽图的理 ...

  2. 转载manifold learning一篇

    我恨自己不干活儿,不过也没辙. 早晚要学习流形的,今天先转一篇文章,以后找不到就尿了. 我真羡慕数学系的人,╮(╯▽╰)╭. 发信人: Kordan (K&M), 信区: AI标  题: do ...

  3. linux shell 执行命令顺序

    1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的 ...

  4. spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

  5. MT【162】渐近估计

    (2017北大优特测试第八题) 数列 \(\{a_n\}\) 满足 \(a_1=1\),\(a_{n+1}=a_n+\dfrac{1}{a_n}\),若 \(a_{2017}\in (k,k+1)\) ...

  6. LaTex Font Size 字体大小

    目录 命令 效果图 命令 LaTex中字体大小由以下命令控制: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LA ...

  7. Linux系统中/opt 和 /usr目录

    重点:usr是Unix Software Resource的缩写,即“UNIX操作系统软件资源”所放置的目录. 下面是个人找到的适合类似我这种从Windows转向Linux小白的文章. Ref:htt ...

  8. CentOS 7安装zabbix-2.4.8监控

    说明: 操作系统:CentOS 7 Web环境:Nginx+MySQL+PHP zabbix版本:zabbix-2.4.8.tar.gz 备注:Linux下安装zabbix需要有LAMP或者LNMP运 ...

  9. CentOS 7.0源码包搭建LNMP方法分享(实际环境下)

    CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14 一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这 ...

  10. 《剑指offer》— JavaScript(16)合并两个排序的链表

    合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. *** 思路 如果pHead1和pHead2中有一个为空,则result是另 ...