Steamworks 文獻庫
上傳至 Steam

英文原文已更新

本頁原文在翻譯完成後已再次更新。\r
點擊這裡檢視最新的英文版本。

SteamPipe 內容系統介紹

SteamPipe 是 Steam 的遊戲 / 應用程式內容系統。SteamPipe 具有以下特點:
  • 內容交付高效、快速。
  • 公共和私有「測試」分支無上限,可對多個組建進行測試。
  • 組建管理採用網頁介面,只需點擊幾次即可推出新組建或復原至先前組建。
  • 可在組建更新上線前查看更新大小。
  • 可在多個應用程式間共享內容。
  • 可使用公共或測試版內容製作安裝光碟
  • 即使下載更新程序已開始,仍可離線使用遊戲或應用程式。
  • 始終加密所有內容,使用者無法看到非活躍版本。
  • 開發期間可使用SteamPipe 本機內容伺服器
備註:在開始之前,您應該熟悉一下所有在應用程式檔案中提及的概念,其中一些概念是 SteamPipe 的組成部分。事先大致了解各部分是如何相互作用的,在把產品上傳至 Steam 時將發揮極大效果。

Steamworks 影片教學 - 在 SteamPipe 中製作您的遊戲

此教學將介紹 SteamPipe 與透過 Steamworks 工具製作 Steam 範例應用程式的步驟。
https://www.youtube.com/watch?v=SoNH-v6aU9Q

Steamworks 影片教學 - 添加新平台和語言

此教學將介紹如何透過給應用程式增加 Depot 來為遊戲添加新的平台和語言。
https://www.youtube.com/watch?v=PShS32hcing

SteamPipe 技術細節

SteamPipe 使用 HTTP 通訊協定交付內容。下載為一種常見的網路流量類型,因此顧客與 Steam 伺服器之間的第三方 HTTP 快取的下載速度都會提高。內容可以由外部 CDN 供應商主持,同時可輕易添加到我們的內容網路中。多數消費者使用的防火牆都允許 HTTP 流量、不會限制下載。

SteamPipe 採用基於二進位制差異的高效補丁演算法,只更改現有內容檔案中被修改的部分。更新這些內容時,只需發送差異部分即可。這意味著開發者與使用者之間的資料傳輸量更少、速度更快。由於開發者可在私人分支中有效率地修補組建。因此大多數合作夥伴可能會發現就算不用 SteamPipe 本機內容伺服器也沒關係。

Steam 組建帳戶

在 Steam 上建立任何組建前,您必須先在您的 Steam 合作夥伴帳戶中添加組建帳戶,並賦予該帳戶「修改應用程式中繼資料」以及「於 Steam 上發佈應用程式變更」的權限。保險起見,我們建議的最佳作法是建立只具備上述權限的專用組建帳戶,可至 https://store.steampowered.com/join 為此目的建立新 Steam 帳戶。

Steamworks 合作夥伴帳戶的任何管理員都可以為合作夥伴帳戶添加 Steam 帳戶,並授予必要的權限。關於此流程的詳情請見管理 Steamworks 帳戶一文。此類帳戶範例如下:

create_build_account.png

新 SteamPipe 應用程式的初始設定

請依照以下步驟設定新的 SteamPipe 應用程式:
  1. 找到應用程式的 AppID(於 Steamworks 首頁選擇應用程式,即可檢視該應用程式的 AppID)。
  2. 進入您的應用程式的一般安裝設定頁面。
  3. 至少定義一個啟動選項(指定路徑,可選擇性指定啟動遊戲所需的引數)。將滑鼠游標移至「?」上可閱覽各欄位的詳細說明。

    下方範例顯示了四個啟動選項,Windows 兩個,macOS 和 Linux 各一個。如果使用者也擁有指定的 DLC,那麼 Windows 作業系統將只顯示第三個啟動選項。

    updatedlaunchoptions.png
  4. 前往Depots頁面,按需求為此應用程式添加 Depot。預設情況下,您的應用程式可能已設定了一個 Depot。
    1. 點擊預設 Depot,將 Depot 更名為適切又易於辨認的名稱(如:「基本內容」或「Windows 內容」)。
    2. 除非 Depot 為特定語言專用 Depot,否則請將語言設定為 [All language]。
    3. 除非 Depot 為特定操作系統專用 Depot,否則請保留預設值 [All OSes] 設定(如果應用程式可在多種平台中執行,或只在 PC 或 Mac 環境中執行,則應保留 [All OSes] 設定)。該設定僅適用於針對特定操作系統的遊戲 Depot。
    4. 點擊新增 Depot 可建立更多 Depot。
    5. 點擊儲存變更儲存更改內容。
  5. 定義完 Depot 後,便可於發佈頁面中發佈更改。
  6. 新定義的 Depot 需要裝在一個套件中,您才能獲得需要的所有權。Steam 上的每款遊戲皆有 Developer Comp 套件,列於發行商群組中的所有帳戶理當會自動獲得該 Developer Comp 套件。
    您可以在關聯的套件與 DLC 頁面中為該套件(或其他擁有這些 Depot 的套件)添加新 Depot。

為上傳至 SteamPipe 設定 SDK

請下載並解壓縮 Steamworks SDK 的最新版本至您準備上傳組建的電腦上。

SteamPipe 工具可在 SDK 的 tools 資料夾中找到,其中包含兩個相關子目錄。

ContentBuilder 目錄中包含您的遊戲內容和 SteamPipe 組建工具。該目錄包含以下子目錄:
  • builder - 此目錄中一開始只有 Steam 的命令列版本:steamcmd.exe。
  • builder_linux – steamcmd 的 Linux 版本。
  • builder_osx - steamcmd 的 macOS 版本。
  • content - 此目錄包含所有將添加至 Depot 中的遊戲檔案。
  • output - 此目錄用於存放組建日誌、區塊快取和中介輸出檔案。備註:此資料夾可隨時刪除或清空,但刪除後,下次上傳將花費更久的時間。
  • scripts - 此目錄用於存放製作遊戲 Depot 所需的全部組建腳本。
steampipebuilddir.png

建議您直接於「builder」資料夾中執行 steamcmd.exe,為您的平台進行一次組建系統啟動程序。此操作會將所有產生 Depot 所需的所有檔案添加至「builder」資料夾。

如果您選擇架設自己的 SteamPipe 本機內容伺服器ContentServer 目錄已含所需工具。

適用於 macOS 的 SteamCmd

要在 MacOS 上啟用 SteamCmd,請完成以下步驟:
  1. 自終端瀏覽 tools\ContentBuilder\builder_osx\osx32 資料夾。
  2. 執行 chmod +x steamcmd。
  3. 向上移到父資料夾(tools\ContentBuilder\builder_osx)。
  4. 輸入 bash ./steamcmd.sh。
  5. SteamCmd 隨後將執行並將組建更新至最新版本,系統將顯示 SteamCmd 主控台。
  6. 輸入 exit、按下返回鍵關閉主控台。
之後請按照下文的說明操作(需要時取代路徑),建立 Depot 和應用程式設定檔,以便將內容上傳到 Steam。

建立 SteamPipe 組建設定檔

使用 SteamPipe 上傳您的應用程式時,您必須建立一個應用程式腳本,此腳本將用於描述您的組建以及包含在其中的各個 Depot。ContentBuilder\scripts 資料夾內含簡單的範例腳本,適用於帶有一個 Depot 的應用程式。

備註:您可以隨意命名這些腳本。我們命名時遵照 app_build_depot_build_ 規則,維持一致性,供您參考。如果您知道您需要在此電腦上製作多款應用程式,那麼您最好在腳本目錄下為各應用程式建立子目錄,有條理地管理各應用程式的組建腳本。

SteamPipe GUI 工具

如果您使用的作業系統是 Windows,並且喜歡使用 GUI 工具來幫助製作設定檔與上傳組建,您可以使用 Steamworks SDK 的「工具」資料夾中的 SteamPipeGUI。幫助您起步的說明文件位於 zip 檔當中。

即使您選擇使用 GUI 工具,我們仍然推薦您閱讀下文,熟悉 SteamPipe 系統的運作方式。

Depot 組建腳本

首先,為您預計上傳的 Depot 各建立一個 Depot 組建腳本。請先複製 depot_build_1001.vdf 腳本,並將其以即將上傳的 Depot ID 命名。

Depot 組建腳本範例:
"DepotBuildConfig" { // 設此腳本將更新的 Depot ID。 "DepotID" "1001" // 為所有內容設根路徑。 // 下列所有相對路徑(FileMapping 中的項目的 LocalPath,以及FileExclusion 路徑) // 將會以此根路徑為基準解析。 // 如果您不定義 ContentRoot,將自動設為本腳本檔的位置, // 可能非您所願 "ContentRoot" "D:\MyGame\rel\master\" // 遞迴式包含所有檔案 "FileMapping" { // 可為完整路徑,或 ContentRoot 的相對路徑 "LocalPath" "*" // 此為您的遊戲安裝資校夾的相對路徑 "DepotPath" "." // 如果 LocalPath 包含萬用字元 // 進行此項設定代表所有 LocalPath 子目錄中的對應檔案 // 也會同時被納入。 "recursive" "1" } // 排除所有符號檔 // 可為完整路徑,或 ContentRoot 的相對路徑 "FileExclusion" "*.pdb" }

備註:在 Depot 組建腳本中設定一個 「ContentRoot」將重寫應用程式組建腳本中的「ContentRoot」。

應用程式組建腳本

在您的 Depot 組建腳本設定完成後,請準備詳細描述組建的應用程式組建腳本。從複製 app_build_1000.vdf 腳本開始,並以即將建構的 AppID 為其命名。

SteamPipe 支援的組建類型如下:
  • Preview – 此類型的組建只能輸出日誌檔和一個資訊清單,建構預覽組建為日後修改上傳腳本的好方法。
  • Local – SteamPipe 本機內容伺服器的組建。將 LCS(Local Content Server)組建上傳至您的 LCS 中,便可使用 Steam 用戶端測試遊戲安裝。
  • SteamPipe – SteamPipe 組建實際上會使您的 Depot 上傳至 Steam。在任何時候這個作法都很安全,就算是已釋出的遊戲也不例外,因為在您將組建公開釋出之前,顧客是無法下載該組建的。

應用程式組建腳本範例:
"appbuild" { // 設此腳本將上傳的應用程式 ID。 "appid" "1000" // 此組建的說明。 // 說明位於「應用程式管理員」面板的「您的遊戲版本」欄位中,只有您能看見。 // 上傳組建後,可隨時至「您的遊戲版本」頁面中更改。 "desc" "Your build description here" // 選擇啟用或停用指明此組建是否為預覽組建。 // 在 SteamPipe 上進行初始設定時,我們強烈建議您使用預覽組建 // 確保 Depot 的資訊清單當中有正確的檔案。 "preview" "1" // 本機伺服器啟用時,此為本機伺服器的檔案路徑。 "local" "" // 在建構成功後將自動推出的分支名稱,留空則不推出任何分支。 // 請注意「預設」分支無法設為自動推出。這只能在應用程式管理員面板當中執行。 "setlive" "" // 以下路徑可為腳本的絕對或相對位置。 // 此目錄將為組建紀錄、區塊快取、中繼輸出的存放位置。 // 儲存在這裡的快取可透過比較差異加快未來上傳至 SteamPipe 的速度。 "buildoutput" "..\output\" // 內容資料夾的根路徑。 "contentroot" "..\content\" // 此組建內含的 Depot 列表。 "depots" { "1001" "depot_build_1001.vdf" } }

建構 Depot

如果想開始編譯您的組建,請將應用程式組建腳本的 Steamworks 組建帳密(請見上文)與路徑加入 run_build.bat 檔案:
builder\steamcmd.exe +login "account" "password" +run_app_build ..\scripts\[build_script_name].vdf +quit

備註:您第一次嘗試執行組建時如失敗,原因可能為 Steam Guard。如果您登入失敗的原因為 Steam Guard,請在您的電子郵件收件匣中尋找 Steam Guard 驗證碼,接著在 steamcmd.exe 中執行 steamcmd.exe "set_steam_guard_code <code>",然後重試。在使用 Steam Guard 登入後,將使用 Sentry 檔案來驗證登入資訊是否屬實。

執行 run_build.bat 後,您的組建應輸出至組建腳本檔案指定的目錄中。如果預覽組建產出的資訊清單如同預期,則在應用程式組建腳本中使用「preview」與「0」再次執行組建。

在編譯 SteamPipe 的過程中將依序發生以下情形:
  1. Steamcmd.exe 使用給定的建構者 Steam 帳戶登入 Steam 後端。
  2. 在 MDS(主 Depot 伺服器)上註冊應用組建啟動,如此可保證使用者擁有修改此應用程式的適當權限。
  3. 應用程式組建中的所有 Depot 將擁有各自的檔案列表,根據內容資料夾中的檔案製成,並經過 Depot 組建設定檔中的規則過濾。
  4. 各檔案將被掃描,分割成大約 1MB 的小區塊。如果 Depot 已存在,則分割將盡可能保留未更改的區塊。
  5. 新檔案區塊經過壓縮、加密後上傳到 MDS。
  6. 此 Depot 版本的最終資訊清單產生;各清單都擁有不重複的 64 位清單 ID。
  7. 所有 Depot 處理完成後,MDS 就會完成此應用程式版本的建構,並為其分配一個全域 buildID。
  8. 組建處理完成後,組建輸出資料夾中可能會出現 *.csm 和 *.csd 檔案。這些是暫存檔,可以刪除,但留著可縮短往後建構的所需的時間。

管理更新檔

在您向顧客發佈應用程式後,顧客收到的是標記為「預設」的組建。上傳新組建時,最好在向您的顧客推出前測試此更新組建,詳細作法請參考在 Steam 上進行測試一文。

進階檔案對應規則

可以使用多個檔案對應物件將檔案添加至 Depot,這些檔案應優先列出。
檔案或子資料夾可使用過濾運算式排除。
Steam 安裝腳本 可在製作過程中加標記,這樣 Steam 用戶端便會為掛載 Depot 的應用程式執行這些腳本。
檔案或資料夾可重新對應,如此一來內容資料夾中的子資料夾即可對應到 Depot 中的任何位置。
檔案可添加以下特殊旗標:
  • userconfig - 使用者修改檔。此檔案無法經由更新覆寫,與舊版檔案不同時也不會觸發驗證錯誤。
  • readonly - 在用戶端檔案系統中將標為唯讀。
  • hidden - 在用戶端檔案系統中將標為隱藏。
  • executable - 執行檔(僅適用於 OS X)。
    "DepotBuildConfig" { "DepotID" "202931" "FileMapping" { // 覆寫 \videos 下有德文版本的影片 "LocalPath" "localization\german\videos\*" "DepotPath" "videos\" } "FileMapping" { // 覆寫 \audio 下有德文版本的音訊檔 "LocalPath" "localization\german\audio\*" "DepotPath" "audio\" } "FileMapping" { "LocalPath" "localization\german\german_installscript.vdf" "DepotPath" "." } "FileExclusion" "bin\server.exe" // 排除此檔案 "FileExclusion" "*.pdb" // 排除任何位置的所有 .PDB 檔案 "FileExclusion" "maps\testroom*" // 排除 maps/testroom/ 下的所有檔案 "InstallScript" "localization\german\german_installscript.vdf" "FileProperties" { "LocalPath" "bin\setup.cfg" "Attributes" "userconfig" // 此檔案將會在執行階段被修改 } }

組建偵錯相關疑問

如果組建無法成功執行,請至輸出資料夾查看錯誤訊息,而非組建執行位置的主控台。大多數錯誤訊息將列於 *.log 檔案中。
您可以使用以下 Steam 用戶端命令與用戶端檔案進行偵錯:
  • "app_status [appid]" - 顯示此用戶端中應用程式的當下狀態。
  • "app_info_print [appid]" - 顯示此遊戲的當下 Steamworks 設定(Depot、啟動選項等)。
  • "app_config_print [appid]" - 顯示此遊戲的當下使用者設定(當下語言、安裝目錄等)。
  • file "logs\content_log.txt" - 列出所有記錄的 Oxcart 操作和錯誤。
  • file "steamapps\appmanifest_[appid].acf" - 顯示此應用程式的當下安裝狀態(KeyValues)。

製作高效率的 SteamPipe Depot

舊 Steam 內容系統以檔案層級發佈補丁更新,代表如果您只想修改檔案中的一個位元,則所有使用者都必須下載一個全新的檔案。如果是將內容檔案集合成一個大檔的套件封裝檔,則更顯得這種方法缺乏效率。封裝檔的大小經常大於 1GB,更新將導致使用者不必要地下載大檔案。避免這種情況的常見解法是添加新的封裝檔,覆蓋已經給出的封裝檔內容。這種方法可用於更新,但長期來說對新使用者不利,因為這樣做將導致使用者下載打補丁前、完全用不到的舊內容。
新內容系統則將各檔案分割成大約 1MB 的區塊,解決了上述問題。分割後的區塊會經過壓縮和加密,再透過 Steam 內容系統進行分發。如果遊戲內容有許多重複的大區塊,那麼這些大區塊就會被重複利用,使用者只需下載一次即可。但是,此系統的真正優勢是有效率地製作更新補丁。系統製作補丁時,將掃描新內容,尋找已知區塊。如果已知區塊存在,便再次使用。這意味著如果您在一個大檔案中更改或加入了幾個位元,使用者只需下載更改部分即可。
大多數情況下,這種方法都很管用,但在設計遊戲的內容布局時,仍需要小心一些容易出錯的部分。切勿壓縮或加密您的遊戲資料。Steam 內容系統提供的下載和零售光碟已採用壓縮加密,如果您也這樣做,將降低差異補丁的效果。Steam 內容系統提供的下載和零售光碟已採用壓縮加密,如果您也這樣做,將降低差異補丁的效果。如果您將多個資料檔案封裝到一個封裝檔案中,請確保每次重新打包時,不做不必要的更改。會造成問題的一種作法是使用磁碟上原始來源檔案的全名,因為名稱可能會根據建構時使用的電腦而變化。另外一種壞習慣是在每個檔案中加入組建時間戳記。另外,可能的話,盡量在您的封裝檔的檔名末附註新內容,維持既存檔案的順序。同時,將您的打包檔案的中繼資料(單個檔案的位移和大小)儲存在一個地方,不要將其混雜在內容檔案中。使用 BeyondCompare 等二進位制檔案比較工具查看封裝檔案的兩個組建,確保封裝檔不含多餘的變更。
遵照以上原則可將補丁大小控制在最小,使用者只需下載新內容。您的顧客會為此感謝您,同時您也可以透過推出更多更新來提升產品品質。

製作零售安裝光碟

製作 SteamPipe 遊戲的零售安裝光碟時,您需要先建立一個組建檔。
在以下範例中,該 SKU 檔案的名稱為「sku_goldmaster.txt」:
"sku" { "name" "Test Game Installer" "appid" "202930" "disk_size_mb" "640" "included_depots" { "1" "202931" "2" "202932" } }
請謹記以下要點:
  • 建立一個將寫入零售光碟映像的新資料夾,如「D:\retail_disks」。只添加 included_depots 區塊下的 Depot;「exclude」區塊已不復存在。
  • 您可以使用 Steam.exe (有 -dev 與 -console 命令列參數)或 steamcmd.exe 製作安裝映像。在兩種情況下,皆可使用「build_installer」命令。
  • 登入擁有該遊戲和所有(要放進光碟的)Depot 的 Steam 帳戶。否則,帳戶不需要特殊權限,任何人皆可製作安裝光碟。
  • 如果您使用 Steam.exe,請暫停所有其他下載。
  • 打開主控台頁面,執行 build_installer 命令:
    build_installer sku_goldmaster.txt "D:\retail_disks"
    建構需要一段時間才能完成,因為所有 Depot 都是第一次重新下載。
  • 如果您製作 GM(Gold Master)時使用的是本機內容伺服器,請執行:
    @localcontentserver "webserver"
    build_installer sku_goldmaster.txt "D:\retail_disks" local
    此處的輸出為「備份」,因為「零售安裝磁碟」與本機遊戲備份基本上相同。
  • 看到「AppID 的備份已完成……」,即表示安裝磁碟映像已準備完成。您可以在 logs\backup_log.txt 中找到更多有關備份組建的資訊。
  • 「D:\retail_disks」中有新資料夾(Disk_1、Disk_2 等),按照「disk_size_mb」的規定,每個資料夾的大小皆需在 640MB 以內。每個磁碟資料夾皆含一個「sku.sis」檔案,每個 又含 .csd 和 .csm 檔案。更大的 Depot 可用多個磁碟存放。所有零售安裝磁碟內容都將加密(與本機遊戲備份檔案不同)。將 SDK GM 設定檔案(setup.exe、setup.ini 等檔案)複製到您的第一個磁碟資料夾中,零售光碟安裝程式即製作完成。
  • 為 OSX 製作 GM 時,請務必在 Mac 上開啟 goldmaster/disk_assets/SteamRetailInstaller.dmg 映像檔。接著複製映像檔中的應用程式至所用儲存媒體的根目錄。您可以變更安裝程式名稱,還可以用您的品牌製作圖示,同時修飾視窗、使其只顯示安裝程式。
  • 為 OSX 製作多光碟 GM 時,務必確保各磁碟區名稱相互對應。磁碟區名稱是掛載路徑的一部分,如果名稱不一致,安裝程式將無法找到下一張光碟。

可選從測試版分支中製作零售安裝程式

上述過程將根據預設分支建立一個零售安裝程式。如果您需要在測試分支中建立安裝程式,您必須先建立一個名為「baseline」的測試分支。再使用下列指令在「baseline」分支中建構。
build_installer : steamcmd ex: build_installer sku_goldmaster.txt "D:\retail_disks" baseline superSecret script ex: steamcmd.exe +login user_name password +build_installer "..\Build\GameDataSku.txt" c:\destination beta_key beta_password +exit

透過零售版安裝程式安裝 DLC

有時候您可能想製作包含您的 DLC 套件的零售安裝程式。在這種情況下,建立該安裝程式的程序只有些許不同。
請在「sku_goldmaster.txt」中,將 DLC AppID 加入「included_depots」區塊中。執行「build_installer」程序,找到為此安裝程式產生的 sku.sis 檔案,然後用文字編輯器打開。
在「apps」區塊添加 DLC AppID,比方說,如果遊戲的 AppID 為 1000,DLC AppID 為 1010,就應按照以下方法修改「apps」區塊:
"apps" { "0""1000" "1""1010" }
上述作法可確保 Steam 將檢查 DLC 的所有權。如果該 DLC 不屬於已登入的 Steam 帳戶,則 Steam 將在使用者登入 Steam 時,顯示要求使用者輸入序號的對話視窗。

在單張光碟或安裝套件中為多個 AppID 製作零售安裝程式

想製作一個包含許多 SteamPipe 應用程式的 GM,請逐一製作應用程式的安裝程式。但記得將這些程式的輸出資料夾皆指定為同一個資料夾。各組建將使用既有的安裝映像檔自行合併。

自訂零售安裝磁碟

自訂安裝磁碟的詳細作法請見自訂 Gold Master 一文。

解密密鑰與預載

根據預設,零售光碟和內容伺服器上的所有內容都會加密。各 Depot 都擁有一個不重複的解密序號,後端可在收到請求後將這些序號提供給擁有者。將遊戲切換到預載模式代表後端將不再發送序號給擁有者。擁有者可下載內容,但使用者光碟上的內容將維持加密狀態,無法執行。遊戲正式發售後,請務必停用預載模式。這時使用者將在幾分鐘內收到 Depot 解密序號,其後便能解密預裝內容、執行遊戲。

以下狀況建議將遊戲切換為預載模式:
  • 在遊戲正式推出前,發售帶產品序號的零售版光碟(抑制盜版)。
  • 遊戲上市前線上銷售遊戲(預售與預載)。
預載模式可在應用程式管理合作夥伴頁面的 Depots部分上管理,但是只有「管理員」使用者才能更改預載模式狀態。解密序號可按地區各別發佈。您可以提供可信賴的使用者特殊訂閱(Subscription),藉以覆蓋遊戲「狀態」。使用者收到 Depot 解密序號之後,序號便會儲存在使用者本機中,如此一來,遊戲便不會切換回預載模式。

製作 DLC

DLC 的建構形式為主程式的 Depot,詳情請見可下載內容(DLC) 一文。

SteamPipe 故障排除

「登入失敗:帳戶登入被拒絕」(透過 steamcmd 登入時出現)

原因:很可能是 Steam Guard 阻止了登入。解決方法:
  • 查看註冊在您試圖登入的帳戶下的的電子郵件信箱,尋找來自 Steam 客服團隊的電子郵件,複製信中的驗證碼。
  • 執行以下 steamcmd:set_steam_guard_code
  • 使用 steamcmd 再次嘗試登入: Steam>logon

關於下載問題的一般性故障排除

  • 重啟電腦、數據機、路由器等設備。
  • 驗證防火牆設定。新系統要求使用 80(HTTP)連接埠和以下列出的所有其他 Steam 連接埠:here
  • 暫時停用本機防病毒或垃圾郵件攔截程式。
  • 打開設定->下載,檢查 Steam 下載區域。顯示地區應與您的所在位置一致。
  • 停止下載,移除程式,然後重新安裝遊戲(清空資訊清單快取)。
  • 退出 Steam,刪除 Steam 安裝資料夾下的「appcache」與「depotcache」兩個資料夾。
  • 嘗試將您的 Steam 下載區域設定為較遠地區。如果您附近的內容伺服器提供的資料有問題,此方法就可能起作用。

為什麼我的 Mac 或 Linux 組建沒有安裝任何檔案?

如果您透過 Steam 在多個平台上測試遊戲或應用程式的安裝情形,那麼即使您的 SteamPipe 流程已經設定為上傳 Mac 或 Linux Depot,您依舊有可能遇到組建部署在 Windows,卻沒有在 Mac 或 Linux 上部署任何檔案的情況。向需要部署的套件添加備用 Depot 時很容易漏掉一個步驟。您可以透過以下步驟檢查套件中包含了哪些 Depot:
  1. 開啟至應用管理頁面。
  2. 點擊「檢視相關項目」欄位底下的所有相關套件、可下載內容、宣傳影片與工具
  3. 點擊您嘗試下載的套件標題。
  4. 查看已包含 Depot 欄。
  5. 使用新增 / 移除 Depot 確保該套件已被分配正確的 Depot 組。
下列討論串供您參考:

執行 steamcmd.exe 導致以下錯誤:「SteamUpdater:錯誤:Steam 需要上線才能更新。請確認您已連接網路,然後重試

解決方法:打開 Internet選項->連接->區域網路設定並勾選自動檢測設定

執行應用程式組建導致以下錯誤:「錯誤!Failed 'DepotBuild for scriptname.vdf' - status = 6」

可能原因:
  • 帳戶沒有存取該應用程式的權限。
    • 檢查 app_build.vdf 中的 AppID 是否正確。
    • 檢查組建帳戶是否擁有針對此 AppID 的適當權限
  • Steamcmd 找不到 Depot 內容。
    • 檢查 app_build 腳本中的「contentroot」值是否為有效的相對路徑,指向腳本的檔案位置。
    • 檢查 depot_build 腳本中的「LocalPath」值是否為有效的相對路徑,指向 app_build 腳本的檔案位置,並檢查該路徑是否含有實際內容。

執行應用程式組建導致以下錯誤:「錯誤!無法獲取應用程式 NNNNN 的應用訊息(檢查登入和訂購情況)」

這表示 Steam 檢索不到該應用程式的資訊,可能是因為應用程式不存在,或是使用者沒有存取該應用程式的權限。
  • 檢查 NNNNN 是否是您所分配到的 AppID。
  • 檢查 app_build.vdf 中的 AppID 是否正確。
  • 如果它是一個新的 AppID,請確保 Steamworks 應用程式管理設定已經發佈。新應用程式的「設定」分頁中上應該有 SteamPipe 安裝目錄,「Depot」分頁中應該有 Depot,所有變更都應該發佈在「發佈」分頁上。
  • 如果以上這些看起來都沒問題,請確保您的帳戶擁有該 AppID。

啟動時出現「安裝 [ 應用程式名稱 ] 時出現一個錯誤(無效內容設定)」

可能原因:
  • 您嘗試用來安裝的分支中沒有被設定為推出的組建。
    解決方法:前往 https://partner.steamgames.com/apps/builds/[YourGameAppId],在 Steam 用戶端上選擇此分支(見此處)。
  • 遊戲啟動選項無效。
    解決方法:檢查遊戲的應用程式管理頁面中「設定」分頁的啟動選項:https://partner.steamgames.com/apps/config/[YourGameAppId]。
  • 您沒有該遊戲的 DepotID 的所有權。
    解決方法:確保必要的 Depot 已添加到開發訂購版上(修改套件內容的作法請見 修改套件)。

啟動時出現「錯誤代碼 15」

這是因為 CEG 伺服器拒絕了 CEG 執行檔的請求。請檢查遊戲頁面的發行狀態發行狀態。檢查遊戲頁面上的發佈狀態,如果不為「可執行」,您需要索取 Steam 序號並修改發佈狀態。

啟動時出現 「Steam 伺服器過於忙碌,無法處理您的請求……錯誤代碼(2)」

這是因為 CEG 伺服器無法找到對應的 CEG 執行檔。請再次檢查應用程式管理中的 CEG 分頁,確定是否有可用的 CEG 執行檔。點擊「狀態」按鈕,確保 CEG 受支援。

我忘記了 steamcmd 命令,或不知道如何使用

請使用 steamcmd 的「find」命令來搜尋 steamcmd 命令。您也可以搜尋命令名稱,任何命令語法只要部分符合皆會列出。
Steam>find build_installer ConVars: Commands: build_installer :