谁是最伟大的游戏程序员?提起游戏届的传奇制作人,我们可能最容易想到马里奥之父宫本茂,今天介绍的这位主人公,则是公认的游戏届最伟大、最具传奇色彩、最有公益精神的程序员,被誉为“FPS游戏之父”、“3D游戏图形设计之父”、“首款游戏引擎缔造者”、“MOD社区开源发起者”、“VR游戏先驱”,他就是传奇游戏公司id Software的创始人约翰·卡马克。
约翰·卡马克于1970年出生于堪萨斯城,父亲是当地电台的主播,受益于七十年代电子技术的快速发展,卡马克在小学的时候接触到此生唯一的信仰——计算机,8岁的时候,卡马克接触到了日本游戏设计师西角友宏开发的《太空入侵者》,是最早的固定射击游戏之一,成为了街机游戏史上的里程碑。
10岁的时候,卡马克沉迷于《吃豆人》(Pac-Man),由南梦宫的游戏设计师岩谷彻开发,卡马克回忆自己童年非常喜欢玩游戏,正是通过游戏走上了计算机编程之路,当时他最钦佩的游戏制作人就是任天堂的传奇设计师宫本茂。
不过相比于游戏设计,卡马克更希望从计算机技术的角度,来对游戏进行创新设计;14岁时,卡马克和朋友偷偷闯入一所大学,偷走了学校的电脑,原因则是大学里新购置了乔布斯发布的Apple II电脑,Apple II是苹果公司开发的第二款产品,也是第一款集成彩色图形和声音功能的个人电脑,非常适合游戏和教育软件的开发。
为了成功偷走Apple II,卡马克自己精心调制了一种铝热剂和凡士林混合物,将学校窗户融化才得手。虽然卡马克没有惊动任何人,但是这所大学安装的是无声监控器,随后卡马克被逮捕送到接受精神评估,被判在青少年之家服刑一年。在这一年中,卡马克自学成绩优异,出院后成功考取密苏里大学堪萨斯城分校的计算机专业,来到大学后,卡马克发现大学教的知识简直烂透了,于是仅仅只读了两个学期,就从学校退学,成为一名自由职业程序员。
J方对卡马克的精神评估报告说,卡马克就像是一头野兽,没有任何的同理心,故事发展到这里,一位有案底、从大学辍学、精神轻微异常、性格非常怪异的19岁年轻人,可能在很多保守的人看来一生已经废了,但是卡马克的传奇生涯才刚刚开始。
在路易斯安那州的一家电脑公司Softdisk,卡马克找到第一份工作,主要是在公司帮助出售苹果相关的软件杂志,还兼顾卖卖电脑和软件,在公司里,卡马克很快熟悉了Apple II、Apple IIGS、IBM PC 和 Commodore 64 等平台的软件开发。
工作期间,卡马克认识了同事阿方索·约翰·罗梅洛(也是日后的《毁灭战士》之父),罗梅洛是卡马克人生中第一个贵人,罗梅洛非常欣赏卡马克对编程的热爱,但是苦于没有经费来制作软件,于是卡马克和罗梅洛偷偷利用 Softdisk 的设备来开发自己的项目,在每周五下班后,他们会偷偷将公司的电脑装上车,运到他们在郊外租用的房子里,时间久了后,很多同事也被卡马克的项目所吸引,然后加入进来。
约翰·罗梅洛
工作的第一年,两人就和公司的几位志同道合的年轻人,一起制作了第一款游戏《指挥官基恩》(Commander Keen),灵感来自任天堂的超级马里奥兄弟,卡马克开发了一种平滑滚动技术,使PC上的2D平台游戏具备了与主机游戏类似的流畅度。
工作的第二年,卡马克团队发布了《指挥官基恩:梦想机器(Commander Keen in Invasion of the Vorticons)》,成为当时软件市场的热门游戏之一,为卡马克和罗梅洛赚够了启动资金,很快他们就在1991年离开Softdisk,创立一家新公司,这一年卡马克才仅有21岁。
新公司的名字正是id Software,对比其他的游戏公司,id社的名字就是一家非常传统的计算机软件开发公司,卡马克希望公司不仅能够发布伟大的产品,还要在软件技术上有立足之地,在九十年代,计算机硬件和图形处理能力有限(当时老黄还在创业初期),在PC上的横向卷轴很难像主机那么平滑,很多早期的PC游戏采用的是屏幕切换或卡顿式的滚动效果。
超级马里奥就是最早采用卷轴滚动的游戏之一,所谓卷轴滚动,就是指人物移动,屏幕中的场景也随人物而移动切换,当时如果要在PC上实现平滑的卷轴滚动系统,需要高效地处理大量图像数据,对整个屏幕的重绘是非常耗费资源的操作,卡马克利用PC硬件的特性,只重新绘制部分屏幕,就达到了类似于流行街机和主机游戏的那种平滑滚动效果。
第一步卡马克利用局部重绘解决了这个难题,第二步卡马克开发了EGA图形显示技术,这也被视作3D图形加速卡的雏形,这一年老黄甚至还没有开始创立英伟达。为了支持大范围的游戏地图,卡马克的系统采用了有效的内存管理技术,确保在滚动过程电脑能够快速加载和卸载游戏数据,保持高性能。
在早期的PC游戏设计、优化过程中,卡马克继续历史性地推出横向卷轴滚动系统(Side-Scrolling System),仅仅一晚上就在PC上复现了超级马里奥的卷轴滚动技术,当卡马克找到任天堂时,任天堂对PC游戏并不在意。
在如此庞大的PC市场,任天堂不在意,其他还有大把的公司抢着要卡马克的技术,作为一名纯粹的程序员,卡马克是全世界开源软件运动的发起者和倡导者之一,可以说是真·初代源神,直接将这些技术无偿分享出来。
虚幻引擎
在卡马克眼中,横向卷轴滚动技术可能只是一道开胃菜,解决了2D游戏时代的难题,卡马克将目光瞄向3D游戏,这时还没有公司能够做出来3D游戏,原因很简单,当时的计算机算力有限,如果做成3D的游戏,PC很难及时渲染图像,对此,约翰·卡马克决定寻找方法提高游戏速度。
卡马克在游戏时发现,3D游戏运行缓慢的一个原因是需要绘制过多的物体表面,他设想在渲染绘制游戏场景过道时,可以省略地板和天花板只绘制两侧墙壁,这样不仅减少工作量,还能通过将墙壁做成梯形来产生透视效果。
在主视角游戏下,卡马克独辟蹊径地采用了射线投射算法,在玩家的视角范围内发射出无数条射线,只有被射线击中的物体才会被计算和渲染,而视角以外的物体则不予考虑,这样就能模拟出3D的主视角效果,计算机的运算能力得到了最大限度的利用,游戏速度也显著提高。
从2D游戏到3D游戏的里程碑,卡马克仅仅只花了一个半月的时间,不过考虑到他之前也只需要一个月就能做出游戏,这个时间对于卡马克来说也不算夸张,带着这些新技术,卡马克找到朋友,一开始大家觉得卡马克的思路太天马行空,但当卡马克拿到美工的材质贴图把技术跑出来,制作出第一款第一人称视角游戏DEMO《地下墓穴3D》后,所有人都震惊了,罗梅洛提议直接制作一款3D版本的《德军总部》。
1992年,划时代意义的第一人称射击游戏——《德军总部3D》(Wolfenstein 3D),由卡马克作为首席程序员正式发布,创意源自于1981年的Apple II平台游戏《Castle Wolfenstein》和《Beyond Castle Wolfenstein》,这些早期游戏采用了俯视角的视角,并以潜入和战斗为核心玩法,约翰·卡马克和约翰·罗梅洛利用他们在《地下墓穴3D》开发中积累的技术,创造一个更加沉浸式的3D世界。就这样,FPS游戏的开山之作《德军总部3D》于1992年诞生,仅仅三年后,卡马克亲自公开了《德军总部3D》所有源代码。
1993年,卡马克基于《异形》和《恶魔的种子》等科幻作品,推出《DOOM》系列,以独特的视觉风格和音效而闻名,游戏中的敌人和环境设计充满了恐怖和暴力元素,音效和背景音乐增强了紧张氛围。技术上,DOOM初代虽然不是真正的三维游戏,但卡马克通过复杂的算法实现了在二维平面上模拟三维效果,卡马克还开发了动态光影系统,使得游戏中的光源和阴影更加真实,使用“网格划分”(BSP Tree)技术来优化渲染,使得大型关卡能够顺利运行。在游戏发售后的第三年,卡马克也公开了毁灭战士的源码。
1996年,《雷神之锤》(Quake)正式发售,有了德军总部和毁灭战士的经验,卡马克主要负责开发图形引擎,罗梅洛和其他设计师负责游戏设计和关卡制作,卡马克在本作推出了历史第一款采用真正全三维多边形图形引擎的FPS游戏,游戏中的所有角色、物品和环境都是由多边形构建,游戏对互联网多人游戏进行了优化,开创了现代网络对战的先河,支持多达32人的在线对战。在游戏发布后的第三年,卡马克再次公开《雷神之锤》的源码。
这里还有一个小插曲,id社在97年曾被黑客攻击,Quake的源代码被泄露并在地下的Quake社区,一位id社以外的程序员将Quake移植到Linux,随后把核心代码发给卡马克,这些泄露的技术在当时看来价值极高,但卡马克不仅没有起诉泄露者,反而帮助社区完善了代码,并且授权给任意公司都能使用,卡马克甚至还推出Quake的官方Linux移植版本,交给公司的新员工Zoid Kirsch维护,就这样,卡马克不仅成为所有MOD作者心目中的偶像,更是整个程序员届的开源精神领袖之一!
卡马克这些举措极大地推动了开源文化在游戏开发中的应用,卡马克不仅是3D图形游戏的先驱,也深刻影响了整个游戏行业的发展,展示开放源代码不仅不会削弱公司的竞争力,反而可以激发社区的创造力和合作精神,日后几乎所有PC游戏的开发都受到卡马克设计的启发。关于卡马克的技术和他的故事还有很多很多,比如卡马克如何启发半条命、CS系列、COD系列等FPS游戏的制作,QUAKE引擎的发展史,快速平方根倒数算法等等。
2013年,卡马克加入OculusVR,担任首席技术官,参与开发VR游戏,带领团队推出了Ouclus Go和Quest等产品;卡马克透露,早年间山姆·奥特曼还邀请他加入OpenAI,但是以卡马克开源的态度,这辈子都不太可能加入ClosedAI,卡马克当时给出的理由是自己不太懂现代机器学习范式,需要学习一下,也就有了Ilya给卡马克学习AI的那份论文清单。2022年,卡马克进行了360度转向,携手强化学习之父Sutton创业,进军AGI通用人工智能领域,期待卡马克能够继续书写自己的传奇职业生涯!
深度学习入门——图灵奖AI三巨头
AI编年史——深度学习的发展史(收藏向)
AI编年史2——GPT是如何诞生的?
AI学术巨佬——何恺明,从游戏中获得论文灵感
AI领军人物——孙剑,重剑无锋的经典之作
AI传奇巨佬——汤晓鸥,中国人工智能领袖人物!
AI女神李飞飞——从成都七中,到顶级AI科学家!
山姆·奥特曼——从游戏编程,到OpenAI之父!
张益唐——黎曼猜想,华人数学家再创重大突破!
B站大学——线代不挂科,MIT传奇教授的最后一课!
华为——盘古大模型解读,专注“小模型”工业落地!
英伟达——跟着老黄学AI,英伟达官方免费推出AI课!
微软免费AI课程——18节课,初学者入门大模型!
机器学习——科学家周志华,成为中国首位AI顶会掌门人!
机器学习入门——数学基础(积分篇)
机器学习入门——数学基础(代数篇)
机器学习入门——数学基础(贝叶斯篇)
游戏&AI系列:
AI——是游戏NPC的未来吗?
巫师三——AI如何帮助老游戏画质重获新生
AI女装换脸——FaceAPP应用和原理
AI捏脸技术——你想在游戏中捏谁的脸?
Epic虚幻引擎——“元人类生成器”游戏开发(附教程)
脑机接口——特斯拉、米哈游的“魔幻未来技术”
白话科普——Bit到底是如何诞生的?
永劫无间——肌肉金轮,AI如何帮助玩家捏脸?
Adobe之父——发明PDF格式,助乔布斯封神
#gd的ai&游戏杂谈#