這群人裡面,最厲害的程式設計高手是羅素(Steve Russell),他當時正在協助麥卡西教授設計LISP程式語言,以加快人工智慧的研究步調。羅素是不折不扣的電腦怪傑,是本領高超的科技狂,醉心於從蒸汽火車到會思考的機器等各種科技。他身材短小,容易激動,有一頭捲髮,鼻樑上掛著厚厚的鏡片。他講話速度很快,彷彿有人一拳擊中了快轉按鈕般。雖然他充滿熱情,精力旺盛,做事卻拖拖拉拉,因此綽號叫「懶鬼」。
羅素和他的駭客朋友一樣,喜歡看爛電影和通俗科幻小說。他最欣賞的作者是史密斯「博士」(E. E. “Doc” Smith)。史密斯是失意的食品工程師(他是漂白麵粉的專家,懂得調配甜甜圈粉),專寫一些沒什麼價值的次類型科幻小說,也就是所謂的「太空歌劇」(space opera)。史密斯博士的小說總是有戲劇性的冒險情節,裡面充滿善惡對立、星際旅行和老掉牙的羅曼史。鐵路模型技術俱樂部及海厄姆研究院成員葛瑞茲(Martin Graetz)在回顧太空大戰遊戲創作過程的文章中,形容史密斯博士「下筆時有如氣鑽般優雅細緻」。
葛瑞茲記得史密斯博士的典型故事是:
經歷了最初的一陣騷動,把大家的名字都弄清楚之後,幾個發展過度的哈迪男孩穿越宇宙,摧毀銀河黑幫、炸掉幾顆星球、殺死各種低等生命形式,真是痛快極了!每逢緊要關頭,我們的英雄總是能提出完善的科學理論,發明執行理論的技術,並製造武器來轟掉幾個壞蛋,在此同時還有追兵在後,但他們駕著太空船,穿越了無跡可尋的銀河荒原。
羅素、葛瑞茲等人對這類太空歌劇十分著迷,難怪後來決定為PDP-1 設計太空大戰遊戲。羅素還記得:「當時我剛看完史密斯博士的透鏡人(Lensman)系列,他筆下的英雄人物往往在星系間遭壞蛋追捕,必須運用創造力設法脫困。『太空大戰』的點子即由此而來。」他們以身為「科技宅男」自豪,組成海厄姆研究院太空戰事讀書會,由羅素來編寫程式。
只不過羅素正如同他的綽號所示,遲遲未能完成程式。他知道這個遊戲程式應該從何著手。閔斯基教授曾經意外發現一種演算法,能在PDP-1 上面畫圓圈,經過修改後可以在電腦螢幕上顯示三個點,而且可透過點與點的互動,織出一些美麗的模式。閔斯基稱之為「三點顯示」(Tri-Pos),學生則把它取名為「閔斯基創」(Minskytron)。想要以太空船和飛彈之間的互動為特色來設計遊戲,這是很好的起點。羅素花了幾個星期沉迷於Minskytron,想了解它能產生哪些模式。但是等到羅素開始編寫決定太空船動作模式的正弦-餘弦常式(sine-cosine routine)時,卻陷入困境。
羅素說明他碰到的困難後,社員寇托克(Alan Kotok)清楚知道該如何解決。他開車造訪波士頓市郊的迪吉多總部(也就是PDP-1電腦的製造商),找到一位善心的工程師,願意提供計算時需要的常式。「好了,正弦-餘弦常式在這兒,你還有什麼藉口嗎?」寇托克對羅素說。羅素後來承認:「我環顧四周,找不到任何藉口,只好定下心來,好好做一些計算。」
1961 年整個聖誕假期,羅素都埋頭苦幹,幾個星期後他終於設法利用控制板上的雙態觸變開關(toggle switch)來操控電腦螢幕上的點,讓這些點的移動速度加快、放慢和轉向。然後他又把兩個點變成兩艘卡通造型的太空船,一艘船比較圓胖,狀似雪茄;另一艘則為瘦長的直線型,像枝鉛筆。他又寫了一個次常式,讓太空船可以從鼻端射出一個點,以模仿飛彈。當射出的飛彈點落在另一艘太空船的位置時,太空船會「爆炸」,散開成許多任意移動的點。到了1962 年2 月,基本程式已設計完成。
這時候,太空大戰遊戲已經變成開放原始碼計畫。羅素把程式帶放在專門收藏PDP-1 程式的箱子裡,他的朋友開始針對程式做各種修改。其中一個朋友愛德華茲(Dan Edwards)認為,如果在遊戲中加入重力因素應該會很酷,所以他編寫的程式把會對太空船產生重力的大太陽放進遊戲中。太空船一不注意,就會被太陽吸過去而遭摧毀。但高明的玩家就懂得急速移動,在接近太陽時,利用太陽的重力牽引以獲取動能,然後突然高速迴轉。
羅素還記得,另一個朋友山姆森(Peter Samson)則「認為我的星星太過隨意而不夠真實」。山姆森覺得遊戲需要一些「貨真價實的東西」,也就是符合天文學的正確星座,而不是一大堆各種各樣的點。於是他增加了一個名為「昂貴星象儀」的程式,根據《美國星歷表與航海天文曆》的資訊來設計程式,在遊戲中顯示夜空中所有5星等以下的星星。他甚至經由設定顯示點在螢幕上發亮的頻率,複製每顆星星的相對亮度。太空船行進時,各星座會慢慢捲動通過。
這種開放原始碼的合作方式產生了更多聰明的設計。葛瑞茲想出「終極緊急按鈕」的脫困點子,只要按下開關,就能暫時遁入多維空間中的另一個空間。「我的想法是,無計可施時,你可以跳進第四維空間,然後消失不見,」他解釋。他曾經在史密斯博士的小說中讀到類似裝置,稱為「超空間管」。不過,這個法子仍有限制:每一局遊戲只有三次遁入超空間的機會,敵人會因你的失蹤而得到喘息機會,而且你無從得知太空船會在什麼地方重新現身。「這是你可以利用、但不會想用的脫困方式,」羅素解釋。為了向閔斯基教授致敬,葛瑞茲增加了一項設計:遁入超空間的太空船會留下Minskytron 的印記。
最後還有一項重要貢獻,來自於鐵路模型技術俱樂部兩位活躍社員寇托克與桑德斯(Bob Sanders)。他們知道,大家都擠在PDP-1控制台前面相互推擠,爭著操縱電腦開關,既不便又十分危險。所以他們在社辦的火車平台下面四處搜尋,找到一些雙態觸變開關和繼電器。他們把零件在塑膠盒中組裝起來,做了兩個遙控器,還加上所有必要的功能開關和超空間緊急按鈕。
這個遊戲很快在其他電腦中心流行起來,變成駭客文化的重要產物。迪吉多公司的電腦在出貨前會預先載入太空大戰遊戲,還有程式設計師為其他電腦系統設計的遊戲新版本。世界各地的駭客更在遊戲中加入更多性能,例如隱形能力、爆破太空地雷,還有從太空船駕駛員的觀點轉移到第一人稱觀點。個人電腦先驅凱伊(AlanKay)曾說:「只要有電腦和圖形顯示器的地方,太空大戰遊戲就大行其道。」
太空大戰遊戲凸顯了駭客文化的三個層面,也成為數位時代的重要主題:第一、這個遊戲是集體創作的。「我們能夠以團隊合作的方式一起打造遊戲,這是我們喜歡的做事方式,」羅素說。第二、這個遊戲是免費的開放原始碼軟體。「很多人想要複製一份程式原始碼,我們當然奉送。」當然,因為當時的時空環境仍渴望免費的自由軟體。第三,遊戲的設計基於一個信念:電腦應該是可互動的個人裝置。羅素說:「我們因此可以親手操作電腦,讓電腦即時回應。」
本文摘自《創新者們:掀起數位革命的天才、怪傑和駭客》,由天下文化出版。
延伸閱讀: