無需虛擬機(jī),在 Mac 上運(yùn)行 Windows 游戲

蘋果全系產(chǎn)品現(xiàn)已采用自研芯片 Apple Silicon,不再支持其他品牌的顯卡。為此,蘋果還研發(fā)了適用于其硬件的專用底層圖形 API,名為 Metal。自從 macOS 10.14 起,蘋果停止支持 OpenGL 和 OpenCL。因此,在 macOS 上進(jìn)行大型游戲開發(fā)時(shí),編寫 Metal 代碼變得至關(guān)重要。然而,盡管 Metal 在蘋果生態(tài)系統(tǒng)中得到廣泛應(yīng)用,但在引擎開發(fā)者和游戲開發(fā)者中并不普遍受歡迎。其中一個(gè)主要原因是蘋果在游戲界的市場(chǎng)份額相對(duì)較低。由于蘋果設(shè)備的高昂價(jià)格和相對(duì)封閉的生態(tài)系統(tǒng),游戲開發(fā)者通常更傾向于將資源投入到更廣泛的平臺(tái),例如 Windows 和主流的游戲主機(jī)。
然而,在 2023 年的 WWDC 大會(huì)上,蘋果帶來了一個(gè)令人振奮的轉(zhuǎn)機(jī)。他們推出了一款名為 Game Porting Toolkit 的游戲移植工具包,其中包含一個(gè)專門用于轉(zhuǎn)譯 DirectX 的層。這類似于 SteamDeck 上的 Proton,該工具包能夠自動(dòng)將 Windows 的 DirectX API 轉(zhuǎn)譯成 Metal API,實(shí)現(xiàn)游戲的自動(dòng)移植,極大地減輕了開發(fā)者的工作負(fù)擔(dān)。

盡管蘋果在游戲界的市場(chǎng)份額相對(duì)較低,但 Game Porting Toolkit 的推出表明蘋果正積極努力擴(kuò)大自己在游戲開發(fā)領(lǐng)域的影響力,為開發(fā)者提供更多機(jī)會(huì)和便利。這對(duì)于那些本來不太愿意為蘋果平臺(tái)開發(fā)游戲的開發(fā)者來說,無疑是一個(gè)重要的利好消息。
安裝蘋果官方 Windows 游戲模擬器
為了幫助開發(fā)者 “快速驗(yàn)證游戲在 macOS 上的運(yùn)行體驗(yàn)”,蘋果在 Game Porting Toolkit 中包含了一個(gè) Windows 游戲模擬器。開發(fā)者可以直接使用 Homebrew 安裝這個(gè)模擬器,從而簡(jiǎn)化測(cè)試過程。
我有一臺(tái)閑置的 M1 Pro 筆記本,升級(jí)到了 macOS 14。安裝很簡(jiǎn)單:首先確保安裝了 Rosetta2 轉(zhuǎn)譯層、XCode 15.0,以及 x86 版本的 Homebrew,再用 Homebrew 安裝模擬器就行了。
我的系統(tǒng)原本沒有 Rosetta,但已經(jīng)安裝了 XCode 15。這是我安裝模擬器的全過程:
Homebrew 安裝實(shí)際上是在編譯它的 toolchain,花費(fèi)的時(shí)間可能比較長(zhǎng)。
然后,從?Apple Developer Downloads?里找到 Game porting toolkit beta,下載并運(yùn)行 dmg。
這樣就安裝完成了。
Wine?! ??
從編譯的日志中可以發(fā)現(xiàn),蘋果的模擬器底層使用了廣受贊譽(yù)的 Wine 項(xiàng)目。Wine 是一個(gè)開源的兼容層,它允許在類 Unix 系統(tǒng)(包括 macOS)上運(yùn)行 Windows 應(yīng)用程序。蘋果通過 Wine 為模擬器提供了對(duì) Windows 游戲的兼容性支持。

在 Game Porting Toolkit 的?brew formula?中顯示,蘋果使用了 CrossOver 項(xiàng)目作為底層,并進(jìn)行了超過 5 萬行的代碼補(bǔ)丁。CrossOver 是一家著名的第三方團(tuán)隊(duì),專門從事跨平臺(tái)游戲移植工作。在他們的博客文章中提到,雖然他們與蘋果沒有合作開發(fā)這個(gè)工具,但他們非常高興蘋果選擇使用 CrossOver 的源代碼作為他們的游戲移植工具包的仿真解決方案。
使用模擬器運(yùn)行 Windows 游戲
蘋果在 Game Porting Toolkit 中提供的模擬器包含官方對(duì) Wine 項(xiàng)目在 macOS 上的封裝。這意味著,不僅僅局限于游戲,你還可以嘗試運(yùn)行其他類型的 Windows 軟件,如辦公套件、設(shè)計(jì)工具、音視頻編輯器等。無需再依賴虛擬機(jī)來運(yùn)行 Windows 軟件。
在玩游戲之前,實(shí)際上更關(guān)心的是這個(gè)轉(zhuǎn)譯層是否能夠運(yùn)行任意的 Windows 軟件。對(duì)于 macOS 平臺(tái)來說,這確實(shí)是一個(gè)非常令人振奮的消息。于是,我先嘗試運(yùn)行 Windows 版本的 Steam。
使用過 Wine 項(xiàng)目的人都知道,Wine 需要指定一個(gè)路徑存放它的虛擬 C 盤。用 WINEPREFIX 環(huán)境變量指定路徑之后,我直接用 Game Porting Toolkit 內(nèi)置的 winecfg 配置模擬環(huán)境。這里可以切換 Windows 版本,我選擇 Windows 10。

配置完成后,直接用?gameportingtoolkit
?運(yùn)行可執(zhí)行文件就可以了。第一個(gè)參數(shù)是剛才指定的虛擬 C 盤路徑,第二個(gè)參數(shù)可以是 macOS 文件系統(tǒng)中的 exe 文件,也可以是虛擬 C 盤里的 exe 文件。
我安裝了 Steam,并且成功運(yùn)行:

下載運(yùn)行一個(gè)《賽博朋克:2077》試一試。M1Pro 通過轉(zhuǎn)譯運(yùn)行 2077,高畫質(zhì)能穩(wěn)住 30FPS。全程沒有 BUG,沒有閃退。

可以說,macOS 的游戲生態(tài)迎來了巨大進(jìn)步。
Game Porting Toolkit
其實(shí)?gameportingtoolkit
?本身就是一個(gè)腳本文件,它的內(nèi)容如下:
Game Porting Toolkit 中的模擬器將 Wine 和蘋果自家的 D3DMetal 技術(shù)結(jié)合起來,提供對(duì) DirectX 11 和 12 的支持。相比于虛擬機(jī),這種轉(zhuǎn)譯框架的效率要高得多。然而,它通常不適用于使用反作弊或侵略性 DRM 技術(shù)以及需要 AVX 等長(zhǎng)指令集的游戲,比如《最后生還者》等。
根據(jù)網(wǎng)友的測(cè)試結(jié)果,目前暴雪最新發(fā)布的《暗黑破壞神 4》也可以通過 Game Porting Toolkit 運(yùn)行。這說明 Game Porting Toolkit 提供的轉(zhuǎn)譯框架在運(yùn)行某些高度復(fù)雜的游戲上已經(jīng)取得了成功。
值得一提的是,由于每個(gè)游戲的特性和要求不同,使用 Game Porting Toolkit 運(yùn)行特定游戲可能會(huì)面臨一些挑戰(zhàn)。因此,在嘗試運(yùn)行特定游戲之前,最好參考其他用戶的測(cè)試結(jié)果和反饋,以了解游戲在 Game Porting Toolkit 中的兼容性和性能表現(xiàn)。
總的來說,Game Porting Toolkit 為開發(fā)者提供了一種方便且高效的方式,將 Windows 游戲移植到 macOS 平臺(tái)。在某些情況下,它已經(jīng)成功實(shí)現(xiàn)了在 macOS 上運(yùn)行一些復(fù)雜游戲的目標(biāo)。在 2023 年的 WWDC 上,蘋果專門舉辦了三場(chǎng)講座,詳細(xì)介紹了開發(fā)者如何通過 Game Porting Toolkit 快速將 Windows 游戲移植到 Mac 平臺(tái)。
蘋果對(duì) Wine 模擬器的改進(jìn)只是 Game Porting Toolkit 中的一小部分,主要用于 “快速驗(yàn)證游戲在 macOS 上的運(yùn)行體驗(yàn)”。對(duì)玩家而言,即使開發(fā)者不采取任何優(yōu)化措施,macOS 已經(jīng)可以運(yùn)行大多數(shù)游戲。蘋果已經(jīng)展現(xiàn)了十足的誠(chéng)意和決心,如果開發(fā)者能夠接受并使用這個(gè)工具包,進(jìn)一步針對(duì) macOS 平臺(tái)優(yōu)化體驗(yàn),我們可以期待蘋果的游戲生態(tài)將迎來重大變革。