舊酒換新杯,Linux 遊戲的春天

語言: CN / TW / HK

Steam Deck 是最近最火的遊戲掌機,由 Steam 的母公司 Valve 在今年初發布,至今一機難求。正式發售後,從各種評測視頻中我們可以看到 Steam Deck 的遊戲表現相當不錯。

可是你又是否知道 Steam Deck 使用的是基於 Linux 開發的操作系統,但是卻能運行各種 Windows 平台的大型遊戲,這背後多虧了一個兼容層「Proton」。而 Valve 已經把這個兼容層開源奉獻給社區,本文就來一起在 Linux 下實踐和研究一下這個神奇的兼容層,看看實際表現如何。

Proton 的本質是什麼?

Valve 在 Github 的 開源主頁 中是這麼描述 Proton 的:

Protonis a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this.

這裏透露了幾個信息:Proton 是一個在 Steam 的客户端中使用的工具;它的目標就是讓 Windows 遊戲運行在 Linux 操作系統中;它使用了 Wine(紅酒)來實現。

我們知道,Wine 是在 Linux 平台上一個久負盛名的運行 Windows 應用的兼容層,不同於虛擬機或者模擬器去虛擬化 / 仿真 Windows 的運行時,Wine 主要靠動態地轉譯 Windows 的系統調用為 POSIX 的系統調用來兼容 Windows 應用的。

但是,從 Wine 的支持應用數據庫 appdb.winehq.org 來看,我們看到 Wine 目前對新遊戲和新應用的兼容性是比較差的。所以也從側面表明了 Valve 基於 Wine 做了很多定製開發的工作才能達到比較好的運行效果。

如何安裝 Proton?

我一開始也是打算自己編譯安裝 Proton 的,Proton 的 Github 主頁上詳細闡述瞭如何編譯,甚至搭建好了 Docker 容器,以及編譯的產物放在哪個目錄下生效。但是,後面仔細研讀了 Readme 後發現, 我們並不需要自行編譯安裝 Proton,Steam Linux 客户端已經自帶了該工具。

這裏有一個小插曲,目前 Steam 提供的 Linux 客户端是 32 位的,在我全新安裝了一遍 Ubuntu 20.04 操作系統中,並不能直接雙擊運行安裝成功。有兩個方法可以安裝,其一是啟用 multiverse 這個倉庫並安裝其中的 steam 包,其二是啟用 i386 這個 32 位的架構支持然後就可以安裝從官網下載的 Steam 安裝包了。詳情可以看這個網站的 教程

然後,第一次打開 Steam 客户端的過程中耐心等待,它需要安裝很多的更新,其中就包括了 Proton 這個工具,這其中也需要良好的網絡環境,如果安裝更新不成功的話,反覆多嘗試幾次。然後在菜單欄 Steam> Settings> Steam Play 中,勾選 「Enable Steam Play for supported titles」 和 「Enable Steam Play for all other titles」 兩個選項,默認它會選 「Proton Experimental」 這個 Proton 版本,建議手動選擇最新的穩定分支版本。確認後需要重啟 Steam 客户端才會生效。

我反正一次就安裝更新就成功了

Proton 實際表現如何?

由於我使用的一台幾年前的筆記本,CPU 為 i5-5200U + GPU 為 GeForce 840M,格式化全盤安裝 Ubuntu 20.04 進行實驗測試,所以遊戲表現不會很出眾,僅供參考。

當安裝完 Proton 並重啟 Steam 客户端後,原本灰色不可點擊的安裝按鈕會變成藍色(INSTALL),然後經過漫長的下載安裝遊戲過程後,它就能看到那個激動人心的綠色按鈕(PLAY)。點擊之後,還需要另一個漫長的初次啟動過程,我觀察了一下是在安裝「Microsoft DirectX for Windows」和「Vulkan」,以及進行 「Processing Vulkan shaders」。這個過程也是要保證網絡狀況良好。

然後就能很順利地進入遊戲了,完全不需要用户額外安裝配置什麼,十分省心。我簡單地玩了一下巫師三,遊戲開低特效的模式下鎖 30FPS,也能穩定在 25FPS 的水平(左上角)。流暢度主觀來説,跟我印象中當年用這台電腦玩的時候是差不多的。

久違的感動

Proton 對遊戲的支持情況如何?

跟 Wine 一樣,Proton 也有自己的支持遊戲數據庫 protondb.com 。上面對現有的流行遊戲都進行了評級,除了 Linux 原生支持的遊戲以外,評級白金的遊戲不用額外調整就能玩,評級金的遊戲需要一些調整就能玩,評級銀的遊戲可能就差強人意了。

那麼如何對遊戲進行調整呢?在數據庫的某一款遊戲中,點開會發現玩家的各種評論,其中不乏大神的評論,會報吿一串神祕的啟動參數。比如 GTA5 遊戲的評論中,大神留下了 DXVK_ASYNC=1 WINE_FULLSCREEN_FSR=1 %command% 這串神祕參數。我們可以點開 Steam 遊戲界面的設置小齒輪,在通用選單裏把這串神祕參數原封不動填寫到啟動選項裏就可以了。

總結

如果你正好日常使用 Linux 電腦進行深度學習的研究,也有小小的遊戲需求,我覺得 Proton 正好就切合這一部分羣體的需要,不用額外再安裝配置雙系統。Proton 整體使用起來真的非常簡單,如果正好有環境,不妨一試。

> 下載少數派 2.0 客户端、關注少數派公眾號,解鎖全新閲讀體驗 :newspaper:

> 實用、好用的正版軟件,少數派為你呈現 :rocket: