Michael Abrash:我是如何加入Valve公司的

译注:本文的作者是Michael Abrash(迈克尔·亚伯拉什),他是计算机图形领域首屈一指的大师! 他是著名的计算机图形编程书籍《Graphics Programming Black Book》的作者,同时也是一位拥有高超编程技巧的开发者。Michale Abrash的职业经历非常丰富,他所效力过的公司包括微软、Id Software、Intel等,参与过的项目涉及操作系统开发、游戏开发、人工智能项目、处理器设计项目等多个领域,同时他当然也是一位杰出的软件顾问和技术专栏作者。Michael Abrash于2011年加入Valve公司,从事游戏相关的研究项目。本文就是他在加入Valve后,对自己的职业生涯的回顾,以及对自己在Valve公司的工作情况的介绍,同时,此文也是一个为Valve招兵买马的招聘贴!(以下是全文)

Michael Abrash

Michael Abrash

一切都是从Snow Crash开始的。

如果我没有了解到Metaverse(虚拟世界),如果我没有被Metaverse(虚拟世界)的构想深深吸引,如果我没有意识到3D网络化离现实是如此地接近,如果我不够自信能有所作为,更重要的是,如果我不是发自内心地想去做,那我就永远不可能有机会来到Valve工作。

那是1994年,我当时已经为微软工作了几年。那年的某天晚上,我的女儿正在Sammamish Plateau的小教授书店翻看各种书籍,我偶尔就注意到了书架上的一本书:《Snow Crash》。我拿起这本书,翻开就读,然后就决定要买下,接下来,只用了一个晚上,我就狼吞虎咽地读完了。看完书以后,我自己开始意识到,书中80%的内容都非常可行,我能在电脑上实现他们!我的心情是如此迫切,对于与做电脑相关的事情,我的急切一如既往。我是个职业科幻迷,这次,我有一个绝佳的机会去自己实现一把科幻!于是,在微软公司,我就着手开始实现一个基于网络的3D引擎项目。

科幻小说《Snow Crash》

科幻小说《Snow Crash

 

就在我心血来潮的时候,我也开始清醒地认识到,自己绝对不会有机会去启动这么一个项目。John Carmack到西雅图来探望他的母亲,当时他刚刚在Id Software搞出了Doom,我趁此机会约他见面一起吃个饭,就在当地的泰国餐厅。我以前只见过Carmack一次,但是他之前就认识我,是因为他在刚开始学PC编程的时候,在《PC Magazine》上读到过我的文章,几年前,我们还在M&T BBS上有过几回文字交流。上一次我和他见面的时候,他问我是否考虑加入Id Software, 这个邀请让我觉得有点惊讶,因为我当时正在忙于Windows NT的交付工作,况且微软在职工优先认证股权方面的待遇也非常地慷慨,所以我拒绝了他。这一次见面,我知道他还是想邀请我加盟,但是我觉得我还是会拒绝他,因为我目前在微软的根基已经挺牢固了,况且微软目前在股权方面的待遇更加优厚了。出乎意料的是,John Carmack跟我聊了两个多小时,却对邀请我加盟的事情只字未提。他只是谈到了些关于可持续性的Internet游戏服务器,以及玩家自己设计关卡,并在他们自己的服务器上运行,还有就是如何把众多的玩家都聚集起来,让他们在一个共同的虚拟空间共同成长等等事情。我意识到了,他所说的正是Metaverse,虽然没有Neal(科幻小说《Snow Crash》的作者——译者著)在书中描写的那么迷人,但是却真实得令人难以置信。有了这个铺垫,当他最后摊牌邀请我加盟的时候,我无法再拒绝了,我不能错过创造未来的机会。

John Carmack, 游戏编程领域的奇才

John Carmack, 游戏编程领域的奇才

 

与John一起工作,就仿佛是《黑客帝国》里的Neo一样,把一种又一种武术技能灌入大脑。我曾经每天晚上都蹒跚走到Id Software的停车场,对我一天的工作感到震惊和不知所措。我每天都在试图跟上John Carmack的节奏,我们在创建一个全新的编程领域:3D,基于Internet的客户端/服务器多人游戏系统,模组,脚本,所有的这些,都只有我们两个程序员负责完成!当然,思考了这些以后,我还要挤出半小时时间,开车回Plano. 所有的事情都以光速前进,根本没有时间停歇和回味。在我到公司的16个月后,Quake就正式完成并交付发售了。不过这一切都是值得的,不仅仅是因为我在编程方面的突飞猛进,Quake开创了一个时代,它可不是什么“最好的游戏之一”,它是一个突破性的技术(对此,需要说明一下,Carmack是杰出的创新家,也是创新的源动力)。该游戏创建了全新的流派,拥有了自己的社区,并且时至今日仍然非常火爆。举个例子,当我后来在Valve工作的时候,我发现有不少的员工,他们的职业生涯是从给Quake做模组,或者在Quake引擎的基础上开发而开始的。像这些员工一样,我也给我自己创造了未来15年的工作机会。

轰动一时的第一人称3D在线对战游戏《Quake》

轰动一时的第一人称3D在线对战游戏《Quake》

 

1996年,Id Software迎来了两位客人,Mike Harrington和Gabe Newell,这两个人刚刚离开微软公司,并创办了一家叫做Valve的游戏公司。他们想购买Quake引擎的源代码,来构建他们自己的第一个游戏。当时,整个Id Software上下没有一个人对源代码授权这种事情感兴趣,甚至大家都懒得理这两个人。鉴于这种尴尬的局面,我出面帮他们搞定了源代码授权的问题。因为我和Mike以及Gabe在微软的时候就互相认识,而且当我刚到微软工作的时候,Mike做了很多他份外的事情来帮助我,因此我才得以在微软生存下来,所以我觉得我现在也应该帮助他们。事实上,源代码授权这件事情后来演变成了双赢的局面,Id Software从授权中赚了很多钱,Valve也在这个源代码的基础上开发了他们的成名作《半条命》(也就是完全不用再多介绍的网络对战游戏《反恐精英》的单机版——译者注),不过,我本人并没有从这件事情中获得经济利益(希望以后会),因为不久之后我就决定从Id Software离职了。我当时的计划是,离职后返回微软工作,不过Mike和Gabe向我伸出了橄榄枝,问我是否愿意加盟Valve,成为第三联合创始人。经过很长时间的思考,我认为自己在小规模的游戏公司待的时间已经足够长了,所以最后我决定返回微软,加入微软自然语言处理组(NLP Group),并在那里工作了一到两年。我在自然语言处理组的时光非常愉快,但是我也意识到,自然语言处理这个课题不是在我有生之年能够彻底解决的。

从Id Software离职后回到微软工作,这个决定既不是我职业生涯中做出的最好选择,当然也不是最糟糕的。Valve的眼光则更加长远,他们一直与我保持着联系,并时不时地询问我,是否做好准备加盟了?14年之后(14年!你知道Valve多有远见和耐心了吧),我结束了我在英特尔Larrabee项目的工作,此时我已经知道Valve推出过很多很酷也很成功的游戏,并且有很多我很喜欢也很尊重的朋友在Valve工作。单凭这些理由,就足以让我放手一试了。所以,在我毫不了解Value的企业文化和组织机构的前提下,我加入了Valve,我只是希望这家公司多少能和我以前工作过的公司一样,不至于让我非常不适应。

Valve公司的联合创始人之一 Gabe Newell

Valve公司的联合创始人之一 Gabe Newell

 

Valve是如此与众不同

我的职业生涯已经接近30年,其中我经历了不同的公司和不同的工作环境。我当过软件顾问,也做过技术专栏作家。我曾经在不同的公司独立开发程序,也曾经与人合作一起开发游戏。我曾经参与的项目包括:操作系统,驱动程序,固件开发,自然语言处理,控制终端以及处理器设计。我曾经为一系列的小型创业公司做过技术顾问,其业务涉及软件和硬件。我曾经为微软工作,也曾经为Id Software工作,还曾经为RAD Game Tools工作。这些公司都很有趣,对于我来说,都给我带来了宝贵的经验,其中的某些经验对我来说至关重要。总的来讲,在技术的领域,我几乎已经涉及过所有可能的领域。

但是Valve却如此与众不同。

Valve公司著名的Logo

Valve公司著名的Logo

Gabe跟我说过这么一件事:当他20世纪90年代在微软工作的时候,他曾经做过一次调查,在用户的个人电脑上究竟哪些软件安装得最多。当时排名第二的软件是,Windows操作系统。

排名第一的是:Id Software开发的游戏Doom

一个来自于德克萨斯Mesquite的10至20人的小公司,他们的创意所产生的软件居然能够超越当时世界上最牛的软件公司(微软)生产的产品,成为最受用户欢迎的软件。这一事实让Gabe对软件生产力的本质理解发生了改变。他从历史的角度审视了组织结构这个问题,他发现,层级式的管理制度最早是从军队中衍生出来的,最早的军队利用这种体系来进行管理,以便让一个1000人的队伍能够机械地翻山越岭,向敌人开枪。当工业革命发生以后,层级式的管理依然有效,因为工业化生产的精髓,就是把每个人看作一个机器的零件,然后确保每个零件准确无误地重复自己的工作。
Doom所造就的成功则完全不属于上述的管理学范畴。因为在Id Software的案例里面,重复的工作几乎没有任何价值。Id Software的所有价值都体现在了如何创造新的事物上。Doom推出以后,会有成千上万的程序员和艺术家会照着Doom的模式推出类似的产品(确实很多人这么做),但是没人能够企及Doom的高度。同样,作为一个程序员,你可以完美地重现Facebook或者Google搜索引擎或者Twitter或者浏览器,或者你可以再次开发类似于《俄罗斯方块》、《愤怒的小鸟》或者《猜字游戏》、《开心农场》等等这些已经大红大紫的应用。但是这样做有什么意义呢?我的观点是:在Internet时代,复制一个软件和大面积传播软件的代价几乎为零,因此,只有软件的首创者才能真正获得所谓的良性循环。

鉴于Valve现在多数的工作都是创新,传统的那种层级式的管理模式就很难适用了。传统的层级管理模式强调的是重复设计和制造同样的产品,然后在不停重复的过程中一点一点地创新(也许就是腾讯说的“微创新”吧——译者注)。如果你想从起步就通过持续地创新进入所谓的“良性循环”,那么层级式的管理模式确实帮不了什么忙。因为在层级式的管理模式下,公司的高层往往是创新的瓶颈,因为你很难指望这帮高层人士能够去提出开发什么与现有产品大相径庭的创新产品,他们的思路往往正好相反,他们更信任现有的产品。实际上,Valve能够吸引那种热爱原创的人们,给他们提供自由的创新平台,这也是他们能留在Valve专心工作的主要原因。所以,在Valve没有正式的管理人员,也完全没有什么分层级的公司结构。

现在,我可以负责任地告诉你,事实就是这样。也许你不太相信刚才我说的话。是的,我一开始也不信。一个300人规模的公司,怎么可以没有正式的管理层呢?但实际上,根据我的观察,新人入职Valve以后,需要6个月的时间才能融入整个团队,其间没有人会告诉他们应该做什么事情,也没有所谓的管理层对其进行复核,在公司里也没有什么升职这种事情,甚至没有固定头衔和职位(不过奖金和分红不会少哦,如果公司合伙人发现公司市值上升的话)。新人自己对自己负责,也只有他们自己对自己负责,来安排他们自己的时间(这也正是公司最宝贵的资源)去找出为公司做出贡献的方法,然后加以实现。如果他们想做一些与众不同的事情,也不需要经过什么管理层的首肯;他们需要做的仅仅是,把办公桌移动到新的项目组所在的位置(办公桌都是带滑轮的,开发用的电脑就放在桌上),然后就开始开发新项目了。(显然他们要自行判断坐在哪个位置比较有利于开展工作,以及便于与他人沟通,但这些都是基于他们的常识判断,没有硬性规定他们必须要怎么做)。项目中的每个人都是独立的贡献者,他们每个人都需要负责编码、美工、关卡设计、音乐等等,甚至包括部分管理工作。这里没有纯管理或者纯构架或者纯设计的职位。公司的任何一个部分都能够随时快速转型,因为没有管理层和职位的束缚,也就不用考虑什么重组计划,重组预算什么的。Gabe其实挺想让公司有个专职管理层的,以处理那些管理方面的事情,但是没有员工愿意签约成为专职的管理人员。

Valve最令人难以置信的就是信任的程度。信任无处不在。Valve所有的源代码毫无疑问地可以被所有员工访问,任何员工都有权限对代码提交修改。任何员工都有权做他们认为值得的事情。Steam工作室就是能够体现这一点的最近的例子。公司的所有员工都能了解到公司是如何运作的,以及公司目前的状况。公司对于员工来说就是透明的。与其他的很多组织机构不同,Valve打心眼儿里就不想让行政因素成为员工与公司的壁垒。公司充分相信员工自己的知道该干什么,以及如何体现自己的价值。

需要澄清的是,Valve并不曾回避软件产品需要开发和交互的事实。我们也是人,团队内部也会对开发什么产品和如何开发产品产生争吵(有的时候争吵还相当激烈),但是大家都是互相尊重的,并且最后一定能够达成一致。当产品接近交货时,也会面临很大的压力和繁重的工作流程,尤其是应付那些主机游戏厂商的产品认证期限(PC游戏的交付会相对灵活很多,多亏了Steam).有时开发团队或者开发人员甚至会徘徊不前,做很多无用功,此时就要靠其他的同事们及时出手把他们拉回正轨。

其次需要说明的是,不要认为在Valve,员工是想来就来想走就走,而且能够为所欲为。在工作时间,如果一个程序员自己决定要搬到一个独立办公室,然后开始织毛线帽,这当然是不OK的(除非这个程序员是想开发一款程序,能够帮助玩家织虚拟的毛线帽,并且成功地卖掉这个产品赚钱,这样就OK了)。员工提交了项目以后,这些项目就由员工自己负责。项目会有项目负责人,但是这些负责人不是正式任命的,也不涉及到什么荣誉或者奖金什么的。负责人是暂时的,当项目更换时,前一个项目的负责人在新项目里也许就仅仅是新项目的一个普通参与者。负责人需要得到项目组的全体人员的认可,认同挑选这个负责人做协调工作对项目最有利。每个项目组内部会自己制定项目测试、代码检入规则、开会的频率(当然不会很频繁),以及项目的开发目标和开发途径。综上所述,各个项目组之间的情况会大相径庭。

你很难想象这样的组织形式居然能够维持正常工作,但实际上我们确实正常地在工作。我想这多少有点儿“进化”的意思。一方面,我们看上去混乱无序,貌似低效,大的IT公司决然不会容忍如此的工作作风;另一方面,我们却开发出无与伦比的产品,达到伟大的成绩,这些业绩也不是靠传统的层级式模式管理的大公司能够做到的。我们让游戏为自己说话,于是有了Steam项目(当然,Steam项目也没有正式的管理层)。Valve的一系列成功,甚至是很多突破性的壮举,都无不证明了这样一个假设的正确性:唯有具有创造力的人才,才是获得成功的关键因素。所以,以这些创新型人才为中心建立起来的松散的公司结构取得了很大的成功!

显然,就像我们定义的那样。Valve是创新人才最适合的聚居地!

 

我的工作

那么,我个人的在公司的经历如何呢?

像我刚才提到的那样,我刚来到公司的时候,对公司知之甚少。别人告诉我关于这个公司的信息,多少和公司的实际情况有所差异。我原以为我来了以后,就应当有一大堆技术工作要做,比如Source 3D引擎中的可见性探测,或者DotA2中的战场雾化计算等等(实际上这些工作我也做了,只是它们并不是主要工作,而只是一些有趣的小优化,日后我会写写这些方面的内容)

除了做技术,我从公司的这些人身上得到的一些建议让我觉得非常新奇,没有人会告诉我应当怎么做,没有直接的指示!我记得最近一次有人给我指示,是我在Source 3D引擎小组工作时,那时整个Source 3D引擎小组都正在为游戏Portal 2做优化工作。我当时已经为这款游戏做了很多优化工作,对该游戏的各项细节也非常熟悉了,所以我建议Jay Stelly,是不是让我也加入Portal 2开发小组,为该游戏贡献自己的力量。Jay回复我说:“好啊!没问题!但是你要知道,我们最终还是要把这个游戏卖出去的。” 当时我不太明白他的意思,但是经过几次类似的讨论后,我意识到了,他的意思是要让我弄清楚,什么才是我能做的最有价值的事情。目前已经有很多有经验有才华的人在为Portal 2做优化了,而我,应该把精力放到更有影响力的产品上去,我需要做别人都做不到的事情。就是因为这段对话,再加上我和公司其他人交流之后,促使我彻底改变了思维模式,并最终将我领入了一个美妙的领域:可穿戴计算技术

所谓的“可穿戴计算技术”,是一种移动计算技术,该技术能够将计算机产生的图像和真实世界的场景融合起来,并一同呈现在用户的眼前(想象《终结者》里面施瓦辛格扮演的终结者的视角吧,就像那样。此外,Google最新启动的Google Glass项目,应该就是可穿戴计算技术的典型例子——译者注)。我们已经潜移默化地从台式机电脑转移到了笔记本电脑,并从笔记本电脑转移到了上网本和平板电脑,这是一个计算设备往随处、随时特性发展的趋势。逻辑计算终端无时不在,无处不在,这就是可穿戴式计算,我很有信心地预计,在未来20年内,该技术就会建立起工业标准,通过眼镜或者接触,或者其他我所知的更直接的神经连接的形式加以实现。我也非常有信心,平台迁移的速度将远远低于20年,最慢10年,最快3-5年。因为该领域最核心的部分:输入、处理/功率/电子器件尺寸,以及输出,这些推进可穿戴计算的关键技术都在顺利发展,尽管目前还有差距,但是前景乐观。

终结者的视角

终结者的视角

 

当然,硬件只是作为软件运行的基础。目前仍有像蜘蛛网一样错综复杂的各种疑问和矛盾亟待解决。例如,如何让软件和硬件能配合工作,可穿戴式的UI如何设计,如何与可穿戴式输入设备进行交互,计算机如何判断用户的位置,以及用户视点的方向,当人类的视觉系统发现一对叠加的物体,其中一个是真实物体,一个是虚拟物体,计算机将如何判断接受哪一个拒绝哪一个?如何界定扩展现实的范围,使之有效?需要什么样性能的硬件设备来驱动软件?诸如此类,种类繁多。每一个问题都非常深奥,值得你不惜一切代价去解决(我希望我能再以后把所有的问题都列举出来)。实际上,我需要提到的是,从广义上来说,通过Quake,我们弄懂了3D图形学,C/S互联网络通信,文件格式,等等,一切都是白手起家做出来的。事实上,我认为可穿戴式计算技术,就像Quake一样,很有潜力成为一个技术转折点,从而改变以往的一切。

实际上,当年我试图开发的Snow Crash科幻游戏,该技术可被看做是我追求的方向上的潜在的巨大的进步。因果轮回,如果我当初没有因为试图开发Snow Crash游戏,从而加入Id Software,那我今天也就不会在Valve做这些事情,甚至Valve也不会开展这些方面的研究。

在我经历了这么多事情,并完成了大量的研究课题后,我决定花些时间评估一下“可穿戴式计算”是否可以作为Valve公司的一个开发领域,这样做对公司会有好处。我把我的研究和结论展示给公司里很多我尊重的人看,结果他们都一致反映,说“可穿戴式计算”是项目值得一试。其主要的理由是,“可穿戴式计算”应该先构建出一套真正的原型,以供搜集信息,然后才评判项目是否能够成功。除此之外,大家就没有其他的意见和建议了,并且我也不需要获得什么“官方认可”。一旦我搜集到了足够的反馈,并达到了我满意的程度,我就直接启动了项目。

停下了来想一想我刚才说的,然后在琢磨琢磨你自己的工作。在Valve,只要我觉得这个事情是有意义有价值的,不出一个晚上,我就可以开启这个项目!酷不酷?

特别说一下,这个项目现在还是“研发”阶段,目前还不到形成产品的程度,而且很可能在很长一段时间里都无法形成最终的产品。所以,拜托不要再传什么“在E3上会推出Steam眼镜”这种谣言了。目前我正在对这个有趣且有前景的项目开展研发工作,并且在研究上的比例要多于开发。在Valve做事的方法就是,动手实践,然后观察结果。实验失败并不是灾难,关键是我们要如何才能快速发现问题,从中吸取教训,并继续向前,开展下一次的实验。这个过程一旦开始,其推进是快速的,并且是迭代的。实验能进行到什么程度,发展到多远,这需要取决于我们从实验中得到的经验和教训。

这同时也取决于谁来做这些实验。团队不停地成长,朝好的方向发展,但是需要实验的问题也种类繁多,我们需要更多的天才加盟。大量的聪明人,硬件工程师,软件工程师,固件工程师,游戏设计师,UI设计师,或者是优秀的程序员和解决问题的高手,工业设计师,机械工程师,电气工程师,系统程序员,电脑视觉工程师,光学工程师,无论什么类型的工程师,我们都很需要。

也许就是你!

如果你有兴趣深入到“可穿戴式计算”课题中去,那么你就是我们需要的人,我写这篇帖子正是为了你!我们需要你,我觉得你也有可能乐意加入我们。不信的话,再读一读这个帖子你就知道了。给我发email吧,我们就可以共同战斗了!

就算我的项目无法吸引你,你也应该仔细考虑一下是不是要加入Valve。我们是一家杰出的游戏公司,也是一家优秀的数字化发行和传媒公司,并且还有很多优秀的特点!我们这里开展各种各样的项目(事实上,你单从我开展的“穿戴式计算”项目,就可以看出我们公司的项目范围有多广),需要各种各样的技能,我们需要动画师,艺术家,关卡设计师,音乐和音效设计师,编剧,网络应用程序员,数据库程序员,其他领域程序员,研究型心理学家,数据挖掘和机器学习专家,统计学家,用户体验工程师,会计,开发者相关人员,各种硬件工程师等等,我们需要的人才甚至不止上述这些。如果你是一流的经济学家,请研究一下我们吧,你会有一个包含四千万用户的沙箱,我保证你绝不会对这个规模的案例感到缺乏挑战。

如果Valve让你觉得还算对胃口(未来我会发一篇文章,专门讨论Vavle在招聘时如何招人的细节),那么就赶快飞奔来联系我们吧(记住要跑过来,不要散步散过来哦)!

我们已经迫不及待地要跟你交谈了!

打赏支持我翻译更多好文章,谢谢!

打赏译者

打赏支持我翻译更多好文章,谢谢!

1 收藏 评论

关于作者:黄小非

黄小非:毕业于重庆大学计算机系,南开大学软件工程硕士,SCJP。 目前在一家国企信息中心任职软件开发工程师。主要技术兴趣为Java平台相关技术、系统构架、C/C++、计算机图形学等。(新浪微博:@黄小非) 个人主页 · 我的文章 · 65 ·  

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部