【UE4】 補丁Patch 與 DLC


概述

  • UE4 中主要使用 Project Launcher 來進行補丁和DLC的制作
  • 補丁與 DLC 都需要基於某個版本而制作
  • 補丁 與 DLC 最后以 Pak 形式表現,
    • 補丁的 pak 可以重命名,但最后以 _p.pak 結尾
  • Pak 會根據 PakOrder 來排序掛載
    • Paks 目錄下 ,項目名開頭的 PakOrder = 4;非項目名開頭的 PakOrder 與上一級目錄的 PakOrder 相同
    • 項目名/Content 目錄下的 PakOrder = 3;
    • Engine/Content 目錄下的 PakOrder = 2;
    • Saved 目錄下的 PakOrder = 1;
    • _p.pak PakOrder額外加100
    • n_p.pak PakOrder額外加 n*100+100

補丁 Patch

  • 對發布之后的版本進行更新,稱之為打補丁
  • 通常用於
    • 內容更新
    • 解決已知問題
    • 修復版本漏洞
  • 打補丁的方法
    • 保留原始版本或之前版本中的文件,但添加一個指向新內容的指針
    • 使用二進制補丁轉換原始版本中的內容

DLC

  • Downloadable Content(可下載內容),也稱“可下載資料包”
  • 用於游戲發布后的內容擴展,如新增地圖、新游戲模式、新劇情等
  • 目前暫不支持增量更新

擴展:熱更新


補丁配置與版本迭代

游戲主體配置 V1.0

  • 創建 BP_Patch 並放置到場景中,配置 Project Launcher 打包,設為 Release 1.0

    image

補丁配置 V1.1

  • 修改 BP_Patch 代碼

  • 配置 Project Launcher

    • 基於1.0 打包,當前補丁我們假設為 patch 1.1
    • 並將當前關卡 使用 release 的打包配置,更改為 Release 1.1 進行打包(后續要用到)

    image

  • 打包 輸出 DesignPatterns-WindowsNoEditor_0_P.pak

    • 方便起見,重命名為 DesignPatterns-BaseV1.0_11_P.pak,其中 V1.0 代表 Release 1.0,11 代表 Patch 1.1
    • 復制到 Release 的 WindowsNoEditor\DesignPatterns\Content\Paks 目錄下
  • 測試結果對比

    image

補丁配置 V1.2

  • 創建 BP_Patch2 並放置到場景中

    image

  • 配置 Project Launcher ,打包兩個版本。並將補丁復制到對應 Release 的 WindowsNoEditor\DesignPatterns\Content\Paks 目錄下

    • 基於 release 1.0 打包 patch 1.2,輸出 DesignPatterns-BaseV1.0_12_P.pak
    • 基於 release 1.1 打包 patch 1.2,輸出 DesignPatterns-BaseV1.0_12_P.pak
  • 測試結果如下

    • Release 1.2 等同於
      • 基於 Release 1.0 的基礎包,打上 BaseV1.0_11、BaseV1.1_12 兩個補丁
      • 基於 Release 1.0 的基礎包,打上 BaseV1.0_12 補丁
      • 基於 Release 1.1 的基礎包,打上 BaseV1.1_12 補丁

    image

版本迭代思路

  • 維護兩個文本信息

    • 服務器更新的補丁列表 server_patch_list.json
    • 本地的補丁更新情況記錄 local_patch_list.json,記錄當前版本號以及已更新的補丁
  • 啟動時從 server_patch_list 讀取補丁列表信息,對比 local_patch_list,

    • 如果 local_patch_list 沒有則下載對應版本的補丁
    • 如果多個小版本合並為一個版本,則刪除原來已下載的小版本,再下載合並后的版本
  • pak 刪除與添加,涉及卸載和掛載,使用時具體分析,下圖為舉例示例,非實際應用

    image


DLC 配置

  • UE4 DLC 以插件形式存在,因此第一步先創建插件

  • 在C++工程 .build.cs 添加插件模塊,模塊名為插件名,編譯

    image

  • 在 插件的 Content 目錄下創建新的場景、資源

    image

  • 配置 Project Launcher

    • 打包后的路徑
      \Plugins\[插件名]\Saved\StagedBuilds\WindowsNoEditor\[項目名]\Plugins\[插件名]\Content\Paks\WindowsNoEditor

    image

  • 測試結果

    • 關於 插件 Content 目錄
      • File - > Package - > 平台 打包,默認會將插件 Content 目錄一起打包進去
      • Project Launcher 打包 Release ,默認不打包插件 Content 目錄
      • Project Launcher 打包 DLC ,默認只打包插件 Content 目錄

image

  • 至此 Project Launcher

    image


參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM