约翰·卡马克和他的id Software
John Carmack
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的更多相关文章
- 卡马克揭开VR延迟背后的真相
原文:http://oculusrift-blog.com/john-carmacks-message-of-latency/682/ 延迟是OculusVR所面对的最大挑战之一, 它不仅会分散玩家 ...
- sqrt开平方算法的尝试,是的看了卡马克大叔的代码,我来试试用C#写个0x5f3759df和0x5f375a86跟System.Math.Sqrt到底哪个更强
今天笔试遇到一个代码题,要求写一个开平方算法,回来发现了雷神之锤里的一段神代码: float Q_rsqrt( float number ) { long i; float x2, y; const ...
- 转:一个Sqrt函数引发的血案
转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...
- [转载]求平方根sqrt()函数的底层算法效率问题
我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然 ...
- Sqrt函数高效实现
转自一个Sqrt函数引发的血案 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来 ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- 一个Sqrt函数引发的血案(转)
作者: 码农1946 来源: 博客园 发布时间: 2013-10-09 11:37 阅读: 4556 次 推荐: 41 原文链接 [收藏] 好吧,我承认我标题党了,不过既然你来了, ...
- 一个Sqrt谋杀触发功能
我们平时常常会有一些数据运算的操作,须要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是怎样实现的?就拿最常常使用的sqrt函数来说吧.系统怎么来实现这个常常调用的函数呢? ...
- 牛顿迭代法(Newton's Method)
牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.但是,这一方法在牛顿生前并未公开发表. 牛顿法的作用是使用迭代的方法来求解函数方程的根. ...
随机推荐
- Python入门:逻辑判断与运算符
这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...
- python response.text和response.content的区别
1.重点理解 response.text返回的类型是str response.content返回的类型是bytes,可以通过decode()方法将bytes类型转为str类型 推荐使用:respo ...
- HttpURLConnection、HttpClient和Session
原文地址:http://www.cnblogs.com/kross/p/3615695.html 一直没弄懂Session,cookies什么的登陆验证到底是怎么回事,昨天分别用HttpURLConn ...
- wai
外键的过滤是怎么做的, 一个class有两个外键A和B,其中A又是B的外键,在这种情况下,比如A选择了学校之后,可否在B中过滤出A学校的所有的专业?也就是说在选择的时候能不能按照已经填好的一个选项来选 ...
- three.js:Failed to execute 'texImage2D' on 'WebGLRenderingContext解决方案
three.js加载图片时,出现Failed to execute 'texImage2D' on 'WebGLRenderingContext .Tainted canvases may not b ...
- Mysql innodb 间隙锁 (转)
MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面. 间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记 ...
- 用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
在项目开发中经常遇到要选择的按钮,选择完之后被选择的按钮的背景色会发生变化,表示被选择 样式图如下: 每点击一个数字,相应的背景色变为蓝色,其他的依旧是白色,先用JavaScript实现 html代码 ...
- Windows系统下Log4Net+FileBeat+ELK日志分析系统问题总结
问题如下:1.FileBeat日志报 "dial tcp 127.0.0.1:5544: connectex: No connection could be made because the ...
- Homework 1_SQL Server中由于外键约束而删除数据失败
SQL Server中由于外键约束而删除数据失败 原因分析:外键约束问题.在配置文件中配置了一对一的关系,外键也是唯一的.数据库中数据有严格的依赖关系. 而在业务逻辑中,在往数据库里删除数据之前,却忘 ...
- MT【161】韦恩图
(清华2017.4.29标准学术能力测试25) 若$N$的三个子集$A,B,C$满足$|A\cap B|=|B\cap C|=|C\cap A|=1$,且$A\cap B\cap C=\varnoth ...