今天刷到一條技術圈的消息,挺有意思。那個專門讓Windows游戲能在Linux上跑的翻譯層VKD3D-Proton,它的核心開發者最近被《極限競速:地平線6》搞得很頭疼。這位老哥在提交代碼補丁的時候沒忍住,直接來了句:"This game is extremely broken"——這游戲極其破碎。
事情是這樣的。我在做PC版性能分析的時候,這游戲在Windows上跑得挺順,各種配置都能玩,也沒遇到什么bug。但Linux玩家那邊完全是另一幅景象,問題一堆。好在VKD3D-Proton的開發者Hans-Kristian Arntzen可能找到了根源。
![]()
先給不太懂的朋友解釋一下VKD3D-Proton是干嘛的。你可以把它想象成一個翻譯官——Windows游戲說的是Direct3D 12,Linux系統聽不懂,這個軟件就把它翻譯成Vulkan,這樣游戲就能在Linux上跑了。GamingOnLinux最先發現了Arntzen提交的一批新補丁,都是針對《地平線6》的兼容性修復。
但比代碼更有趣的是開發者的吐槽。Arntzen在提交說明里寫得很直白,說這游戲"極其破碎"。具體技術細節對普通玩家來說可能像天書,但有一條我看得懂:游戲存在"use-before-alloc"的bug,也就是"先使用后分配"——程序在把資源提交給GPU之后才開始分配,還在GPU運行的時候往描述符堆里寫指針。
這啥概念呢?打個比方,Direct3D 12的世界里,你得先把房間收拾好、東西擺好,再告訴GPU"可以進來了"。你要是邊收拾邊喊人進來,或者東西還沒擺好就讓人動手,那不亂套才怪。GPU可能會要一個根本不存在的數據,或者直接崩潰。
有意思的是,這些問題很多跟AMD RDNA 2及更新顯卡的代碼有關,但RTX顯卡也沒逃掉。Nvidia已經表態了,說會在"即將到來的驅動更新"里修復。所以兩邊都有鍋,不只是翻譯層的適配問題。
我去ProtonDB上瞄了一眼,Linux玩家確實怨聲載道。但有個現象挺反常:Steam Deck用戶的評價大多還不錯。這很重要,因為Steam Deck也是靠Proton跑Windows游戲的。如果Xbox Game Studios完全沒打算讓這游戲在翻譯層上運行,那它根本沒必要跟Valve合作搞Steam Deck驗證。
所以情況有點微妙。官方是認證過Steam Deck的,說明至少在一定程度上支持這種運行方式。但實際體驗差距這么大,Deck用戶說好、桌面Linux用戶叫苦,可能是硬件差異、Proton版本、或者具體配置不同導致的。
Arntzen的補丁還在等待合并到VKD3D-Proton主線。對Linux玩家來說,這至少是個盼頭——有人正在從翻譯層這邊想辦法。但核心問題還是游戲本身的代碼質量,翻譯層開發者再厲害,也只能是打補丁,沒法重寫游戲。
這件事也讓我想到一個老問題:PC游戲的"PC"到底包不包括Linux?嚴格來說,官方只承諾了Windows版本能玩。但Steam Deck驗證的存在,又讓人覺得Linux至少是個"半官方"平臺。現在這種承諾和體驗之間的落差,最難受的還是玩家。
至于Windows玩家,目前看來影響倒不大。我測試的時候沒遇到這些底層問題,游戲跑得挺穩。但如果你是在Linux上玩,或者打算用Steam Deck跑,可能得等幾輪更新——不管是Nvidia的驅動,還是VKD3D-Proton的新版本。
最后說句實在的:翻譯層開發者能這么直白地吐槽一款3A大作"極其破碎",在開源圈子里也不算多見。通常大家都會客氣一點,說"存在一些兼容性挑戰"之類的。這次直接上強度,說明問題可能確實有點離譜。游戲發售初期的技術債務,最后往往還是玩家和社區開發者來還。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.