宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

時空穿越的代碼幽靈:《戰慄時空2》十年未被發現的BUG

2025年11月22日 首頁 » 遊戲速遞

二十多年後的今天,玩家們仍在不斷發掘傳奇射擊遊戲《戰慄時空2》令人著迷的新細節。前Valve設計師湯姆·福賽斯近日披露,2013年曾發現一個足以導致《戰慄時空2》遊戲崩潰的BUG——這個BUG如同穿越時空,感染了2004年發布的原始版本。

時空穿越的代碼幽靈戰慄時空2十年未被發現的BUG

根據福賽斯在Mastodon平台的詳細敘述,當時他與Valve程序員喬·路德維希正致力於將《戰慄時空2》移植到Oculus Rift VR設備。在遊戲開局階段,福賽斯遭遇了一個匪夷所思的BUG:某扇門無法開啟,徹底阻斷了主線進程。更蹊蹺的是,從未有人記得在原版遊戲中遇到過這個BUG。福賽斯甚至調閱了相同場景的實機錄像,確認原版根本不存在這個問題。

「糟了,這絕對無法發布。」福賽斯寫道,「我召集了包括原版開發成員在內的同事驗證,結果確認遊戲確實存在故障。更詭異的是,即便退出VR模式BUG依然存在——說明這不是我們移植造成的。但所有相關代碼都未曾改動過。」Valve團隊隨後深挖代碼庫,用2004年原始代碼重新編譯遊戲,驚人地發現這個BUG竟真的存在於最初版本中。這個2013年首次發現的BUG,仿佛穿越時空污染了九年前的遊戲文件。

時空穿越的代碼幽靈戰慄時空2十年未被發現的BUG

當時最緊迫的任務是在Oculus Rift版發布前完成修復,但更令人毛骨悚然的是這個BUG的時空穿越特性。福賽斯描述道:「所有人都震驚了——這絕非普通BUG,它就像逆流時間長河感染了原始版本!」

開發團隊最終鎖定癥結:守衛站立位置過於貼近門扉,當門扇開啟時,守衛的腳趾與門板發生碰撞,導致門扇彈回閉合狀態。雖然修復工作「耗費大量精力重啟調試工具」,但解決方案本身其實「很簡單」。真正的謎團在於:為何這個BUG在九年間從未發作?為何2004年時守衛的腳趾不曾阻礙開門?

「我們反覆驗證原始代碼,確認守衛的腳趾始終處於妨礙位置。這個BUG一直存在,為何當年門能正常開啟?」福賽斯發出靈魂拷問。

時空穿越的代碼幽靈戰慄時空2十年未被發現的BUG

謎底最終浮出水面:一切源於「經典浮點數精度問題」。福賽斯解釋道:《戰慄時空2》原版發行時SSE指令集尚未普及,多數代碼採用x87浮點運算指令集。這種架構精度參差不齊(32/64/80位混合),而十年後SSE指令集已成為x86CPU標準,其32/64位精度嚴格按代碼要求執行。

正是這種精度差異導致了關鍵區別:在原始x87架構中,守衛靴底與地面的摩擦力恰好使其在碰撞時旋轉足夠角度容門通過;而SSE架構下「大量微精度差異」導致守衛旋轉角度略微不足。「在下一幀運算時,他的腳趾仍阻礙門徑。遊戲物理引擎不允許穿模,門扇只能以完全彈性碰撞反彈閉合——你就此陷入死局。」

這意味著,BUG其實始終潛伏在遊戲中。由於原始編譯器默認使用舊式浮點精度,遊戲物理運算會產生細微差異,正是這毫釐之差,決定了那扇關鍵門扉能否開啟。

「這就是最終答案。」福賽斯總結道,「遊戲開發兩大bug溫床——門系統與浮點精度——共同將簡單的NPC站位問題,演變成這場穿越時空的技術謎案。」

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新