约翰·卡马克和他的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) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.但是,这一方法在牛顿生前并未公开发表. 牛顿法的作用是使用迭代的方法来求解函数方程的根. ...
随机推荐
- vue2.0 keep-alive 最佳实战(转载)
1.基本用法 vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗 <keep-alive> <component> <!-- ...
- linux安全配置学习
参考摘自https://www.cnblogs.com/hiccup/p/4300963.html 1.关闭icmp请求 #vm虚拟机是130地址,通过echo 1 > /proc/sys/ne ...
- HDU 2086 A1 = ?
http://acm.hdu.edu.cn/showproblem.php?pid=2086 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci ( ...
- Three.js入门篇(一)创建一个场景
上一面讲述了向场景中添加物体对象.这一篇准备把每个功能点细细的讲述一遍,一方面是为了加深自己的理解.另一方面希望能够 帮助到有需要的人. 一.在学习WEBGL的时候,你应该先了解要创建一个WebGL程 ...
- [转帖]ssd固态硬盘的Trim命令是什么?
ssd固态硬盘的Trim命令是什么? 收藏 分享 邀请 许多用户朋友在购买SSD的时候都会特别强调Trim,不过Trim是什么?做什么用的? 什么是Trim? Trim指令也叫disable ...
- Anaconda多版本Python管理以及TensorFlow版本的选择安装
Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...
- java 数据结构与算法---树
一.树的概念 除根节点外,其余节点有且只有一个父节点. 1.度 节点的度:每个节点的子节点个数. 树的度:树内各个节点的度的最大值. 树的高度(深度):树中节点的最大层次称为树的深度. 节点路径:一 ...
- ajax极简教程
一.什么是ajax ajax即异步JavaScript和XML,它是一种用于创建快速动态网页的技术.作用是通过在后台与服务器进行少量数据交换,使网页实现异步更新.这意味着可以在不重新加载整个网页的情况 ...
- java将字符串存入GridF并通过id或文件名查询
import static org.bson.codecs.configuration.CodecRegistries.fromProviders; import static org.bson.co ...
- MySQL-常见数据拆分办法
在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库操作.那么我们常见的拆库手段有哪些呢? 我这里提供几种解决办法: 1. 使用mysqldump 把表逻辑倒出,然后再source 到其它地 ...