第六十五章 杰斯特卷轴算法
两人的聊天结束之后,实在是太困的马克?塞尼便打着哈欠去了休息室睡觉了。
杰斯特倒是坐在之前马克?塞尼坐的那张椅子上,看着电脑沉思了起来。
在个人电脑上完成卷轴效果他确实可以做到,他在重生前就看过卡马克卷轴的算法,这是一种非常巧妙的方法,能够在当时并不适合做游戏的pc上,完成像是街机一样的卷轴动画效果,不过……
杰斯特想到了一件事,这让他有些犹豫。
众所周知,pc游戏诞生的很早,但pc游戏真正的开始被人接受,能够在质量上跟那些精致的家用机或者是街机游戏放在一起做对比,却是从卡马克卷轴算法诞生之后开始的。
卡马克卷轴算法这也是个人电脑历史上的两座里程碑之一,后世无数的游戏,无论是个人电脑,街机亦或者是家用机,都无数次的使用过这个卷轴算法。
而且,这两座里程碑都跟卡马克有关,一次就是他的这个卷轴算法,而另一次就是他完成的世界上第一款真正意义的3d引擎。
他的这个创举,让游戏者制作者们可以在pc上完成他们之前梦寐以求,但却无可奈何的种种设想,pc上第一款在任何一个方面都不逊色家用机的游戏正是因为卡马克卷轴的诞生而诞生的,这款游戏也是动作冒险类游戏的始祖,《波斯王子》。
后世读卡马克的传记的时候杰斯特最佩服卡马克的一点,就是他是一位真正的程序员。
这里说的程序员可不仅仅是能码代码的码农,而是具有无穷的创造力,想象力,并且能够将这些完成为一个个不可思议的程序,但却丝毫不将这些程序视为自己的禁-脔的程序设计师。
是的,卡马克是一个坚定的程序开源者,他所制作的每一个程序都是不申请专利,并且开源出来允许任意人使用的,最著名都是莫过于阀门的《半条命》就是用的卡马克为《雷神之锤》编写的引擎,而且并不需要缴纳授权费用。
这是因为当时信心满满的g胖在看了《雷神之锤》的演示之后发现,他们这些人无论如何也做不出能完成这种效果的3d引擎,也正好g胖的一个朋友在id给卡马克当小弟,所以顺利的从id拿到了雷神的引擎。
这样,才有了fps在《雷神之锤》之后最具有里程碑意义的作品的问世。
甚至关于卡马克卷轴还有一个关于他对程序开源态度方面的故事。
当时卡马克在一家游戏杂志工作,他完成了卷轴效果,并且在一名画师同事的帮助下将《超级马里奥》的第一关给完美复制到了一台电脑当中。
然后,他的老板看到了卡马克演示的游戏效果,只是随口说了这么一句话。
“喔!你应该去申请个专利。”
没想到的是,卡马克怒立即从座位上站起来,用手指指着他老板的鼻子,然后不可歇的吼道:“去他-妈的什么专利!如果你再敢跟我提什么专利,我立马走人!”
没过多长时间,卡马克在约翰?罗梅罗的怂恿下,真的辞职了。
所以,对卡马克这种天才杰斯特是既想用,但又不想用的,他的确能够完成很多其他程序员连想都不敢想的事情,问题是他那特别的对于程序开源的信仰是任何一个游戏公司的老板都不能忍受的。
你能忍受自己公司好不容易研发出的游戏引擎被开源后,无偿被所有人使用?
如果杰斯特是一个游戏爱好者或者是独立游戏制作人的话,他会视拥有这种精神的卡马克是神,但他现在不是,尽管他曾经是过。
所以,杰斯特每次给卡马克的任务只是一些创意独特,但不需要什么高深编程水平的小游戏,而且每次的游戏设计方案他都会申请专利,并且保留着他跟卡马克的通信,就是为了在将来证明,这些游戏的版权是属于他的,而卡马克只是他雇佣的一个帮他完成这些想法的码农。
杰斯特就这么坐在电脑前,看着闪烁着荧光的电脑屏幕,他在担心,如果自己真的在pc上做出了第一款卷轴游戏,那么对于现在的游戏产业会有何种冲击。
在雅达利冲击的影响下,受损最大的是家用游戏机市场,基本上被完全摧毁了,街机受到的影响稍微小一点,现在在杰斯特的努力下,已经开始逐渐的回温,但受到影响最小的,或者说,基本上没有收到什么影响,还是个人电脑游戏行业,跟日本的设计师不同,后世杰斯特脑海里知道的无数欧美设计师,都是在这个时代的个人电脑上制作游戏磨砺出来的。
如果自己真的提前几年推出了卷轴游戏,那么到底会不会影响自己将来推出家用机的计划呢?
想了一会,杰斯特的脸上突然露出了嘲讽似的笑容,似乎是在嘲笑着自己。
“我真是有点杞人忧天。”杰斯特嘟囔了一句,他确实有些杞人忧天了,在他后世的时候,在电脑游戏在可以跟主机游戏比质量,甚至pc的机能还要比主机强的时候,同一款全平台游戏的pc版都很难卖到主机版的十分之一,甚至几十分之一,更何况是现在了。
要知道将来pc的占有率可几十倍于游戏机呢。
想通了这一点,杰斯特的决定也就做了出来,毕竟ati也是他的产业,能够让ati提前统治市场,对他只有好处而没有坏处。
不过杰斯特可不是卡马克那种具有乌托邦思想的程序员,他是一家游戏公司的拥有者,自然的,他的卷轴效果,自然不可能开源之后被人无偿使用,申请专利自然是必然而然的事情。
想通了这些,开了一天车的杰斯特也有些累了,他自己的那间休息室被马克?塞尼占据,于是他只好在马克?塞尼办公室里的沙发上和衣而卧,勉强的睡上一觉。
第二天。
杰斯特将马克?塞尼跟两位他的研发小组里前两天跟他一起参与如何在个人电脑上完成卷轴效果的程序员一起喊道了办公室中。
“你们是怎么来完成卷轴效果的?”在正式的讲解卡马克卷轴算法之前,杰斯特如此的向几人询问。
马克?塞尼简单的说道:“一开始我们想要直接在个人电脑上复制我们已经在街机上的方法,无论是在画面上直接绘制图像还是多获取一些内存来得到性能的提升,但都不现实,原因是个人电脑实在是太慢了,虽然它用的是16位的cpu,但个人电脑跟街机的基板不同,它的cpu不可能只负责我们的这一款程序的计算,它要处理的东西非常多。”
“后来我们发现想要在个人电脑上完成像是街机上一样的效果,在目前的情况下根本是不可能的,除非我们现在是在用三十二位的cpu,以及其他的一些与其配套的内存,显存什么的,所以我跟拉里斯都放弃了,除了总监之外。”这次开口的是一位叫做布莱恩的程序员,他跟他身边的那位有着一圈胡子的叫做拉里斯的程序员就是马克?塞尼小组里的主程序,《复仇者》的卷轴效果就是他们攻克的。
这个时候马克?塞尼出声强调了一句,他摊了摊手,语气有些沮丧:“不得不说,我这两天也没取得什么效果,所以昨晚上在你回来后,我也打算放弃这个计划了。”
“呵呵。”
杰斯特听了之后轻笑了一声。
他略微在心里准备了措辞,这才开口说道,“不要急着放弃,先让我们来说说,我们在街机是怎么完成卷轴效果的,我之前看过你们做的那个引擎包,也大体的了解你们的一点思路,似乎你们是这么做的,你们在玩家控制的角色移动的时候,如果这名角色移动的足够远,远到超出屏幕,为了让背景也随着玩家的移动而移动,你们用了最直接的方式,就是让cpu来进行重绘整个组成画面的像素。”
马克?塞尼三人点了点头,他们在《复仇者》里的确是这么做的。
杰斯特见他们都点头认可,于是继续说着。
“不过因为这样需要的计算量是很大的,为了让人物的动作也在这样不断重绘像素的计算里不至于显得不流畅,你们也为此想出了几个很巧妙的算法,但这不是我们这次讨论的重点,我就不说了,只说一下卷轴的重绘。”
说着,杰斯特的语气变得谦虚起来。
“你们的编程水平都在我之上,按道理说我实在是不能在你们面前班门弄斧,不过我昨晚上坐在电脑前面的时候无意中有了一点想法,你们先听一听。”
马克?塞尼三人听到杰斯特如此谦虚的话,也不由得笑出了声。
“当时我就在想,我们要的是什么?――我们要在玩家穿过游戏的时候图像能够平滑地移动。”杰斯特继续说着。
马克?塞尼三人并没有因为杰斯特说的都是一些烂大街的东西而不耐烦,他们都见过自己的这位老板在设计游戏时的那种奇思妙想,而有的时候,设计一款卓越的程序有时候也许只是缺少一个奇思妙想。
杰斯特说的很快,但吐字依旧清晰。
“当时我想起了之前我在电脑上设计一款rpg游戏时的一个处理方法,在那个游戏里,当玩家控制的角色走到屏幕上地牢边缘时,我会让背景做一次很大的调整,这种基于图素的卷动是很常见的技术,而我现在要做的不是基于图素的卷头,而是基于像素的卷动,哪怕玩家只移动了一点点,背景也要随之调整。但问题来了,我一开始跟你们想的一样,但我在看了马克?塞尼制作的这个卷轴动画的程序之后,我发现,这条路是行不通的。”
然后,杰斯特见到三人的脸色愈发的认真起来,他脸上的笑容也愈发的浓重,于是+继续说道:“所以,我就换了一个思维模式――为什么要让计算机重绘整个画面呢?玩家控制的角色每次移动的时候尽管背景在变动,但并不是整个背景在变动,而是只有很少的背景在变动啊。”
说到这里,杰斯特脸上的笑容消失,而是变得认真了起来,他马上就要说到卡马克卷轴的核心。
“那么如果不是每次重绘整个屏幕,而是只重绘那些真正改变了的部分,会怎么样呢?”
杰斯特的这句话一说完,马克?塞尼三人的眼前都亮了起来,他们已经知道杰斯特的想法了,而且他们三个也是非常有天赋的程序员,他们几乎在一瞬间就得出了杰斯特的这个问题的答案。
会怎么样呢?
当然是毫无疑问的,cpu的计算量会只有之前的几分之一,甚至十几分之一,而卷轴效果在执行起来也会快很多,准确的是说,是快非常多。
尽管还没有真正的用程序来验证,但他们三人也都凭借着自己对于代码的敏感,知道,杰斯特的这个方法,也许真的可以在个人电脑上办到之前只能在街机上才能做到的,卷轴动画效果。
这真是一个伟大的点子。
这就是马克?塞尼三人此时心里唯一的想法。
.....