正文 第六十五章 傑斯特卷 軸算法 文 / 煙雨料峭
兩人的聊天結束之後,實在是太困的馬克·塞尼便打著哈欠去了休息室睡覺了。
傑斯特倒是坐在之前馬克·塞尼坐的那張椅子上,看著電腦沉思了起來。
在個人電腦上完成卷軸效果他確實可以做到,他在重生前就看過卡馬克卷軸的算法,這是一種非常巧妙的方法,能夠在當時並不適合做遊戲的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的計算量會只有之前的幾分之一,甚至十幾分之一,而卷軸效果在執行起來也會快很多,準確的是說,是快非常多。
儘管還沒有真正的用程序來驗證,但他們三人也都憑藉著自己對於代碼的敏感,知道,傑斯特的這個方法,也許真的可以在個人電腦上辦到之前只能在街機上才能做到的,卷軸動畫效果。
這真是一個偉大的點子。
這就是馬克·塞尼三人此時心裡唯一的想法。
ps:求推薦票!!