在 M1 芯片 Mac 中使用原生 Java 優(yōu)雅地玩 Minecraft
Apple 在去年年底發(fā)布了 M1 Max 芯片,這款芯片的性能在 M1 的基礎(chǔ)上又上升了一個(gè)等級,作為一名偽果粉,我果斷在第一時(shí)間入手了一臺 32G 的 M1 Max。


收到電腦之后,我當(dāng)然是裝上了世界上最屌炸天的游戲 Minecraft。但 Minecraft 目前只支持?x86_64?架構(gòu),不支持 ARM,準(zhǔn)確地說是只支持?x86_64?架構(gòu)的 Java,因?yàn)?macOS 的 Minecraft 是通過 Java 來運(yùn)行的。
這肯定不行啊,既然已經(jīng)用 M1 Max 了,我怎么能忍受通過 Rosetta 轉(zhuǎn)譯來玩游戲呢,當(dāng)然是 ARM 架構(gòu)的原生 Minecraft 更高端大氣上檔次啦。
經(jīng)過我的摸索,現(xiàn)已完美解決問題,步驟如下。
安裝 ARM 版 Java
要想運(yùn)行 Minecraft 時(shí)無需經(jīng)過 Rosetta 轉(zhuǎn)譯,當(dāng)然是要使用 ARM64 版本的 Java 了。好在 Zulu 提供了 ARM64 版本的 Java,只需要進(jìn)入其下載頁面[1],依次選擇 「Java 17」-「macOS」-「ARM 64-bit」-「JDK FX」,在右側(cè)選擇?.dmg?文件下載并安裝。

安裝完成后,可以通過運(yùn)行命令?/usr/libexec/java_home -V?來查看系統(tǒng)中安裝的所有 Java 的版本。
$?/usr/libexec/java_home?-V
Matching?Java?Virtual?Machines?(3):
????17.0.1?(arm64)?"Azul?Systems,?Inc."?-?"Zulu?17.30.15"?/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
????...
/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
如果你的系統(tǒng)中有多個(gè) Java 版本,這里都會顯示出來,其中 17.0.1 這一行就是之前安裝的 Zulu JDK 17。我們可以通過修改?~/.zshrc?來設(shè)置?JAVA_HOME?環(huán)境變量,改變系統(tǒng)默認(rèn)的 Java 版本。
將下面的內(nèi)容添加到?~/.zshrc?末尾。
#?~/.zshrc
export?JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
執(zhí)行以下命令使設(shè)置生效。
$?source?~/.zshrc
#?或者
$?.?~/.zshrc
下載 HMCL Launcher
HMCL Launcher 是一款非常流行的第三方啟動(dòng)器,支持很多自定義的功能,比如快速安裝 Fabric 和 Forge、修改運(yùn)行參數(shù)、設(shè)置 Java 版本、管理 Mod 等功能。除此之外還支持登錄正版的微軟賬號。
當(dāng)然,這些都不是最重要的,重點(diǎn)是咱不需要購買賬號就可以玩了,簡直是白嫖黨的福音。
首先到?HMCL 官方網(wǎng)站[2]或者?GitHub Releases 頁面[3]下載啟動(dòng)器,然后建立一個(gè)專門的游戲目錄(例如~/Games/Minecraft),將啟動(dòng)器放到這個(gè)目錄下。
$?mkdir?-p?~/Games/Minecraft/
$?mv?~/Downloads/HMCL-3.5.2.218.jar?~/Games/Minecraft
$?java?-jar?HMCL-3.5.2.218.jar?#?打開HMCL
打開 HMCL Launcher,進(jìn)?版本列表?->?安裝新游戲版本,安裝 1.17.1 版本 Minecraft,并同時(shí)安裝?Fabric。

獲取 LWJGL 庫文件
LWJGL 全稱為:LightWight Java Game Library,意為輕量級 Java 游戲工具庫。包含 OpenGL 、OpenCL、OpenAL、Vulkan API 對 Java 平臺的原生綁定。
由于 Apple 發(fā)布的 M1 芯片移除了 LWJGL 庫所依賴的個(gè)別 API,也未提供任何兼容方式,致使 Forge 和 Fabric 均無法正常工作,因此需要從源碼編譯最新的 LWJGL 庫。雖然已經(jīng)有人編譯好了,但版本有點(diǎn)老了,最后更新日期還停留在 2020 年,而且不支持 HMCL 啟動(dòng)器,詳情可查看?m1-multimc-hack 倉庫[4]。
好在 Tanmay Bakshi 的?Gist 教程留言區(qū)[5]有人提供了較新的 3.3.x 版本的?LWJGL?庫,經(jīng)過我的測試,可以完美運(yùn)行,我們可以直接使用他提供的庫文件。不過該網(wǎng)友提供的鏈接是 MediaFire 網(wǎng)盤,如果你無法訪問,可以通過我提供的阿里網(wǎng)盤鏈接下載,關(guān)注公眾號『云原生實(shí)驗(yàn)室』
后臺發(fā)送暗號:mf,即可獲取庫文件。
將下載完成的?m1_lwjgl_330_nightly.zip?解壓,將解壓后文件夾內(nèi)的?lwjglfat.jar?放入 Minecraft 運(yùn)行目錄。
#?進(jìn)入游戲目錄
$?cd?~/Games/Minecraft
#?將?Minecraft?運(yùn)行目錄內(nèi)原有庫文件刪除(或備份)
$?rm?.minecraft/libraries/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar
#?將下載的?LWJGL?庫放入?Minecraft?運(yùn)行目錄
$?mv?m1_lwjgl_330_nightly/lwjglfat.jar?.minecraft/libraries/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar
#?將?m1_lwjgl_330_nightly?文件夾移到?Minecraft?運(yùn)行目錄中
$?mv?m1_lwjgl_330_nightly?~/Games/Minecraft
修改 HMCL 參數(shù)
打開『游戲全局設(shè)置』,檢查 Java 路徑是否正確,滑動(dòng)至頁面底部,在「調(diào)試選項(xiàng)」-「本地庫路徑」中,選擇自定義庫路徑為?m1_lwjgl_330_nightly?目錄內(nèi)的?lwjglnatives?目錄(例如,本文的路徑是?~/Games/Minecraft/m1_lwjgl_330_nightly/lwjglnatives),開啟「不檢查游戲完整性」,同時(shí)也需要開啟「不檢查 JVM 與游戲的兼容性」。

運(yùn)行游戲
回到啟動(dòng)器首頁,點(diǎn)擊右下角的『啟動(dòng)游戲』。

可以看到 Minecraft 已經(jīng)可以正常運(yùn)行了,也能正常加載 Fabric API 和第三方 Mod。


我總共開了 40 個(gè)模組。

經(jīng)過測試,啟動(dòng)時(shí)間在 20s 之內(nèi),游戲內(nèi)也很順暢,我用到至今還沒有出現(xiàn)過崩潰現(xiàn)象。CPU 占用 50%,內(nèi)存設(shè)置為自動(dòng)分配,實(shí)際占用 5.48G。


結(jié)語
Minecraft 中文名又叫《我的世界》,它提供了一個(gè)和現(xiàn)實(shí)世界物理規(guī)律高度一致的虛擬世界,你可以在這個(gè)世界里為所欲為,利用這個(gè)世界里的資源和物理規(guī)律創(chuàng)造一切。舉個(gè)例子,有人在這個(gè)世界里創(chuàng)造了計(jì)算機(jī),有人在這個(gè)世界里以 1:1 的比例還原了現(xiàn)實(shí)世界的故宮,還有人在這個(gè)世界里創(chuàng)造了一部手機(jī),然后和現(xiàn)實(shí)世界的自己視頻通話。。。我每每想到這個(gè)視頻通話的例子,心中就喊出一句臥槽,無法用語言來形容,自己體會。
最近元宇宙的概念非?;馃?,成為了眾多國內(nèi)外科技巨頭的搶手貨,他們紛紛在各自領(lǐng)域布局未來的元宇宙計(jì)劃。Minecraft 其實(shí)就非常有可能發(fā)展為元宇宙的載體,它有著非常高的用戶基礎(chǔ),共識性強(qiáng),而且背靠微軟老爹,2020 年疫情期間,伯克利學(xué)院還在 Minecraft 中舉辦了畢業(yè)典禮,看看這陣仗,妥妥的元宇宙雛型啊。
參考資料
在 M1 Macbook 上不使用 Rosetta 優(yōu)雅地游玩 Minecraft+Forge[6] 在 M1 Mac 設(shè)備中解決 Minecraft Error 255[7]
引用鏈接
下載頁面:?https://www.azul.com/downloads/zulu-community/?version=java-11-lts&os=macos&architecture=arm-64-bit&package=jdk-fx
[2]HMCL 官方網(wǎng)站:?https://hmcl.huangyuhui.net/download
[3]GitHub Releases 頁面:?https://github.com/huanghongxun/HMCL/releases
[4]m1-multimc-hack 倉庫:?https://github.com/yusefnapora/m1-multimc-hack
[5]Gist 教程留言區(qū):?https://gist.github.com/tanmayb123/d55b16c493326945385e815453de411a#gistcomment-3960178
[6]在 M1 Macbook 上不使用 Rosetta 優(yōu)雅地游玩 Minecraft+Forge:?https://www.wannaexpresso.com/2021/02/20/m1-macbook-minecraft/
[7]在 M1 Mac 設(shè)備中解決 Minecraft Error 255:?https://pwa.sspai.com/post/68830
