玩家在修改《史丹利的寓言》時意外發現了類似“千年蟲”的Bug

玩家在修改《史丹利的寓言》時意外發現了類似“千年蟲”的Bug

經典Meta遊戲《史丹利的寓言》有一個非常著名的成就叫作“Go Outside”,需要玩家連續五年不開啟遊戲才能解鎖,而在今年發售的《史丹利的寓言 豪華版》中,同樣設定了一個名為“Super Go Outside”的成就,這次的解鎖條件則變成了“連續十年不開啟遊戲”。

按照成就說明,在這個於今年4月份上線的遊戲裡,想獲得這個成就最快也必須得等到2032年4月,但如果你現在開啟Steam的遊戲頁面,會發現已經有3。8%的玩家解鎖了該成就。

玩家在修改《史丹利的寓言》時意外發現了類似“千年蟲”的Bug

顯然,這次又有“時間刺客”了。透過調整系統時間來提前獲得成就,這種卡Bug般的玩法早在多年前就被玩家們熟練使用。初版《史丹利的寓言》於2013年釋出,但在2018年到來前,不少玩家就已經透過修改時間提前拿到了成就,官方無法制止這種行為,卻也曾半開玩笑地釋出過一條推文:

玩家在修改《史丹利的寓言》時意外發現了類似“千年蟲”的Bug

這段話最開始是玩家用來嘲諷一位開修改器通關《只狼》的遊戲編輯所做,官方這麼用更像是玩梗。但最近,有人在試圖透過修改時間獲取成就時,卻意外發現了一個奇怪的Bug。

一位玩家在推特上分享了自己的經歷:當他為了圖省事,一口氣將系統時間拉到2040年時,突然發現Steam的客戶端莫名其妙被修改了字型。

玩家在修改《史丹利的寓言》時意外發現了類似“千年蟲”的Bug

根據玩家的說法,他僅僅是修改了電腦的系統時間,Steam的客戶端就發生了錯誤並切換到了上圖的手寫字型模式。

在經過一系列調查後,這位使用者自己給出了結論——這得歸結於“2038年問題”。如今在32位Unix系統中,都是以1970年1月1日0時作為時間的基準點,往後的時間都以“秒”為單位記錄成一個有符號的32位正整數(1970年以前則用負數記錄)。

32位有符號正數換算成十進位制就是“2,147,483,647”,如果用秒來計算,則時間剛好到2038年的1月19日3點14分07秒,如果時間再往後,系統就會出現一些未知的錯誤。

這位使用者推測可能是在調整時間後,計算機32位unix系統內的字型庫出現了其他bug,並導致Steam內的字型被隨機替換了。

雖然如今多數使用者的作業系統已經換成了64位,但並不能解決所有問題,這次因為字元溢位僅僅改變了字型,但誰也不知道下次會發生什麼更離奇的時間。在弄清了原因後,這位發現問題的玩家總結道:

“2038年將會是格外有趣的一年。”