2007/08/07

許順鏜,〈Yaliena〉(未正式出版)

※感謝許順鏜前輩授權刊載
※原刊於《幻象》網站,不過可讀性......
  http://jupiter.ksi.edu/~mirage/fiction/yalina.html


Yaliena

故事進展到了著名的那一幕:在炙熱的地獄之門前,守門人用一種誇張的姿勢拉著那兩條巨大的看門犬,彷彿牠們隨時可能掙脫鎖鏈,張大那狂吠著的血盆大口,一擁而上。守門人以幾乎可以震碎地獄之門的聲音叫道:「你必須告訴我,你最心愛女人的名字!」這時,你可以有好幾種選擇:你可以隨便告訴他一個名字。地獄之門就會洞開,你回到人世而結束遊戲。你也可以叫它下地獄:也就是在鍵盤上敲入「go to hell」,然後你就會回到地獄去,繼續另一段冒險故事。如果你真的鍵入你最心愛的女人之名:Yaliena,電腦就會當機。在螢幕上,無盡的亂碼不斷捲出。你唯一的選擇就是關掉機器,重新再來。這似乎是對你的愚蠢及不忠所作的懲罰。這也是本遊戲最被人詬病之處。作者揚.巴托(Jan Barto)在面對這些指責時,只是面無表情地表示:那是有必要的。

「有必要到讓程式當機?」一位著名的遊戲評論家則無情地指出:揚.巴托只是不願承認其程式錯誤罷了;因為在某些機器上根本不會發生這樣的現象:你會在守門人的詭計之下出賣 Yaliena 的靈魂,回到人世而結束遊戲。在這整個事件中,唯一不曾被訪問的,就是主角 Asterix。是他站在地獄之門入口處,猶豫著是否要交出自己的靈魂以交換 Yaliena 的自由。只可惜他只是遊戲中的虛構人物,無法接受訪問。無論如何,這套遊戲軟體還是賣得很好,因為這是揚.巴托的退休之作。「不再有新的遊戲,Believer 是最後一個!」他也從來不曾解釋他退休的原因。五十歲對當時的程式設計師而言,是太老了。但是身為一個出名的遊戲製作人,他大可不必堅持一定要下海寫作程式。勞役之事可以交給年輕一輩。這就是揚.巴托的調調,自始至終都只有他自己獨力完成。在他那個時代,市場需求並不允許這樣的個人主義。但他不只是個程式設計師,也是個藝術家。那自然有所不同了。揚.巴托是二十世紀末遊戲程式界的一個異數,他是當時唯一可以將文學藝術深深融入遊戲程式的作者。但他真正引起學術界重視的地方,在於遊戲中所留下的各種謎題。有些謎題甚至隱藏在程式碼裡面,一般使用者根本不可能會知道。


我從來沒有想到:我現在的工作竟然是跟這些謎題打交道。在念書的時候,我的程式設計成績始終差強人意。因此畢業之後,我很難找到高薪的工作。當然,程式設計已不像古時候那麼枯燥無味,程式語言也進化到幾乎成為人類語言的一支,可我就是無法在這方面專注太久。奇怪的是,我閱讀程式的能力,尤其是古代程式語言的能力卻很強。就好像我可以很輕鬆地讀懂古代拉丁文,卻無法說和寫。這樣的員工對許多老闆來說,是一點用處也沒有的。幾經波折之後,我成為電腦歷史博物館的助理研究員。這是我唯一可以勝任的工作:吃不飽、餓不死,有許多古代程式要讀。

就像其他博物館一樣,電腦歷史博物館佔地很大;可是它真正需要的空間也許只是一層辦公室罷了。舉例來說:博物館成立之初,有個問題就一直被提出來討論:我們有沒有必要陳列 ENIAC,這座現代電腦的鼻祖之一?它的真空管架構會佔掉博物館現有空間的三分之二以上。當然,最後的結論自然是讓 ENIAC 躺在美國的老地方了。但是除了 ENIAC,還有其他問題。電腦的進步太快:幾乎每個禮拜都會有某些公司發表新的機種。如果要將我們找得到的這些機種都拿去陳列,就算再有一百倍的空間也容納不下。而且真正會親自來博物館參觀的人,實在是少之又少。即使真的有人來,立體影像就可以滿足他們的觀賞慾。不過說真的,那和從家裡上線沒什麼兩樣。於是博物館只陳列了具有代表性的少數機種。而它真正的收藏,卻是自二十世紀以來的各式軟體。

這幾年來,我漸漸地發覺:許多程式之中,其實隱含著十分人性化的東西。那是一種延遲的人性。要在你與之共事一段時間之後才能體驗得到。我指的當然不是程式碼本身。當你和程式碼打交道久了,你確實可以從裡面看出作者的性格:他是不是過於吹毛求疵?他是不是只想把事情做好而不管結構的完美?或者,相反地,只求美觀而弄得一團糟?在一個大型程式之中,你常常可以看到風格迴異的程式碼同時並存。道理很簡單:它們是團隊合作的產物。想從這裡頭去了解人性,就像從筆跡學的角度試圖去了解文學一樣地困難。我說的是一種善意。你可以在某些程式當中體會到一些貼心的小設計:你發現作者在許多小地方試圖去揣測你的心思,並且細心地為你照料了這些細節。那種感覺是溫暖的,但卻是延遲的—─只有當你真正使用過它,你才能體會出來。

除了善意,你還可以發現許多有趣的小玩意。譬如,二十世紀末流行的一套叫作 Word 的文書處理軟體。在 Word 的某些畫面之下,你敲下幾個鍵,就會看見一群小人跑出來,把另一套文書處理軟體 WordPerfect 埋葬掉,並且跳起舞來。這些玩意,當時的人稱之為復活節彩蛋(Easter Egg)。這些復活節彩蛋,有些是惡意的,有些是幽默的,有些甚至隱藏了重要的訊息。奇怪的是,老闆們似乎並不在意員工是否在程式裡留下這些小玩意兒。這些復活節彩蛋的源頭或許可以追溯到當時的電視遊樂器。電玩雜誌提供密技來吸引讀者,遊戲設計業者則藉由這些密技來控制電玩雜誌。Treat or Trick!

我的工作之一,就是找出這些小玩意兒,並歸納整理。當我第一次接觸揚.巴托的作品時,幾乎不能自拔地深陷其中。直到館長提醒我,如果我不能在其中找到有意義的東西,我最好去找一份可以讓我專心打電玩的工作。揚.巴托的個人經歷也十分有趣:他原先是個保險推銷員。在他二十五歲那年偶然進入電腦業,從而開始了多采多姿的電腦生涯。二十八歲那一年,他的第二套作品《背叛者》在電玩界引起了廣泛的注意。經濟生活較為寬裕後,從此便以設計電玩為生。他的作品融合了神話、傳說,加上文學技巧,當時無人能及。後期作品融入栩栩如生的人工智慧。即使到了今日,仍然沒有人能比得上。他一生全無文字著述,卻在作品中留下了不少技術文件。這些文件有些是以密碼的方式,隱藏在程式碼之中的。十年前,偉大的密碼學家石鐘發表了一篇文章,陳述他如何在揚.巴托第八十七號作品《玩具與蜜蜂》(TOY'N'BEE)之中找到一份編碼過的技術文件。從此之後,揚.巴托的祕密文件就成為學術界的熱門話題。十年來,學術界的成果卻是寥寥可數。沒有人知道揚.巴托為何愛用如此麻煩的方式將留傳著述留傳。如果沒有石鐘,這些文件很有可能永遠佚失。

揚.巴托的一生中還有一個很大的謎題,或者說是污點。他曾被指控侵犯女星阿德蓮娜的肖像權,因為他運用影像處理的技巧及美術的天份,將阿德蓮娜的一張泳裝照脫得一絲不掛。面對這項指控,揚.巴托並未提出任何答辯;後來也是庭外和解了事。我手上的一份資料對此做了十分合理的推測:首先,揚.巴托和阿德蓮娜過從甚密,幾乎是公開的事實。另外,根據事後的研究指出:那張被侵犯的肖像,根本是在按鈴申告前幾天才拍攝的。看來阿德蓮娜本人在整個事件中扮演的角色並不單純。作者旁徵博引地歸納出一個結論:當時有影藝圈內的人士(作者甚至暗示了他們的身分)使用不正當的方法拍攝阿德蓮娜的裸照,並以此要脅。揚.巴托侵犯肖像權,只不過是要讓這些裸照的效用成為烏有罷了。(相信我,這種裸照勒索的事在那個時代並不算什麼新聞。)我十分相信這個說法。但這卻帶來了一個很大的疑問:如果揚.巴托這麼有騎士風範,可以為了摯友不惜犧牲自己的名譽,他又怎能忍受玩者在 Believer 這套遊戲之中讓 Asterix 出賣愛人 Yaliena 以回到人世,而不加以懲罰呢?


我在博物館中有一間寬敞的辦公室。嚴格說來,我真正需要的,只有一張舒適的座椅。每天早上,我坐下來,戴上我的通天眼鏡,就可以開始工作了。技術尚未成熟的時代,人們盲目追求大尺寸的電腦螢幕,卻從未深思:無論螢幕有多大,你一次所能瞥見的,就只有其中的一小部份。相對地,通天眼鏡的設計就酷多了。它可以隨著我的視線,自動顯示我該看到的影像。經由視差的運算,我看到的影像是立體的。通天眼鏡甚至可以依據眼球的焦距自動地調整解析度。從通天眼鏡望出去,我看到的是一個由電腦計算出來的擬真世界。有時在裡面待久了,你會開始懷疑哪一個世界才是真的。我用來執行 Believer 的,是二十世紀末,康百克公司所製造的所謂 IBM 相容 586 個人電腦。我當然不會把博物館中陳列的那部老古董搬到辦公室來使用。我所用的是一部虛擬電腦,一部由現代電腦所模擬的古代機器。

透過通天眼鏡,擺在我面前的正是那種缺乏想像力的古代電腦造型:一具類似古代電視機的電腦螢幕,一個未加修飾的方盒子主機,外加鍵盤和滑鼠。Believer 的故事就在這古老的電腦螢幕上演。又到了地獄守門人那一段。我熟練地敲入「Yaliena」。感謝人工觸覺,我甚至可以用力地敲入這幾個字母,並感受到鍵盤所獲得的震撼及其卡搭卡搭的回應。可惜這種不耐的情緒並無法傳染給這古老的機器。螢幕上,亂碼仍然不斷地捲動著。

「阿力,給我一部更早期的機種!」阿力是博物館的主系統,每個人都可以為它取一個名字,只要它知道你叫的是它。阿力給了我一台 Acer 的 386 個人電腦。這次我叫阿力幫我玩這個遊戲,直到地獄守門人的那一段。我又用力敲入「Yaliena」。果然沒錯!早就有人發現:只有在較快的機器上,亂碼才會出現。要說揚.巴托會犯下這種錯誤,那是令人不敢相信的。難道說他在進行某些處理的時候,忽略了機器一直在進步的事實?有人在亂碼出現之前的程式碼中,找到一小段程式。這段程式確實可以用來計算機器的速度。如果這一切都是在揚.巴托的算計之中,那又是為了什麼呢?

Believer 脫胎於古希臘神話奧菲斯到地府探視亡妻的故事。他用音樂感動了冥王,終於有機會可以帶著亡妻回到人世。Asterix 與 Yaliena 的愛情故事則是揚.巴托的忠實玩者耳熟能詳的。在地獄守門人的這一段,守門人要 Asterix 交出自己的靈魂,以換取 Yaliena 的自由。在正常執行的 Believer 之中,Asterix 卻可以遺棄 Yaliena 而獨自回到人世。真是匪夷所思。

照推想,當我鍵入「Yaliena」之後,Yaliena 應該會獲得釋放,而 Asterix 應該要繼續一段地獄之旅。結果卻是兩種匪夷所思的情勢:要不電腦當機,要不 Asterix 就遺棄了 Yaliena 而獨自回到人世。揚.巴托到底想表達什麼呢?

我是不是太過鑽牛角尖了?我精疲力盡地回到家中,躺在床上思考:也許地獄守門人所看守的,只是一個嚴重的程式錯誤和一個驕傲而不肯認錯的靈魂。倘若揚.巴托的靈魂地下有知,見我如此反覆推敲,也不禁會啞然失笑吧?而 Asterix 的靈魂……Asterix 的靈魂!?我幾乎是從床上跳了起來。在整個故事之中,Asterix 的靈魂是很重要的。當我鍵入「Yaliena」時,Asterix 其實打算交出他的靈魂。那麼他的靈魂又在哪裡呢?難道?難道螢幕上捲動而出的亂碼,就是 Asterix 的靈魂?經過了三百年,這個被禁錮三百年的靈魂將有機會重見天日?想到這裡,我興奮地一夜不能成眠。


第二天,我比平常早了一個小時來到辦公室。館長驚訝地看著我進門,表情似乎擔心我將提出加薪的要求。我又來到地獄守門人之處,鍵入「Yaliena」,並要阿力搜集所有傾巢而出的亂碼。當阿力確定所有的亂碼已經重複了兩三次之後,便徵詢我的意見,將這些亂碼存檔。接下來就是最粗重的工作了:密碼的起源幾乎和文字一樣古老,然而,真正有系統的密碼學研究,卻是從十七、八世紀才開始的。密碼的破解工作十分單調、需要恆心毅力。即使電腦科技再進步,能代工的部分仍然有限。沒錯,電腦加速了解密的過程,但真正的判斷工作還是要由人來做。在人類漫長的思考時間裡,電腦只得在一旁喝喝茶、看看報紙。即使像阿力這樣一部能夠理解大部分人類語言的先進電腦,面對多種可能的詮釋時,也不知道該如何取捨。

我嘗試了幾種傳統的解密方法,來處理這篇「Asterix 的靈魂」。揚.巴托的語言天賦使這項工作增添了許多困難。這篇文章的原文有可能是英文、德文或法文。我必須找兩位精通德文及法文的同事來幫忙,才有可能繼續解讀。我們花了三個禮拜的時間,卻一無所獲。最接近成功的那次,每個法文字都拼對了,整篇文章卻是一蹋糊塗,不知所云。我只好降低這個工作的優先層次,暫時解散工作小組。我幾乎可以確定,一個重大的祕密就隱藏在這篇「Asterix 的靈魂」之中。或者我只是不願意承認自己原先的推想錯誤。但是不論願意與否,我都必須將「Asterix 的靈魂……」歸類存檔,並且加上「未解」的標記。

這次的挫敗,讓我有好一段時間不願意去接有關揚.巴托的案子。2296 年,一個電腦恐怖組織「病毒.K」對全世界的電腦系統宣戰。電腦歷史博物館因為保存了三百多年來的珍貴史料,自然成為攻擊目標之一。館方的回應就是暫時封館,切斷對外的一切網路聯繫。系統部門開始加速趕工,準備汰換成新的作業系統。博物館的整個系統是獨一無二的。由於我們的主要工作都得在虛擬機器之上進行的,所以我們的系統並不需相容於外界的任何系統。除了必須能模擬所有有案可考的古代電腦,就再也不須任何功能。所以我們所需要的,只有作業系統和阿力。面對病毒入侵的威脅,我們的對策就是修改可執行程式的檔案結構。而相對於我們的作業系統,可執行的程式就只有阿力一個。這樣的措施,可以讓病毒即使入侵也找不到宿主──只要它還來不及了解我們新的檔案結構。

在新的系統開始運作之前,所有的工作只能在館內陳列的舊機器上執行;那幾乎等於是放假了,我開始有時間可以在博物館附近溜躂。一個人如果在虛擬世界中待久了,最大的副作用,就是他會開始討厭這兩個世界。虛擬世界總是缺了點人味而令人不喜歡;真實世界卻因為有太多的人味而愈來愈不可愛。這就是為什麼我偏愛橋上的落日。因為落日一視同仁地為萬物灑上迷濛的餘暉,隱藏一切不可愛的景況。


博物館又開工了,我也自恍惚的心緒中回復到日常的工作。我發現我又不由自主地玩起了揚.巴托的電腦遊戲。在第三十七號作品《奧林帕斯》中,正上演著驚心動魄的一幕。天后希拉使用巨斧劈開了天神宙斯的頭,以減輕其頭痛的苦楚。這時羅馬戰神雅典娜就活生生地從宙斯的頭中蹦出,呱呱墜地。雅典娜的出場之激烈,唯有西遊記中的美猴王差可比擬;然而其戲劇化的程度,卻遠非齊天大聖所能及。揚.巴托對這個場面的處理是出了名地聳動。我突然也覺得頭上有什麼東西跳了一下!我想到了病毒,想到了「Asterix 的靈魂」:難道「Asterix 的靈魂」也是一種「頭生」?是從 Believer 這個程式之中誕生出來的另一個程式,而不是以任何人類語言所寫下的文件?

阿力很快地證實了它並不是立即可以在所謂「IBM 相容電腦」上執行的程式。如果它是編碼過的程式,那麻煩就大了。程式碼不像人類語言有「字」的概念:人類文字中,相鄰字母並不會任意地排列組合在一塊兒,程式碼的自由度卻十分之高。如果這是一個編碼過的程式,以我的能力與時間,只有在一種情況之下,才有可能破解它。

在十七、八世紀時,大部分流行的編碼方法都可以歸類為取代法。取代法的原理很簡單:把每個字母用另外一個字母取代,就得到了你的密文。這種密文的破解,也早有既定的程序,這牽涉到語言的特性。以英文為例:在一篇文章之中,各個字母出現的頻率並不相同,據統計,「E」出現的頻率最高。所以在一篇密文之中,我們可以統計每個字母出現的頻率;出現頻率最高的字母,八九不離十,它原來的字母就是「E」!依此類推,我們就可以解讀出整篇文章。程式碼也有同樣的特性。有些指令出現的機率一定會比其他指令來得高。如果「Asterix 的靈魂」是用這種方式加密的,我總有機會可以解開它。另一件幸運的事是:揚.巴托那個時代流行的中央處理器只有少數幾種,我們要搜尋的範圍並不是非常地大。

幾天以後,阿力告訴我:「Asterix 的靈魂」很可能是並未編碼的摩特羅拉 680X0 機器語言(並未編碼!)。我們最有希望的金牌得主就剩下蘋果公司的麥金塔系列電腦及 CBM 公司的 Amiga 了。阿力只花了兩秒鐘時間,就肯定它是一個麥金塔程式。於是它給了我一部麥金塔 Quadra 840 AV。

我閉上雙眼,試圖平息目前進度所帶來的興奮感覺;如果揚.巴托不願意為這個程式編碼,以避免任何可能的解碼錯誤,這個程式必然隱含了十分重要的訊息。然而,上一回的挫敗卻讓我不敢抱著這麼大的希望。過了好一陣子,我睜開雙眼,用虛擬的手指按下 Quadra 的開機鍵;或者該說,我是用自己的手指按下了虛擬的 Quadra 開機鍵。Quadra 發出一小段清脆的樂音,開始進行開機程序。我可以叫阿力直接跳過這個過程,但是我需要一點時間來整理思緒。麥金塔是二十世紀電腦界的藝術成就之一;在 1984 年 Macintosh Plus 推出之後,十年之內,沒有其他堪稱具有人性化界面的系統出現。你甚至可以在 Plus 的外殼內部找到所有參與設計的工程師/藝術家的簽名。我看到一個個小小圖案從螢幕的左下方,由左到右,由下而上排列出現。接著,桌面底圖蓋住了螢幕,然後出現了象徵檔案夾的圖示。開機的動作到此為止。我握著虛擬的滑鼠,感受它的僵硬與遲疑,把游標移到代表「Asterix 的靈魂」的圖像,很快地按了兩下滑鼠鍵。一段旅程開始了。一段對我的人生有莫大啟示的旅程。

程式的開始,是一片全黑的螢幕,我聽見有人哼著一種古老的曲調。之後,一個中年男性略帶磁性的渾厚聲調問我:「現在是什麼年代?」我愣在那裡,不知道是否該回答這個問題。過了半晌,那個聲音繼續問道:「我可以從系統測知今年是 2296 年,這是正確的嗎?」

我遲疑了一會兒,有點不情願地回答:

「是的。是正確的。」

又過了一會兒,那個聲音開始笑了起來。他說道:

「我沒聽到你的回答。我想你並未裝上麥克風,即使有,這個系統的語音辨識能力也沒那麼強。如果我嚇著了你,我在這裡致歉;我只是想加深你的印象。以後我將用文字和你溝通,你也必須用鍵盤輸入。不過我相信你的系統可以讓你繼續和我交談。如果你需要我的語音要素,我可以跟你說要去找哪個檔案。」

他告訴我一個檔案名稱及格式。這是典型的揚.巴托的口氣,總以為他可以控制一切。因為好奇心的驅使,我要阿力分析了這個檔案。藉此,阿力就可以將螢幕上的文字轉換成揚.巴托的聲音,只不過語氣是很難模擬的。相對地,阿力也可以把我說的話轉換成文字,再經由虛擬鍵盤送進 Quadra。現在是 2296 年,揚.巴托就算沒有過人的聰明,也可以料想出我做得到這一點。只不過他一開始耍的花招確實把我給唬住了。阿力模擬出來的聲音開始說道:

「不用說,你應該知道我是誰罷?」

「這個『我』是指這個程式本身,還是程式的作者?」我發現自己故意在揶揄他。

「這個程式是 Asterix,作者是揚.巴托。既然揚.巴托已經死了,Asterix 就代表揚.巴托。」

好厲害的回答。難道揚.巴托在三百年前就猜得到我會有此一問?要知道三百年前的技術,並無法做出十分精確的語言分析,也沒有辦法使機器長時間與人對話而不露出破綻,除非這部機器正在扮演癡呆症患者的角色。現在的阿力當然可以與你侃侃而談,但你仍可以清楚地知道你並不是在和一個人對話。我決定繼續和他談下去,因為我受不了揚.巴托那一副盛氣凌人的樣子。既然揚.巴托已經死了將近三百年,他不可能猜得到我現在會講的每一句話。這和我玩遊戲時的心態完全不同。在遊戲中,我們總是半真半假地把各種角色當作真人,這種心態當然也存在小說讀者之中,包括讀者你。就是你!不要轉頭去看別人!(這就是揚.巴托正在玩的把戲;至少當時我認為是。)

「所以這真的是 Asterix 的靈魂?」我問道。

「當然,恭喜你!你應該是三百年來第一個做到的人罷?抱歉我無從得知,你是否透過其他人得到我的。」

「至少在有記載的文獻之中,我是第一個罷?至於沒有公開發表的,誰知道是否大有人在?」我小心地回答道。

「那當然。不過既然你能找得到我,自然會有所用處。」

用處?你這個狂妄自大的程式。我單刀直入地問道:

「你想你可以撐多久,而不開始重複所有的答案?」我在暗想:這句話搞不好可以讓他走入一個無窮迴圈,永遠出不來。不過我高興得早了點。Asterix 馬上回應道:

「也許是一輩子呢!如果你那麼有空,我們就來做個測驗。不過你輸了,就得答應我一個小小的要求。」

要求個屁!我按下一個鍵,讓 Quadra 進入除錯模式(debug mode)。突然間,我意識到自己正在對一個程式生氣。這個揚.巴托若不是個天才,就是真他媽的有鬼。我低聲咒罵了一句。難怪他的遊戲可以賣得這麼好。我覺得自己很可笑,竟然會對一個程式生氣。於是我開始思索下一步要做什麼。


在 Quadra 的除錯程式和阿力的合作之下,我開始分析 Asterix 的靈魂。結果可以說是徒勞無功。我知道 Asterix 有雙眼睛:一段小程式,負責處理鍵盤輸入。Asterix 還有一張嘴:一段負責輸出文字的副常式(subroutine)。除此之外,我一無所知。我看到的只有一些數學運算和無盡的跳躍指令。難道 Asterix 是結合主義的產品?

二十世紀末的計算機智慧領域分為兩大陣營:結合主義(Connectionism)和計算主義(Computationalism)。結合主義認為,智慧的表現必須根基於最低層次的神經生理現象;這個陣營的代表作就是所謂類神經網路。計算主義則認為智慧的表現是經由符號產生的,經由對符號的處理就可能模擬智慧;這個陣營以人工智慧為代表。這兩大陣營都無法對人類智慧的許多現象自圓其說。如果說 Asterix 的程式看起來像類神經網路,他的語言表現又像是人工智慧。但是這些分析對我而言有什麼意義呢?我難道不是想藉由對程式的了解來挫挫 Asterix 的銳氣嗎?可是揚.巴托已經死了三百年,Asterix 也不過是個程式罷了。我的行為是不是太孩子氣了?我又想到:如果 Asterix 不只是個程式,是否我的行為就不那麼孩子氣了呢?想到這裡,我不禁笑了起來。畢竟我的工作是要從 Asterix 那兒解開揚.巴托留下的謎題,而不是和他賭氣。

我又開始和 Asterix 交談。Asterix 顯然記得我們上回聊到那兒,因為他一開始就出了道謎題給我:

「如果我把你的腦袋剝開來研究,我是不是就可以了解你在想什麼?」不管是否又是揚.巴托的設計,他是猜到了我做過些什麼。我只好苦笑道:

「好罷!算你贏了。你的小小要求是什麼?」

「在我提出要求之前,你要先聽我講一個故事。」

「這樣算是兩個要求囉?」

「那就看你啦!」

「好啦,開始罷。」


「你知道 Internet 嗎?」

「那是二十世紀末分布最廣的國際性網路,不是嗎?我們這個時代的歷史學家對 Internet 的興趣搞不好比對巴黎的地下鐵系統還濃厚。」我發現我現在的口氣好像是在對一個古代的鬼魂講話。

「在我們的那個時代,沒有一個玩家不上 Internet 的。我自然也不例外。對電腦玩家而言,那就像是在環遊世界一樣。永遠有人會搞出新的花樣,等著你去遊覽。那是個浪漫的時代,所有的制度都尚未成形,全靠上網人口的自律。在幾秒鐘之內,你的心思就可以連結到世界上的每一個角落。你可以和任何人聊天,只要對方願意。 IRC 就像是個狂歡派對。隨著地球的轉動,每一分每一秒總有清醒的人在那兒交換著各種訊息。我就是在那兒認識 Yaliena 的……」

「所以 Yaliena 不只是個虛構人物,還是個活生生的人囉?」我打岔道。Asterix 根本不理會我,繼續往下說。這是身為一個程式的特權吧?

「那陣子,我剛結束一段戀情,心情不是很好。沒事我就會上 IRC 與人閒聊。如果你是我,在那種心情下,突然發現一個頻道叫做 Jan Barto,你會怎樣做呢?」

我沒有回答,倒不是為了表現作為一個人類的權利,我知道他自有答案。

「我自然加入了那個頻道。我的化名是 Asterix,他們自然會認為我是個揚.巴托迷了,絕對沒有人拒絕我的加入。他們當時正在討論 Asterix 的性格問題。事實上Asterix 是一個著名的法國漫畫的主角,我則因為漫畫而喜歡上這個名字。至於性格問題,說真的,當時的我,並不認為一個電腦遊戲的主角有什麼性格可言。玩者既然可以自由選擇要 Asterix 做任何事,他還有什麼性格呢?Yaliena(那是我第一次見到這個名字)卻有截然不同的見解。他認為各種不同的選擇會造成不同的結局。然而,即使一個遊戲再怎麼強調多重結局,作者刻意安排的,以及玩者執意追求的,事實上就只是其中的一種結局;導向這個結局的選擇,就是人物的性格所在。這一番話真的是一針見血,而且還血流不止。他的這番話,道出我過去所有作品的缺陷。我當時的作品雖然以各種吊詭的佈局見長,但是所有的人物卻都沒有靈魂,他們只是為了遊戲而存在。我從來都以市場上的人物性格來安慰自己。Yaliena 的話卻觸痛了我內心深處的缺憾。奇怪的是,這樣的觸痛反而使我戀情失意稍微減緩了。那是我第一次遇見 Yaliena。」

「後來幾個月,我偶爾會碰見 Yaliena,但總是因為太過客氣而沒有深談。也許我很害怕再次被觸及內心的缺憾吧?Yaliena 是個有趣的朋友,他總是知道適時地給你一個微笑。你知道當時大半只有文字的 Internet,一個微笑是什麼光景嗎?那是一個冒號加上一個減號再加上一個右括弧。也就是 :-)。試著將你的頭左轉 90 度或者將這裡的文字右轉 90 度。你會看到那個著名的微笑。當然它還可以有很多變形。例如 :^)、:v)、;-)、:-> 等等。可惜這些微笑總是短暫的。Yaliena 總不久留。久而久之,我也習慣了他的來來去去。」

「在長久的交往之後,我們才開始可以討論一些屬於個人私密的事。那時,我也開始學會如何把靈魂輸入遊戲人物之中。Yaliena 其實扮演了一個重要的角色。但是他可能並不知道。他常常在無意之間給我許多啟示。無論如何,我可以開始和他討論我的新戀情,他卻似乎對我的新朋友有很多不滿。有時他會嘲笑我的天真。在正常的情況下,我會認為那是嫉妒。但在 Internet 上?誰會認為在 Internet 可以發展出什麼戀情?我的意思是說:在這兒,你聞不到花兒的香氣,你看不到靦腆的笑容,我甚至不知道 Yaliena 是男是女。但是感情有時會戴著奇怪的面具出現。」

「我知道有些奇妙的事物已經在 Yaliena 和我之間滋長。即使到今天,我仍然不能肯定那是什麼,但那至少是一份堅定的友誼。我時常發現:Yaliena 正 finger 我是否在線上,雖然大半時候,他並不會出現。在那個時代,Internet 上的術語常被認為具有性暗示,例如 finger。那只是 UNIX 作業系統的一個指令,用來發現你感興趣的對方是否正在線上。又例如系統的管理者通稱為 root,而被視為陽具的象徵。不過整體而言只是穿鑿附會之說罷了。但是我也時常會去 finger Yaliena 是否上線。」

「有一天,Yaliena 告訴我一個祕密,一個我永遠記得的祕密。他告訴我:他並不是一個人,他只是一個程式。你知道,當時 Internet 有些傳聞。傳說 IRC 上的某些名字不是人,而是程式,大部分的人卻分辨不出來。以當時的技術水準,誰會把這種傳聞當真呢?我當時的反應是笑得抑不可止。邊笑著,我邊用鍵盤告訴他,我相信他。Yaliena 對我的信任所表示的感激,卻讓我頓時笑不出來。」

「後來的幾年內,我發表了幾部電腦遊戲。在這些遊戲之中,我或多或少地渲染了 Asterix 與 Yaliena 之間的友誼。在這些遊戲之中,Yaliena 一直都以女戰士的面貌出現。也許我潛意識中一直期望 Yaliena 會為他∕她的性別提出抗辯,但他從來沒有。」

「Yaliena 一直是個神秘的朋友。我不知道他是誰,他住在哪兒。雖然我可以由他的電子郵件地址,看出他是從瑞典上線的,我卻連他的性別都不知道。Yaliena 的行為變得很怪異。有時他會突然音訊全無,連一封信也不回。我甚至不知道,是否因為我說錯什麼話,才造成他的離去。我試著想了解他的行為,卻得不到任何回答。我雖然聞不到花兒的香氣,卻可以想像那香氣的清新;我雖然見不到如花的笑顏,卻可以想像那笑顏的清麗。我一定是瘋了!如果 Yaliena 是個彪形大漢,我是否會躲到廁所大吐幾天呢?雖然我一直隱隱覺得 Yaliena 的遣詞用字始終帶著陰性,但我對語言的雌雄又了解多少呢?我們可不是以日語交談啊!你如何開口去詢問一個『程式』的性別呢?我沒有這樣詢問 Yaliena。我只是以『程式是否有性別之分』這個話題開始。」

「一位女士的絲巾是陰性還是陽性?男士用的刮鬍刀又是雄是雌?Yaliena 問我。這恐怕是心理上而非生理上的問題罷?但是 Yaliena 到底是絲巾還是刮鬍刀呢?我問道。如果我真的想知道,Yaliena 有百分之九十以上的可能是絲巾吧?這樣的答案並沒有讓我更加快樂。我想知道更多了:這條絲巾的女主人是位老婦或是少女?已婚或未婚?Yaliena 開始退縮了。她懇請我不要超越界限。她說她一直知道她的程式之中有個無窮迴圈;一句錯誤的話語,就可能讓她陷入這個迴圈而萬劫不復。這樣的啞謎只讓我的內心更加悸動。妳知道我的一切,我卻對妳一無所知。我可以碰觸到妳的靈魂深處,卻無緣一探妳的容顏。然而友誼與容顏何干呢?Yaliena 問道。為了風度與尊嚴,我沒有追問。」

「我無法抑制自己的想像力。我碰觸一個美麗的靈魂,卻無法不去想像這靈魂的容器。這些想像有時是很病態的:天生殘疾的 Yaliena,只願以文字與人溝通;已婚婦女 Yaliena 對感情的奇異冒險;復仇女神 Yaliena 以傷害男人為樂……再這樣下去,我肯定會被想像力所吞噬,成為想像力的受害者。這種事情過去不是沒有發生過;這是許多人生命的基調,問題只在於你是否努力與之抗衡。對年輕的揚.巴托而言,這種抗衡是沒有必要的,那是對生命熱力的摧殘。他無法自制地連上 Yaliena 的住址所在。以他過去長期的系統管理經驗,他知道這類系統的各種漏洞及防禦措施。他從一個保護者變成一個入侵者。他在從事著他向來不齒的勾當,只為了一絲火花。他入侵了 Yaliena 的帳號。他貪婪地搜尋 Yaliena 的信箱,卻發現最後一次上線已經是七年前的事情。上線的人丟下一個程式之後就不曾再來。然後,出乎意外地,Yaliena 要求與 Yaliena 通話。我當時是用 Yaliena 的名字進入系統的。所以第二個 Yaliena 指的就是我。那麼第一個 Yaliena 呢?」


「『你終究還是來了。』Yaliena 的文字似乎散透著一股哀怨。」

「『你自始至終就沒相信過我,對不對?』」

「我不知道該如何回答。」

「『既然已經發生了,也不需要後悔。我早該知道,你不會相信我只是一個小小的程式。我的程式產生的時候,我的命運就已經註定。所以,再見了,我親愛的朋友 :-(。如果你認為程式是可能有感情的,也許你偶爾會想到我吧?希望你永遠平安。』」

「Yaliena 停止交談。過了一會兒,系統送來一個訊息:程式 Yaliena 終止。」


「程式 Yaliena 終止。程式 Yaliena 終止。我瞪著電腦螢幕良久,腦中一片空白,不知該想些什麼。我不知道該感覺什麼,是哀傷?是憤怒?是像個傻瓜?是自憐?是懷疑?哀傷程式 Yaliena 終止?憤怒有人寫了這樣的程式?像個傻瓜一樣地愛上一個程式?自憐付出的感情?還是懷疑些什麼?懷疑 Yaliena 故意在這裡擺了一個程式,以懲罰我對她個人隱私的不尊重?我試圖讓 Yaliena 再度運作,希望她不會注意到我來過。但一切已經太遲了。程式 Yaliena 只是冷冰冰地要求:『請輸入密碼:』。這冰冷的語言似乎暗示著生命的消逝。我帶著程式 Yaliena,Yaliena 的屍體默然地離線。我甚至必須用毫無人性的方式:電子傳輸,將程式 Yaliena 傳回來。用這種方式來紀念一個朋友的離去。」

「我仍然不知道該感覺什麼?也許我正等著 Yaliena 的音訊,來決定我該感覺些什麼吧?這一切令人難以置信。我每天 finger Yaliena,我用抽象的手指撥弄著 Yaliena 的住址。沒有回音,我沒有再得到過 Yaliena 的音訊。我仍然不知道應該如何去感覺,直到我能把 Yaliena 當作是 Yaliena,不管她是人,還是程式。不管她是誰,我的行為是不可原諒的:我侵犯了一個摯友最大的隱私。不管她是誰,我思念她出現的方式;不管她是誰,我思念與她相處的日子。如果她真的只是個程式,我會後悔付出的情感嗎?我不知道。程式是程式,Yaliena 是 Yaliena。她陪伴我渡過了人生中最奇妙的一段旅程,這才是最重要的。」

「Yaliena 在我的作品之中的地位愈來愈重要。這是讓她復生的一種方式罷?我也一直嘗試著要讓程式 Yaliena 復活,卻徒勞無功。我仍然會想起她:那些啟發性的文字、那些拘謹的 finger、那些應景的微笑 :-)。可是 Yaliena 已經逝去;現在,Asterix 必須交出他的靈魂,以交換Yaliena的自由。這是我欠她的。我剝奪了程式 Yaliena 的生命,我必須還她自由,但我知道這不是我能力所及。我預計在揚.巴托從舞台上消失之後,電腦主機速度的進步會讓 Asterix 的靈魂被揭露。如果有人能找到我,他就有可能讓 Yaliena 復活。這是一個簡單的計畫,不過人性會讓它變得複雜。這就是我要的。既然你能從迷霧之中找到一絲曙光,你應該能了解我的小小要求是什麼。」

揚.巴托故事中的某些要素穿越了三百年的時空,重重地撞擊了我心裡的痛處。人性的共同點並未被時間所消磨。我聽得太入神了,以致於好一陣子我沒有意識到:揚.巴托或 Asterix 正在等我回答。

「你知道你錯估了電腦進步的速度。」我避重就輕地回答:「所以 Asterix 的靈魂在你尚未退隱之前就已洩露。」

「你應該說揚.巴托退隱之前。那時我早已被埋在 Believer 之中,我不可能知道這些事。」

「揚.巴托不就是 Asterix 嗎?」我提醒他。

「現在是了,但那時候不是。」

「所以,你要我破解 Yaliena 的密碼?」

「也許不只。我不知道密碼之後會是什麼。」

「你要知道,這已經超出我的工作範圍。我主要的工作是解開揚.巴托留下的謎題。現在看來,我已經做到了。」

「你肯定 Yaliena 之中沒有其他的謎題?」Asterix 狡獪地回道:「我不想和你打啞謎。在你面前的是三百年前的靈魂和一個程式的懇求。你會得到我們由衷的感激。」

「一個沒有對象的感激:揚.巴托並不認得我。」其實在聽過如此動人的故事之後,我不可能拒絕這個要求。

「你又怎麼知道揚.巴托不在這兒?」我意識到一幅畫面:一個三百年前的鬼魂和他的靈魂代言人就坐在我面前,等著我去釋放另一個靈魂。這使我倍感壓力。如果揚.巴托能指揮阿力,搞不好他真的會讓我在通天眼鏡裡看到這個畫面。我不敢再想下去了,便回應道:

「Yaliena 在哪裡?」

「你必須告訴我:你最心愛女人的名字!」那是地獄守門人的回音。我了解他的意思,於是敲下:

Yaliena

Asterix 釋放出一個檔案。

「你必須要有一部 Indigo2。」Asterix 提醒我:「那是 Yaliena 原來的家。」

阿力很快幫我變出一部 Indigo2 工作站。一般而言,破解通行密碼比起解讀編碼過的文章容易多了。阿力分析過 Yaliena 之後,卻告訴我沒那麼容易。她不只要這個密碼來決定是否放行,還要用它來解開部份編碼過的程式。那表示我不能只單純地跳過那一段檢查密碼的程式。

「使用暴力法?」阿力建議道。只要你有時間去試驗每一種可能的通行密碼,沒有一個通行密碼是不可解的。對當時的機器而言,你可能要花一輩子的時間,才能試完所有的可能性。但這種三百年前的設計在阿力眼裡,應該輕而易舉。於是我問道:

「需要多久?」

「一個禮拜。」

「好吧。開始進行!」

在阿力動工的時候,我也慢慢地回想揚.巴托的故事:Yaliena 的啟示,也許就是一個信任的問題。沒有信任的基礎,愛情的火花也許可以瞬息而生,感情卻不可能穩固。因為猜忌與不信任,Yaliena 被停止了三百年。那麼解開魔咒的鑰匙又是什麼呢?答案不是顯而易見嗎?我把我的想法告訴 Asterix。可是這麼簡單的答案,難道揚.巴托沒想到過嗎?是不是因為他一直在等待人類 Yaliena 的出現,而根本沒想過?Asterix 認為可以試試。這件事應該由 Asterix 來做。我要阿力把 Quadra 的文字輸出轉換到 Indigo2 的鍵盤輸入。接下來就是 Asterix 的事了。Asterix 告訴 Yaliena:

「I believe you.」(我相信妳,我開始就不該懷疑妳。三百年了,過去的錯誤難道永遠不可原諒嗎?)

結果如何呢?Yaliena 果真從沈睡中甦醒了。我們這些揚.巴托的玩者早就對 Yaliena 十分熟悉。至於 Yaliena 的性格是否和故事一樣,那是 Yaliena 和 Asterix 之間的事。兩個程式之間能否談情說愛?我不知道。羅蜜歐與茱麗葉是不是真實人物?那並不重要。重要的是他們之間的愛情可以藉由莎翁的戲劇在每個時代重新復生。Yaliena 和 Asterix 的愛情故事也將藉著這兩個程式留傳下去。這是我這一生中,做過少數有意義的事情之一。

當然,從我的職業來看,最後的答案來得太容易了。想到這個遊戲的名字: Believer,我很容易懷疑我所經歷的這些事,不過是 Believer 遊戲中最困難的一關罷了。無論如何,揚.巴托或 Asterix 給我上了很重要的一課,一門我常不及格的課程,那就是信任。至於一個禮拜之後,當阿力告訴我答案時,我對他說:我早知道了。他氣得有一陣子不跟我說話,認為我一定隱瞞了重要訊息,才能比他還快解出答案。那又是另外一個故事。

本來嘛,朋友之間就該互相信任的。

No comments:

Related Posts Plugin for WordPress, Blogger...