部落格
在不使用 Perforce 的情況下,與您的團隊同步遊戲組建

Perforce 是業界標準,但它並不是讓遊戲專案保持同步的唯一方法。以下介紹小型工作室如何在採用輕量級版本控制的同時,處理大型資產的分發。
小型工作室面臨的 Perforce 問題
在大多數人看來,Perforce Helix Core 是大型遊戲專案最好的版本控制系統。它能很好地處理龐大的二進位檔案,支援檔案鎖定以防止場景和網格等資產發生衝突修改,並可擴展至以 TB 計的儲存庫。大多數 AAA 工作室都依賴它。
但它也需要真金白銀的成本、需要專用的伺服器基礎架構或託管服務方案、需要懂其配置的管理員,而且其學習曲線對於不習慣使用命令列工具或分支工作流程的藝術家來說也是個障礙。對於一個製作獨立或中階遊戲的五到二十人團隊來說,使用 Perforce 就像是為了一件需要可靠麵包車的工作而搬來了工業機械。
許多中小型工作室會問,是否有更簡單的替代方案。簡短的回答是:對於程式碼和場景版本控制,您仍然需要版本控制。Git LFS、Plastic SCM(現為 Unity Version Control)或託管的 Perforce 執行個體,都是追蹤原始程式碼檔案、藍圖和場景資產變更的實際選擇。管線的這一部分需要進行比對(diff)、合併、建立分支和復原的能力,而任何檔案儲存平台都無法取代這一點。
但版本控制只是拼圖的一小部分。團隊需要同步的很大一部分內容並非原始程式碼或場景檔案,而是參考美術、貼圖庫、音訊分軌、行銷資產、文件、構建封存檔以及其他大型二進位檔案,這些檔案並不能從比對或分支中受益。它們只需要儲存在某個易於存取、方便尋找的地方,並讓團隊中的每個人都能使用,而不會堵塞版本控制系統。
哪些內容屬於版本控制,哪些不屬於
一個有用的思考模型是將檔案分為兩類。第一類是變更頻繁、且追蹤這些變更歷史至關重要的檔案:原始程式碼、著色器、場景檔案、動畫骨架、材質圖表、配置檔案和構建指令碼。這些屬於版本控制,無論是 Perforce、Git LFS、Plastic SCM 還是其他系統。
第二類是體積龐大、相對穩定、且對大多數團隊成員而言只需使用而非編輯的檔案:最終貼圖包、混音後的音訊資產、參考圖像、概念設計圖庫、用於 QA 的匯出構建版本、媒體套件和文件。這些檔案很重要,但追蹤它們逐行修改的歷史價值不大。重要的是每個人都能找到並存取最新版本。
許多工作室最終會把這兩類檔案都塞進 Perforce,因為這是他們現有的工具。這雖然可行,但會膨脹儲存庫的大小、減慢僅需要部分檔案的團隊成員的同步速度、增加 Perforce 伺服器上的儲存成本,並使整個系統更難管理。當一位新藝術家加入團隊並需要首次同步儲存庫時,他們可能會下載數百 GB 他們永遠不會碰的數據,僅僅是因為這些檔案剛好與他們需要的程式碼和場景存在同一個系統中。
使用 Fabric 作為資產分發層
Fabric 是一個能按需串流檔案的雲端雲端硬碟。儲存在 Fabric 中的檔案會像本地檔案一樣顯示在您的本地電腦上,但在您開啟它們之前不會佔用磁碟空間。對於遊戲工作室來說,這意味著您可以讓整個團隊隨時存取數百 GB 的資產,而無需每個人都下載並儲存完整副本。
這使得 Fabric 非常適合處理上述第二類檔案。您的貼圖庫、音訊資產、參考資料、匯出的構建版本和文件都可以存放在 Fabric 中,團隊成員可以透過電腦應用程式輕鬆存取。當有人需要特定資產時,它會串流到他們的電腦上。當他們用完後,它也不會留在 SSD 中佔用空間。
需要說明 Fabric 是什麼以及不是什麼:Fabric 是一個檔案管理和雲端儲存平台。它不是版本控制軟體,不能取代 Git 或 Perforce 來追蹤程式碼變更,也不是遊戲引擎整合工具。它不進行分支、合併或檔案鎖定。它的作用是以儲存、組織、搜尋和共享檔案的方式,消除小型工作室在試圖讓每個人都基於同一套資產工作時所面臨的很大一部分摩擦。
適合小型工作室的實用配置
對於中小型工作室來說,一個可行的配置可能如下所示。
對於程式碼和場景檔案,使用 Git LFS、Plastic SCM 或輕量級的 Perforce 配置。讓儲存庫專注於需要版本追蹤的檔案:原始程式碼、引擎專案檔案、場景資產,以及多個人可能會同時編輯的任何內容。
對於其他所有內容,將 Fabric 用作共享資產庫。貼圖集合、音訊檔案、參考美術、匯出的構建版本、行銷材料和內部文件都放在這裡。智慧組織功能會按內容對檔案進行分類,因此您無需維護一套每個人都必須學習和遵守的刻板資料夾層級結構。
當藝術家完成貼圖集並準備好投入生產時,他們會將最終版本匯出到受版本控制的專案中。而工作檔案、參考圖像和貼圖源檔案則留在 Fabric 中,如果以後需要重新修改或更新材質,團隊中的任何人都可以透過語意搜尋找到它們。
這種雙系統方法既能保持版本控制儲存庫的精簡和快速同步,又能確保更廣泛的專案資產得到妥善儲存、備份並可供所有人存取。
無需死記資料夾結構即可尋找資產
遊戲工作室經常遇到的挫折之一就是「那個檔案在哪裡?」的問題。團隊成員之間的資產命名慣例各不相同。專案開始時合理的資料夾結構會隨著專案的進展而變得混亂。人們會把東西儲存在本地電腦上,卻忘記上傳。新員工第一週的時間都花在學習所有東西存放在哪裡上。
Fabric 的語意搜尋為此提供了解決方案,它讓使用者描述他們正在尋找的內容,而無需知道檔案名稱或資料夾路徑。尋找「低多邊形樹木參考」或「碎石路上的腳步聲」的藝術家可以在整個共享庫中找到相關檔案,無論它們是如何命名的,也無論它們儲存在哪裡。
其 AI 助手進一步擴展了這一功能。團隊成員可以提出「我們有 4K 磚塊貼圖嗎?」或「3 月份錄音小組的音訊檔案在哪裡?」等問題,並獲得基於共享庫實際內容的答案。對於組織知識往往只存在於少數資深團隊成員腦海中的工作室來說,這種搜尋能力是一項具有重要意義的改進。
分享構建版本和評審材料
遊戲開發涉及大量的分享。QA 測試人員需要存取最新的構建版本。音訊總監需要評審一組新的音效。發行商想看最新的預告片剪輯。外包合作夥伴需要風格指南和參考表。
這些分享需求都略有不同,大多數工作室都是將 Google Drive 連結、Dropbox 分享、WeTransfer 上傳和電子郵件附件拼湊在一起使用。其結果是檔案分散在多個服務中,沒有明確的記錄顯示誰有權存取什麼,甚至收件人是否看過發送的內容。
Fabric 的發佈功能可讓您使用選定的檔案建立可分享的頁面。您可以將一個構建包、一組參考資料或一個評審資料夾整理在一起,並作為單一連結進行分享。連結分析會顯示收件人是否查看了該頁面,這在您等待回饋並想知道延遲是因為他們還沒看,還是因為他們仍在評審時非常有用。
對於內部評審工作流程,標註功能可讓團隊成員直接在圖像上留下回饋,並在影片和音訊檔案上添加帶有時間戳記的評論。美術總監可以在貼圖表或渲染格上標記具體註釋,而不用在聊天訊息中寫下一大段描述並寄希望於藝術家能明白他們指的是哪一個像素。
連接現有儲存空間
大多數工作室的檔案已經分散在多個服務中。Google Drive 中可能有概念設計,Dropbox 中有音訊分軌,共享網路資料夾中有文件。一次性將所有內容轉移到新系統中很少是切合實際的,尤其是在活躍開發期間。
Fabric 的連接功能可讓您連結現有的 Google Drive、Dropbox 和其他帳戶,以便在 Fabric 中與其他所有內容一起存取和搜尋這些服務中的檔案。您不需要一次性遷移所有內容。您可以先將 Fabric 用於新的資產和構建版本,然後在時間允許的情況下逐步整合舊材料。
對於與外部承包商或外包夥伴合作的工作室,這種靈活性特別有用。您可以將內部資產保留在 Fabric 中,同時連接到您的合作夥伴已在使用的雲端儲存服務,從而在所有服務中建立一個統一的可搜尋視圖。
將專案文件與資產保存在一起
遊戲專案會產生大量文件:設計文件、技術規格書、美術風格指南、生產進度表、會議記錄和事後總結。這些文件與專案的資產密切相關,但它們通常存放在完全獨立的系統中,無論是 Confluence、Notion、Google Docs 還是共享硬碟上的 Word 檔案資料夾。
當文件和資產存放在不同的系統中時,它們之間的交叉引用就成了一個手動過程。美術風格指南引用了特定的貼圖和材質,但要找到這些材質意味著要切換到另一個工具並重新搜尋。技術設計文件描述了一個粒子系統,但設計師使用的參考視訊卻儲存在別處。
Fabric 作為通用工作空間的方法意味著專案文件和創意資產可以共存。搜尋貼圖的同一個搜尋也能呈現描述該貼圖應如何使用的美術指導文件。特別是對於工程團隊來說,將技術文件、構建產物和參考材料存放在同一個可搜尋的位置可以減少上下文切換。
安全與備份
遊戲專案代表了多年的工作和重大的資金投入。因硬碟故障、伺服器配置錯誤或雲端儲存訂閱過期而遺失資產,這類事件會讓專案落後數月。
Fabric 提供內建備份的私密且安全的儲存。與存放在開發人員本地電腦或無人測試過還原的自建 NAS 上的檔案不同,Fabric 中的資產儲存具有備份冗餘,且可以從任何地方存取。對於經歷過 RAID 故障或筆記型電腦被盜(其中包含某些資產的唯一副本)之痛的工作室來說,擁有一個可靠的雲端備份儲存層可以讓他們高枕無憂。
何時您仍然需要 Perforce
在某些情況下,Perforce(或同等功能齊全的版本控制系統)是所有內容的正確選擇,而 Fabric 僅作為輔助儲存層。如果您的團隊經常需要對 Unreal Engine 的 .uasset 等二進位資產進行檔案鎖定以防止衝突修改,如果您需要對包括所有資產在內的整個專案進行細粒度分支,或者如果您工作室的管線工具與 Perforce 的 API 深度整合,那麼 Perforce 就是適合該工作的工具。
這裡的論點並不是說 Fabric 可以取代 Perforce。而是許多工作室使用 Perforce(或希望自己負擔得起它)主要是因為他們需要一個地方來存放整個團隊都可以存取的大型檔案。如果您將版本控制問題與資產分發問題分開,您就可以在前者使用專注的版本控制工具,在後者使用雲端原生檔案平台。其結果通常是更易於管理、運行成本更低,且對於非技術團隊成員來說更容易使用。
特別是對於初創公司和小型工作室來說,這種拆分可能決定了工作流程是易於管理還是過於複雜。您可以獲得程式碼和場景所需的版本追蹤,同時獲得可用於其他所有內容的、可存取、可搜尋且雲端串流的儲存,而無需為整個專案運行 Perforce 的開銷。
常見問題
Fabric 能否在遊戲開發中取代 Perforce?
不能。Fabric 是一個檔案管理和雲端儲存平台,而不是版本控制軟體。它不支援分支、合併、比對或檔案鎖定。您仍需使用 Git、Perforce、Plastic SCM 或其他版本控制工具來管理原始程式碼和場景檔案。Fabric 負責處理與版本控制並行的資產儲存、分發和組織層。
Fabric 可以儲存哪些類型的遊戲檔案?
Fabric 可以儲存任何檔案類型。貼圖、3D 模型、音訊檔案、影片、文件、可執行檔、構建封存檔以及您專案需要的任何其他內容。沒有檔案格式限制。
Fabric 支援離線工作嗎?
Fabric 需要網際網路連接。檔案會按需從雲端串流,因此您需要網路連接才能存取它們。如果您需要離線存取特定檔案,則需要在離線之前將其下載到本地。
在遊戲資產管理方面,Fabric 與 Google Drive 或 Dropbox 相比如何?
Fabric 的雲端雲端硬碟可按需串流檔案,不佔用本地儲存空間,這對於大型遊戲專案來說是一個顯著的優勢。它還提供語意搜尋(透過描述而非檔案名稱尋找檔案)、智慧組織以及用於評審視覺和音訊資產的標註功能。您可以在 Fabric 對比 Google Drive 以及 Fabric 對比 Dropbox 看到詳細的比較。
我可以透過 Fabric 與 QA 測試人員分享遊戲構建版本嗎?
可以。您可以使用發佈功能建立一個包含構建檔案的可分享連結。連結分析會顯示收件人是否已存取這些檔案。
如何將現有資產從 Perforce 遷移到 Fabric?
Fabric 連接到 Google Drive 和 Dropbox 等服務。對於目前在 Perforce 中的檔案,您可以透過直接上傳或透過連接的雲端儲存服務,將它們匯出或複製到 Fabric 可以存取的位置。這可以逐步進行,而不是一次性完成。
Fabric 對於未發佈的遊戲資產足夠安全嗎?
Fabric 提供私密且安全的儲存,並具有內建的備份和冗餘功能。您的檔案在傳輸中和靜態時都受到保護。有關安全實踐的詳細資訊,請參閱安全與隱私頁面。
多個團隊成員可以同時在同一個 Fabric 庫中工作嗎?
可以。Fabric 的協作功能允許多個團隊成員同時存取相同的檔案。因為檔案是從雲端串流的,所以每個人都可以存取他們需要的內容,而無需下載整個庫。一位團隊成員新增的修改和新檔案會立即同步給其他人。
相關頁面
其他部落格文章:

The Creative's Cold Start Problem

How to Stop Losing Momentum Between Study Sessions

Your Future Self Can't Read Your Mind

The Hemingway Bridge: Stop Working So You Can Start Again

Your ERP Has the Answers. Nobody Can Find Them.

The Usability Layer Your Business Systems Are Missing

手寫與數位筆記:你不必做出抉擇

為什麼你的手寫筆記無法搜尋(以及該如何解決)