您正在閱讀 Embeddium Fabric 的常見問題,本文件為原文件的正體中文翻譯版本,原文件以 PDF 格式在 TauMC Discord 上提供,並附有 embeddedt(公鑰)的數位 GPG 簽名。
如果您閱讀此文件的目的是為了尋找可以批評我們的內容,請您省心省力。我們預計很多人會不同意我們這裡的選擇。
我們也要求您不要因此事騷擾任何人。我們出於任何原因都不支持對任何一方進行騷擾。
在發布本文件後,我們將完成既定事項,並開始進行專案開發。我們不會就此事發布進一步聲明或就硬分支的理由進行更多討論。
以下是問題。
問:你們為這次分支準備了多久?
答:準備時間並不久。上週 我們開始製作一個原型(不打算公開),目的是驗證我們的想法是否可行,僅此而已。任何聲稱我們早已計畫已久的說法都是不實的。
請放心,我們並不是理想的時間點發布此訊息。由於時機非常糟糕,開發將會推遲。我們都非常忙碌,在昨天、今天、整個週末以及這個月剩下的許多日子裡都有現實生活中的承諾。我們已經相當疲憊,正在盡一切努力使情況好轉。
再次重申,在與 Jelly 進行最後一輪討論後,由於軟分支不再可行,我們才做出發行硬分支的決定。
問:為什麼要做 Fabric 版本?為什麼不只專注於 NeoForge?
答:我們不認為這是可行的選擇,因為 Sodium 計畫移植到 NeoForge。一旦 Sodium 進行任何重大改變,他們就會成為多重載入模組選擇支援的明顯選擇,因為他們的程式碼基底可能在兩個模組載入器之間非常相似。同時支援 NeoForge 上硬分支的 Embeddium 和 Fabric 上原生的 Sodium 幾乎肯定需要單獨的相容層。
唯一我們不提供 Fabric 版本並且不被 Sodium 在 NeoForge 的移植版本擠出生態系統的場景是,如果模組相容性太差,以至於多重載入模組決定即使它們必須在 Fabric 上支援 Sodium,也不會在 NeoForge 上支援它(但我們認為這不太現實)。
我們想給模組開發者一個真正的選擇。如果他們選擇 Sodium,那就表示我們之前關於做得更好的想法是錯誤的,我們將不得不接受這一點。
問:JellySquid 編寫了大量核心渲染器,既然如此,你們認為作為一個獨立專案,你們如何在有意義的時間段內存在?
答:我們沒有打算將改進效能作為這次硬分支的目標。如果我們以前曾暗示過,我們在此道歉。如果我們因為潛在的破壞性變更而必須推遲移植或重構最佳化,那麼我們在獨立例證中效能可能比 Sodium 更差。
我們不會以「誰能獲得最佳 FPS」為基礎進行競爭,因為這場戰鬥我們很可能會立即輸掉(尤其是如果其他模組不在討論範圍內)。我們認為這不是一個有用的衡量標準,因為如果遊戲在安裝模組的情況下無法玩,即使高效能也對玩家毫無用處。
我們的重點是提供盡可能最好的效能,同時保持出色的模組相容性,並盡量減少模組與渲染器互動的負擔。
問:關於與模組附加模組(例如 Iris、Sodium Extras、Nvidium 等)的相容性,我們可以期待什麼?
答:目前撰寫文章時,Iris 版本 20.1 尚未更新到 Sodium >= 0.5.6。Embeddium 目前類似於 Sodium 0.5.8,並聲明自己是該版本以確保模組相容性。Iris 主要開發者 IMS 明確表示他不支援 Embeddium。
我們目前不知道是否有使用者友好的方法可以停用 Iris 的版本鎖定,使其只能與特定版本的 Sodium 一起使用,因此我們可能被迫分支 Iris 以重新實現相容性。
請注意,如果我們這樣做,我們不打算使其成為硬分支(由於我們都沒有維護光影模組的興趣或經驗)。相反,它將會是一個最少化變更的、對 Embeddium 的逐個錯誤移植。如果可以避免,我們也不會從這樣的分支中獲得收益。我們將繼續在這方面進行更多調查,請期待後續訊息。歡迎具有相關知識和興趣的志願者與我們聯絡。
Sodium Extra 和 Reese’s Sodium Options 目前看起來執行良好。
Nvidium 也尚未更新到 0.5.6。我們都沒有相容的 Nvidia GPU 可以進行測試,因此目前的支援將取決於 Nvidium 的開發人員。我們預計適用於 Sodium 0.5.6+ 的 Nvidium 版本可以正常運作。
不幸的是,在開發分支中,Sodium 已經重新命名並重新打包了許多其類。如果這些變更發布,將同時支援 Sodium 和 Embeddium 變得非常困難。這可能迫使附加模組作者選擇陣營。我們打算盡最大努力保持與附加模組的相容性,並在適用且不會違反任何授權條款的情況下,我們願意將附加模組進行分支或合併。
問:經過以上討論,Embeddium 究竟打算提供什麼功能?
答:簡而言之,我們將以 embeddedt 在 Forge 上努力達到的相同相容性標準為目標。
在安裝 Embeddium 後,除非有非常正當的理由,否則它不應降低原版的功能。即使在這種情況下,如果可能,也應該有一個開關可以更接近地模擬原版。這種方法似乎受到了 Sodium 的批評,但我們收到了模組作者的正面回饋,因此我們打算堅持這種方法。
我們首先要確保從 Sodium+Indium 切換到 Embeddium 不會出現任何退步或功能損失。(請參閱上面關於 Iris 支援的研究。)
總而言之,我們希望與模組作者保持更好的整體溝通,並擁有更健全的專案管理流程。Sodium 發布並不定期,這會促使模組作者自行修補模組,而不是貢獻更適當的修復。我們將努力發布更早,更頻繁。
話雖如此,我們不認為實現所有相容性都應該由模組作者自己承擔。我們打算研究存取 Sodium 內部結構的常見用例,並為它們提供 API 或其他更穩定的解決方案。
這絕不是一個詳盡的清單,我們還有一些其他正在考慮的想法,但我們希望提供一些具體的東西,以表明這不是一個只是快速分支而沒有進一步開發計畫的專案。我們更希望與上游合作解決這些問題,但鑑於我們深刻的哲學分歧,這一點似乎目前不可行。
再次重申,歡迎具有相關知識和興趣的志願者與我們聯絡。
問:Embeddium 是否仍能從 Sodium 獲得改進?
答:在不犧牲模組相容性的前提下,我們打算盡可能整合上游變更。除此之外,我們還無法確定,因為我們不知道 Sodium 打算對其重構進行多大程度的修改。上游發生的變更的侵入性將對此產生重大影響,因此我們除了「我們將盡力而為」之外無法多說。 肯定會有一些移植變更的延遲。
問:您打算如何應對 Embeddium 的分支?
答:我們看不到在此採取任何特殊行動的理由。最終,我們期望最好的產品脫穎而出,無論是 Embeddium、另一個分支還是 Sodium 本身。
只要符合相容授權條款,我們將在合適的情況下整合來自分支的相關變更。