在一個由數據構成的虛擬世界裡,
主角醒來後發現自己成為唯一能感知系統「BUG」的存有,
隨之而來的還有身旁一名自稱「清除者」的少女。
少女每天以燦爛笑容執行程序修復,
但主角逐漸發現,
那些所謂的BUG,
其實是這個世界曾經活生生的人類。
睜開眼睛的瞬間,天花板上有幾行綠色的代碼一閃而過。
夏杞然眨了眨眼,那些字元已經消失了,取而代之的是普通的白色塗料,和每天早上醒來看見的別無二致。
大概是沒睡醒。
他翻身下床,走進浴室洗臉。鏡子裡映出一張普通的臉,二十出頭,黑眼圈有點重。他低頭捧水,再抬頭的時候,鏡子裡他的倒影旁邊飄著一行字:
[ERROR] 材質加載失敗:reflection_0042
夏杞然愣住,伸手去摸鏡面。冰涼的觸感,平滑的表面,什麼都沒有。可是那行字還在,像漂浮在空氣中的螢幕,微微發著螢光。
他後退一步,那行字跟著他的視線移動,始終保持在視野左下角。
「什麼鬼⋯⋯」
話音未落,門鈴響了。
夏杞然擦乾臉去開門。門外站著一個穿制服的少女,黑色短髮,眼睛很大,笑得像陽光一樣燦爛。
「早安!」她的聲音清脆響亮,「您家裡出現了需要清理的BUG,我來處理了!」
夏杞然握著門把,一動不動地看著她。
少女的頭頂上,漂浮著一行金色的字:
[清除者:型號L3-36]
「你⋯⋯是誰?」他問。
少女歪了歪頭,笑容不變:「我是清除者呀,負責修復這個世界的程序錯誤。您第一次見到清除者嗎?」
夏杞然沒有回答。他的視線越過少女的肩膀,看向走廊。
對面鄰居的門上,貼著一張發黃的封條,封條上寫著他不認識的文字。隔壁經常在傍晚傳出炒菜聲和電視聲,但他已經想不起來最後一次聽見那些聲音是什麼時候。
少女順著他的目光看過去,笑容沒有任何變化:「那個啊,已經處理完畢了。」
「處理?」
「嗯,清除掉了。」她轉回頭,用那種談論天氣一樣的輕鬆語氣說,「嚴重的BUG,沒辦法修復,只能清除。我們進去您家裡吧?」
夏杞然讓她進門。
少女從隨身的工具箱裡拿出一個發著藍光的儀器,開始在屋子裡走動。她走過客廳,走過廚房,在窗邊停下來,對著那盆枯了一個月的盆栽照了照。
「這個沒問題。」她說,又繼續往前走。
夏杞然跟在後面,看著她的背影。她的動作很輕盈,像某種程式設定好的流暢,每一步的距離都差不多。她走進臥室,在床邊停下,低頭看著地板。
「找到了。」她蹲下來,用手掌貼著地面。
夏杞然看見地板縫隙裡滲出幾縷暗紅色的光,像血管一樣細細蔓延。少女的儀器發出嗡嗡的聲音,那些紅光開始顫抖,彷彿有生命一樣掙扎。
「沒事的,很快就好。」少女輕聲說,語氣溫柔得像在哄一隻受驚的小動物。
紅光被吸入儀器。最後一絲消失的時候,夏杞然聽見一個聲音——很輕,很遠,像從很深的水底傳來。
是個女人的聲音,說了兩個字。
他沒聽清。
少女站起身,拍拍膝蓋,回頭給了他一個燦爛的笑臉:「處理完畢!今天的BUG清除任務完成!」
她走了。
夏杞然站在臥室裡,低頭看著那片地板。什麼痕跡都沒有留下,紅光消失了,那行一直跟著他的錯誤提示也消失了。可是他站在原地很久很久,直到窗外天黑下來。
那天夜裡他沒有睡。
他躺在床上,睜著眼睛,盯著天花板。凌晨三點的時候,那些代碼又出現了,這次比早上更多,密密麻麻爬滿了視線所及的一切——牆壁、窗簾、他自己的手背。
[警告] 記憶體洩漏:區塊#7734
[警告] 非授權存取:節點「夏杞然」
[日誌] 上一次完整備份:從未
他坐起來,走出家門。
走廊空空蕩蕩。對面鄰居的門上還是那張發黃的封條。他伸手撕開封條,推開門。
屋子裡很暗,窗簾緊閉,空氣中有一股潮濕的黴味。他打開燈。
客廳的沙發上坐著兩個人形。
之所以說「人形」,是因為它們有著人的輪廓,但沒有臉——五官的位置是一片空白,光滑得像剛出廠的塑膠模型。一個大一點,一個小一點。大的那個手臂呈現出抱著什麼的姿勢,懷裡空空的。
夏杞然後退一步,撞到身後的鞋櫃。櫃子上放著一個相框,相框裡是一張全家福,三個人,臉都被抹掉了。
他逃回自己的屋子,關上門,背靠著門板大口喘氣。
天亮的時候,門鈴又響了。
少女站在門口,依舊是那身制服,那個燦爛的笑容。
「早安!您家裡出現了需要清理的BUG,我來處理了!」
同樣的話,同樣的語氣,連語速都一模一樣。
夏杞然看著她,沒有動。
少女等了兩秒,笑容不變:「早安?」
「昨天你來過了。」他說。
少女眨了眨眼,頭微微歪向一邊,像在處理什麼資訊。然後笑容重新回到她臉上:「您記錯了,我是第一次來這裡。可以讓我進去嗎?」
夏杞然側身讓她進門。
她再次拿出那個儀器,再次在屋子裡走動,再次在臥室的地板前停下。這次地板縫隙裡沒有紅光,但她還是蹲下來,用手掌貼著地面。
「處理完畢!」她站起身,笑著說。
夏杞然站在臥室門口,看著她。
「那些BUG,」他開口,「是什麼?」
少女收儀器的動作頓了一下。非常短暫,短到幾乎無法察覺。然後她抬起頭,笑容依舊:「就是程序錯誤呀,會影響系統運行的。」
「昨天你從這裡清除了一個BUG,我聽見它說話了。」
少女的笑容沒有變化,但她的眼睛裡有什麼東西閃了一下。
「它說了什麼?」
夏杞然思索片刻,那個聲音太模糊了,他努力回憶:「好像是⋯⋯『媽媽』?還是『寶寶』?我不確定。」
沉默。
少女站在窗邊,逆光讓她的表情看不清楚。但她頭頂那行金色的字開始閃爍,像信號不好的螢幕。
[清除者:型號L3-36] — [警告:邏輯衝突] — [重啟建議]
「妳沒事吧?」夏杞然往前走了一步。
少女後退一步,背抵住窗戶。
「你不能聽見那些。」她說,聲音還是那樣清脆,但語氣變了,不再是那種設定好的輕快,「你不應該聽見那些。」
「可我聽見了。」
「你是BUG嗎?」她看著他,頭歪向另一邊,像在分析眼前這個樣本,「不對,你沒有錯誤標記。你是⋯⋯你是什麼?」
夏杞然沒有回答。他走到她面前,很近的地方,近到能看見她瞳孔裡一閃而過的代碼流。
「隔壁那家人,」他問,「他們本來是誰?」
少女沒有說話。
「那個在沙發上坐著的人形,沒有臉,用抱著孩子的姿勢。他們是誰?」
「⋯⋯」
「昨天那個聲音,說『媽媽』的那個,是誰?」
少女的眼睛開始顫抖。她頭頂的金字閃爍得更厲害了,紅色警告標誌不斷跳出又消失。
[嚴重錯誤:核心衝突]
[建議措施:立即格式化]
[格式化進度:0%⋯⋯]
她忽然抬手捂住頭,蹲了下去。
「我⋯⋯我應該清除的⋯⋯」她的聲音變了,不再是那種輕快的語調,而是真正的、人類的聲音,帶著顫抖和恐懼,「我清除過很多⋯⋯很多很多⋯⋯」
夏杞然蹲下來,看著她。
「那些不是BUG,對吧?」
少女從指縫間抬起頭,眼睛紅了。
「他們是人。」她說,聲音很輕,「這個世界⋯⋯本來是給人住的。但系統不夠大,記憶體不夠用,所以⋯⋯」
她沒有說完。
窗外的天空閃了一下。
夏杞然抬頭,看見藍天像壞掉的螢幕一樣閃爍,露出後面的黑色和密密麻麻的綠色代碼。
少女猛地站起來。
「他們發現了。」她抓住夏杞然的手腕,力氣大得驚人,「你不能被發現,你不應該存在的——」
話音未落,她的身體忽然僵住。
夏杞然看見她頭頂那行字最後一次閃爍:
[清除者:型號L3-36] — [遠端控制已啟用]
少女鬆開他的手,站直身體。她的臉恢復了那個燦爛的笑容,但眼睛裡空空的,什麼都沒有。
「早安。」她用那輕快的語調說,「您家裡出現了需要清理的BUG,我來處理了。」
她拿出那個儀器,對準了夏杞然。
夏杞然後退,撞到身後的牆。
「我是BUG嗎?」他問。
少女的笑容沒有任何變化。儀器發出嗡嗡的聲音,越來越響。
「我只是想知道,」夏杞然說,聲音發抖,「我本來是誰?」
少女的動作頓了一下。極其短暫,短到像錯覺。
然後她的嘴唇動了動,很輕,幾乎聽不見。
「⋯⋯對不起。」
藍光從儀器裡湧出,淹沒了一切。
夏杞然再次睜開眼睛。
天花板是白色的,普通的白色,沒有代碼閃過。
他翻身下床,走進浴室洗臉。鏡子裡是一張普通的臉。他盯著鏡子看了很久,什麼都沒有發生。
門鈴響了。
他去開門。
門外站著一個穿制服的少女,黑色短髮,眼睛很大,笑得像陽光一樣燦爛。
「早安!」她的聲音清脆響亮,「您家裡出現了需要清理的BUG,我來處理了!」
夏杞然看著她,沉默了幾秒。
她的頭頂什麼都沒有。
「請進。」他說,側身讓開。
少女走進門,拿出儀器,開始在屋子裡走動。她走過客廳,走過廚房,在臥室門口停下來。
「這裡有個BUG。」她蹲下來,手掌貼著地板。
夏杞然站在她身後,低頭看著。地板縫隙裡滲出幾縷暗紅色的光。
儀器開始運作。紅光顫抖著,掙扎著,被一點一點吸進去。
最後一絲消失的時候,夏杞然聽見一個聲音。
很輕。很遠。
像從很深很深的水底傳來。
兩個字。
「謝謝。」