Steamworks ドキュメンテーション
Steam へアップロードする

新バージョンを英語でお読みいただけます

翻訳が公開されてから、このページの英語版が更新されました。このページの英語版を表示するにはこちらをクリックしてください。

SteamPipe コンテンツ システムの概説

SteamPipe は、Steam のゲーム/アプリケーションコンテンツシステムです。SteamPipe には、次のような特長があります:
  • 効率的かつ迅速なコンテンツ配信
  • 複数のビルドのテストを可能にする、無制限のパブリックおよびプライベート「ベータ」ブランチ
  • ウェブベースによるシンプルなビルド管理 - 数クリックで、新規ビルドのリリースまたは以前のビルドへのロールバックを実行
  • ライブ設定前のビルドのアップデートサイズ確認
  • 複数のアプリケーション間でのコンテンツの共有機能
  • 公開またはベータコンテンツからインストーラーディスクを構築する機能
  • アップデートのダウンロードの開始後も、ゲーム/アプリはオフラインで使用可能
  • すべてのコンテンツは暗号化されており、アクティブでないバージョンは顧客には見えない
  • 開発時に使用可能なSteamPipe ローカルコンテンツサーバー
注意: SteamPipe にはいくつかの重要な概念があり、先へ進む前にアプリケーションに記載されているすべての概念を理解しておいてください。個々の作業がどのように組み合わさるのかについて、基本概念を理解しておくだけでも、製品を Steam にアップロードする際には非常に役立ちます。

Steamworks ビデオチュートリアル - Steampipe でのゲームの構築

このチュートリアルでは、Steamworks ツールを使った Steam 用のサンプルアプリケーションの構築を通じて SteamPipe とその使い方の手順を解説します。
https://www.youtube.com/watch?v=SoNH-v6aU9Q

Steamworks ビデオチュートリアル - 新しいプラットフォームと言語の追加

このチュートリアルでは、アプリにデポを追加することで、ゲームに新しいプラットフォームや言語を追加する手順を解説します。
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 内のホームページでアプリケーションを選択すると、検索ができます)
  2. あなたのアプリの、一般的なインストール設定ページを開きます。
  3. 1 つ以上の起動オプションを定義します (起動に必要なパスと任意の引数各)。フィールドの詳細を知るには(?) の上にマウスポインタを重ねてください。

    下のサンプルは 4 つの起動オプションを示しており、2 つが Windows 向け、残りがそれぞれ macOS と Linux 向けです。起動オプション 3 は ユーザーが Windows 上に指定された DLC を所有している場合にのみ表示されます。

    updatedlaunchoptions.png
  4. デポページにアクセスして、このアプリに必要なデポを追加します。初期設定では、デポがすでにアプリケーション用に設定されている可能性があります。
    1. 初期設定のデポをクリックし、デポの名前を ("ベースコンテンツ" または "Windows コンテンツ" などの) 的確で覚えやすいものに変更します。
    2. これが言語固有のデポでない場合、言語設定は「すべての言語」のままにします。
    3. OS 固有のデポでない場合、OS 設定は「全 OS」のままにしておいてください(オールインワンアプリ、PC、または Mac の場合、「全 OS」のままにしておいてください)。OS 固有のゲームのデポに対してのみ設定します。
    4. 新しいデポを追加するをクリックして、追加のデポを指定します。
    5. 変更を保存するをクリックして、変更点を保存します。
  5. デポの定義が完了したら、公開ページから変更を公開します。
  6. 自分に所有権を与えるには、新規に定義されたデポをパッケージ内に格納してください。Steam 上の各ゲームには、あなたのパブリッシャーグループ内にリストされるアカウントに自動付与される Developer Comp パッケージがあります。
    関連パッケージ & DLCページ上の、パッケージ (または、これらのデポを持つ他のパッケージ) に新しいデポを追加することができます。

SteamPipe アップロード用の SDK の設定

ビルドをアップロードするマシンに最新バージョンの Steamworks SDK をダウンロードして解凍します。

SteamPipe ツールは、2 つの関連するサブディレクトリを含む tools フォルダ内の SDK 内にあります。

ContentBuilder ディレクトリは、ゲームコンテンツと SteamPipe ビルドツールがある場所です。このディレクトリには、次のサブディレクトリがあります:
  • builder – デフォルトでは、コマンドラインバージョンの Steam である steamcmd.exe のみを含みます。
  • builder_linux - Linux バージョンの steamcmd を含みます。
  • builder_osx - macOS バージョンの steamcmd を含みます。
  • content - デポに構築するゲームの全ファイルを含みます。
  • output - ビルドログ、チャンクキャッシュ、中間アウトプットが保存されます。注意: このフォルダーは、いつでも削除または空にすることができますが、削除してしまうと、次のアップロードにかかる時間が少し長くなります。
  • scripts - ゲームのデポを構築するための全ビルドスクリプトを配置する場所です。
steampipebuilddir.png

ビルドシステムをブートストラップするために、steamcmd.exe を必ず一回実行してください。ゲームデポを構築するのに必要な全ファイルが、SteamCmd ディレクトリに作成されます。

ContentServer ディレクトリには、独自のSteamPipe ローカルコンテンツサーバーを実行するツールが含まれています。

macOS 向け SteamCmd

macOS で SteamCmd を有効にするには以下の手順に従ってください:
  1. ターミナルから \ContentBuilder\builder_osx\osx32 フォルダを参照します
  2. chmod +x steamcmd を実行します
  3. 親フォルダ (tools\ContentBuilder\builder_osx) を参照します
  4. 「bash ./steamcmd.sh」と入力します
  5. SteamCmd が実行されて最新のビルドにアップデートされ SteamCmd プロンプトが表示されます
  6. 「exit」と入力してからreturn キーを押してプロンプトを終了します
その後、このドキュメントの以下の手順に従えば(必要に応じてパスを変更してください)、コンテンツを Steam にアップロードするためのデポとアプリ設定ファイルを作成できます。

デポのビルド設定ファイルの作成

SteamPipe, でアプリケーションをアップロードするには、ビルドとそれに含まれる各デポを記述するスクリプトを作成する必要があります。つのデポを持つアプリ用の簡単なスクリプトの例が ContentBuilder\scripts フォルダにあります。

注意: これらのスクリプトには任意の名前を付けることができますが、一貫性を保つために app_build_<AppID>、および depot_build_<AppID> という名前を使用しています。このマシン上で複数のアプリ用のデポを構築する予定がある場合には、各アプリケーションのビルドスクリプトを整理しやすくするため、各アプリケーション用にスクリプトディレクトリにサブディレクトリを作成することをお勧めします。

SteamPipe GUI ツール

Windows 上で実行している場合、設定ファイルの作成とビルドのアップロードに役立つ GUI ツールが Steamworks SDK の tools フォルダにあります。zip ファイルには、使用方法に関する追加インストラクションが含まれています。

GUI ツールを使用する場合は、SteamPipe システムの仕組みをさらに理解するために、以下のセクションを読むことをお勧めします。

デポのビルドスクリプト

まず、アップロード予定のデポごとにデポビルドスクリプトを作成します。depot_build_1001.vdf スクリプトを複製し、アップロードするデポ ID に名前を変更します。

ビルドスクリプトの例:
"DepotBuildConfig" { // Set the depot ID that this script will upload. "DepotID" "1001" // Set a root for all content. // All relative paths specified below (LocalPath in FileMapping entries, and FileExclusion paths) // will be resolved relative to this root. // If you don't define ContentRoot, then it will be assumed to be // the location of this script file, which probably isn't what you want "ContentRoot""D:\MyGame\rel\master\" // Include all files recursively "FileMapping" { // This can be a full path, or a path relative to ContentRoot "LocalPath" "*" // This is a path relative to the install folder of your game "DepotPath" "." // If LocalPath contains wildcards, setting this means that all // matching files within subdirectories of LocalPath will also // be included. "recursive" "1" } // Exclude all symbol files // This can be a full path, or a path relative to ContentRoot "FileExclusion" "*.pdb" }

注意: デポビルドスクリプトの「ContentRoot」を設定するとアプリのビルドスクリプトにある「ContentRoot」をオーバーライドします。

アプリのビルドスクリプト

デポビルドスクリプトを設定したら、ビルドの詳細を記述するアプリ用のビルドスクリプトが必要になります。まず、app_build_1000.vdfスクリプトを複製し、ビルドするアプリケーション ID に名前を変更します。

以下、SteamPipe がサポートするビルドの種類:
  • プレビュー - このビルドタイプは、ログとマニフェストファイルのみを出力します。プレビュービルドの構築は、デポのビルド設定ファイルの反復処理に役立ちます。
  • ローカル - SteamPipe ローカルコンテンツサーバー 用のビルドです。LCS (ローカルコンテンツサーバー) ビルドはあなたの LCS へアップロードするため、Steam クライアントを使用してゲームのインストールテストをすることができます。
  • SteamPipe - SteamPipe は実際に Steam にアップロードされるあなたのデポを構築します。このビルドを顧客がダウンロードするには、公開に設定する必要があるため、既にリリースされているゲームに対しても安全に実施できます。

アプリビルドスクリプトの例:
"appbuild" { // Set the app ID that this script will upload. "appid" "1000" // The description for this build. // The description is only visible to you in the 'Your Builds' section of the App Admin panel. // This can be changed at any time after uploading a build on the 'Your Builds' page. "desc" "Your build description here" // Enable/Disable whether this a preview build. // It's highly recommended that you use preview builds while doing the initially setting up SteamPipe to // ensure that the depot manifest contains the correct files. "preview" "1" // File path of the local content server if it's enabled. "local" "" // Branch name to automatically set live after successful build, none if empty. // Note that the 'default' branch can not be set live automatically. That must be done through the App Admin panel. "setlive" "" // The following paths can be absolute or relative to location of the script. // This directory will be the location for build logs, chunk cache, and intermediate output. // The cache stored within this causes future SteamPipe uploads to complete quicker by using diffing. "buildoutput" "..\output\" // The root of the content folder. "contentroot" "..\content\" // The list of depots included in this build. "depots" { "1001" "depot_build_1001.vdf" } }

デポの構築

ビルドを始めるには、Steamworks のビルドアカウント/パスワード (above参照) とアプリのビルドスクリプトへのパスを盛り込んだ形に run_build.bat ファイルを編集してください:
builder\steamcmd.exe +login "account" "password" +run_app_build ..\scripts\[build_script_name].vdf +quit

注意: ビルドの初回実行時には、Steam ガードによりその実行が阻害される場合があります。Steam ガードによってログインが失敗した場合は、メールで送られた Steam ガードコードを確認し、steamcmd を次のように実行し再度ログインしてください: steamcmd.exe "set_steam_guard_code <code>"。Steam ガードでログインに成功すると、セントリーファイルによって、正規のログインであることが確認されます。

run_build.bat を実行すると、ビルドスクリプトファイル内で指定されたディレクトリにビルドのアウトプットが生成されます。プレビュービルドが期待通りのマニフェストを作成したら、アプリのビルドスクリプトで、"preview" "0" を実行してください。

SteamPipe ビルドプロセスでは以下の手順が発生します:
  1. Steamcmd.exe は、与えられたビルダーの Steam アカウントを使用して Steam バックエンドにログインします。
  2. アプリビルドの開始が MDS(マスターデポサーバー)に登録されます。それにより、ユーザーがこのアプリを修正するのに必要な権限があるかどうかを確認します。
  3. コンテンツフォルダのファイルとデポビルドの設定ファイルで定義されたフィルタールールに基づき、各デポのファイルリストが生成されます。
  4. 各ファイルはスキャンされ、約 1 MB のチャンクに分割されます。デポが過去に構築されていた場合、この分割プロセスでは、変更のないチャンクはできるだけそのまま維持されます。
  5. 新しいファイルのチャンクは圧縮され、暗号化されてから MDS にアップロードされます。
  6. このデポバージョンの最終マニフェストが生成されます。各マニフェストは固有の 64 bit のマニフェスト ID で識別されます。
  7. デポがすべて処理されると、MDS はこのアプリビルドの処理を終了し、グローバルビルド ID を割り当てます。
  8. 構築が完了すると、ビルドの出力先フォルダに *.csm 、または *.csd ファイルが作られます。これらは一時ファイルで削除することも可能ですが、これらがあるとその後のビルド時間が短縮できます。

アップデートの管理

顧客へのアプリのリリース後、顧客はデフォルトビルドとマークされたビルドを受け取ることになります。新しいビルドをアップロードするときは、顧客に一般公開する前にテストすることをお勧めします。テストに関する詳細は、Steam 上でのテストを参照してください。

高度なファイルマッピングルール

デポにファイルを追加する複数のファイルマッピングが考えられます。それらは、最初にリストされなければなりません。
ファイル、またはサブフォルダはフィルタ式で除外できます。
Steam インストールスクリプトは、ビルドプロセス中にマーク付けされるため、Steam クライアントは、デポをマウントするアプリケーションに対してそれらを実行すべきであることを認識します。
ファイルまたはフォルダは再マップすることが可能で、コンテンツフォルダのサブフォルダはデポのどこにマップしても問題ありません。
ファイルは、特別なフラグでタグ付けすることができます:
  • userconfig - このファイルは、ユーザーによって修正されます。これはアップデートにより上書きされず、ファイルの前のバージョンと異なるでも照合エラーを起こすことはありません。
  • readonly - このファイルは、クライアントのファイルシステムで読み込み専用としてマークされます。
  • hidden - このファイルは、クライアントのファイルシステムで非表示としてマーク付けされます。
  • executable - これは実行ファイルです (OS X 限定)
    "DepotBuildConfig" { "DepotID" "202931" "FileMapping" { // override video files files in \videos with German versions "LocalPath" "localization\\german\\videos\\*" "DepotPath" "videos\\" } "FileMapping" { // override audio files in \audio with German versions "LocalPath" "localization\\german\\audio\\*" "DepotPath" "audio\\" } "FileMapping" { "LocalPath" "localization\\german\\german_installscript.vdf" "DepotPath" "." } "FileExclusion" "bin\\server.exe" // exclude this file "FileExclusion" "*.pdb" // exclude all .PDB files everywhere "FileExclusion" "maps\\testroom*" // exclude all files under maps/testroom/ "InstallScript" "localization\\german\\german_installscript.vdf" "FileProperties" { "LocalPath" "bin\\setup.cfg" "Attributes" "userconfig" // this file will be modified during runtime } }

ビルド関連問題のデバッグ

ビルドに失敗した場合、ビルドスクリプトが実行されたコンソールではなく、出力先ディレクトリーでエラー情報を確認してください。ほとんどのエラー情報は *.log ファイル内に記録されているはずです。
以下の Steam クライアントのコマンドとクライアント側のファイルを使用して、問題をデバッグできます:
  • "app_status [appid]" - このクライアント上のアプリの現在の状況を表示します。
  • "app_info_print [appid]" - このゲームの現在の Steamworks の設定 (デポ、起動オプションなど) を表示します。
  • "app_config_print [appid]" - このゲームの現在のユーザー設定 (現在の言語、インストールディレクトリなど) を表示します。
  • file "logs\content_log.txt" - 記録された Oxcart の動作状況と全エラーをリストアップします。
  • file "steamapps\appmanifest_[appid].acf" - このアプリの現在のインストール状況 (KeyValues) を表示します。

SteamPipe の効率的なデポの構築

以前の Steam コンテンツシステムは、ファイルレベルで更新をパッチしていました。つまり、ファイルの 1 バイトしか変更されなかった場合でもユーザー全員が新しいファイル一式をダウンロードしていたのです。これは、1 つの大きなファイルにゲームコンテンツファイルが収められているパックファイルを使用していた場合に、とりわけ非効率的でした。パックファイルには優に 1 GB を越えるものがあるため、アップデートによってはダウンロード量が必要以上に大きくなっていました。このような大きいダウンロードを避ける一般的な方法は、既に出荷されたパックファイルのコンテンツを上書きする新しいパックファイルを追加するやり方でした。この方法はアップデートではうまく機能しますが、長期的には新規ユーザーの負担になります。なぜなら、彼らは使用しないパッチ済みコンテンツをダウンロードすることになってしまうからです。
新しいコンテンツシステムでは、各ファイルを約 1 MB のチャンクに分割することにより、この問題を解決しました。各チャンクは、Steam のコンテンツシステムにより次回配布される前に圧縮/暗号化されます。ゲームコンテンツに大きく重複する部分がある場合、それらのチャンクは再利用され、ユーザーはそれぞれの重複するチャンクを 1 度ダウンロードするだけでよくなります。ただし、このシステムの真の長所は、効果的なアップデートパッチを構築することができる点です。システムがパッチを構築する間、新規コンテンツに既存のチャンクと同じものがないかをスキャンします。そうしたチャンクが見つかると、既存のチャンクを再利用します。つまり、大きなファイルに数バイトの変更や追加を行う場合、ユーザーはその変更分だけをダウンロードすれば良いという結果になります。
ほとんどの場合これでうまく行きますが、ゲームのコンテンツレイアウトを設計する際に避けるべき落とし穴がまだ幾つかあります。ゲームデータを圧縮、または暗号化しないでください。これは、Steam コンテンツシステムにより、インフライト ダウンロードとリテール版ディスクに対して実行されています。あなたの側でもそうしてしまうと、差分パッチ機能の利点が失われてしまいます。単一パックのファイルに複数のデータファイルをパッケージする場合、再パッケージするたびに不必要な変更がなされないよう気を付けてください。問題になりえる方法のひとつに、ディスク上の元のソースファイルのフルネームを含めるやり方があります。これは、ビルドマシンによって名前が変更されてしまう可能性があり、問題の原因になり得ます。もう 1 つの好ましくないパターンは、各ファイルにビルドのタイムスタンプを含めるやり方です。可能であれば、常にパックファイルの最後に新しいコンテンツを追加し、既存ファイルの順番を維持してください。また、パックファイルのメタデータ(個々のファイルのオフセットとサイズ)をひとつの場所にまとめ、コンテンツファイルの間に点在させないようにしてください。BeyondCompare などのバイナリ比較ツールを使用してパックファイルの 2 つのビルドを確認し、何百もの不要な変更が表示されないようにしてください。
以上のルールに従えば、パッチのサイズを最小限に抑え、新しいコンテンツのみをダウンロードさせることができます。こうすることで、顧客の満足度は高まり、またアップデートをどんどん出荷することで製品の質を高めることもできます。

リテール版インストールディスクの構築

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 セクションのデポだけが追加されます。除外セクションはありません。
  • Steam.exe の -dev および -console コマンドラインパラメーター、または steamcmd.exe を使ってインストーラーイメージを作成してください。いずれの場合も、"build_installer" コマンドを使用してください。
  • ゲームとリテールディスクに収録する予定の全デポを持つ Steam アカウントでログインします。アカウントに特別な権限が設定されていない場合は、誰にでもインストーラーディスクが作ることができます。
  • Steam.exe を使用する場合、他のダウンロードすべてを停止してください。
  • コンソールページに行き、build_installer コマンドを実行します:
    build_installer sku_goldmaster.txt "D:\retail_disks"
    すべてのデポが初めて再ダウンロードされるので、ビルドに少し時間がかかる場合があります。
  • ローカルコンテンツサーバーを使用して GM を構築する場合は以下を実行します:
    @localcontentserver "webserver"
    build_installer sku_goldmaster.txt "D:\retail_disks" local
    「リテール版インストールディスク」とローカルのゲームのバックアップは基本的に同じなので、出力されたものは「バックアップ」を参照します。
  • 「Backup finished for AppID...」という表示が出れば、インストールディスクのイメージの完成です。バックアップビルドの詳細については、logs\backup_log.txt を参照してください。
  • 「D:\retail_disks」内に新しいフォルダ (Disk_1、Disk_2 など) が作成され、「disk_size\mb」で指定した通り、それぞれは 640 MB 以下の大きさになります。各ディスクフォルダに、それぞれのデポ用に「sku.sis」ファイルと .csd および .csm が作成されます。より大きなデポの場合は、複数のディスクに収録されることになります。すべてのリテール版インストールディスクのコンテンツは、ローカルのゲームバックアップファイルとは異なり、常に暗号化されます。SDK GM 設定ファイル(setup.exe, setup.ini など)を最初のディスクのフォルダにコピーすると、リテール版ディスクのインストーラーが完成します。
  • OS X 用の GM を作成する場合には、必ず、Mac 上の goldmaster/disk_assets/SteamRetailInstaller.dmg イメージを開くようにしてください。そして、その中にあるアプリをあなたのメディアのルートにコピーします。また、インストーラーを見分けやすくするために、インストールアプリの名前を変更したり、アイコンのブランド化や、ウィンドウの装飾をお勧めします。
  • OS X 用のマルチディスク GM を作成する場合は、各ディスクのボリューム名を一致させてください。ボリューム名はマウントパスの一部となるため、名前が一致しない場合、インストーラーが次のディスクを見つけることができません。

さらにリテール版インストーラーをベータブランチから作成する

上記のプロセスにより、デフォルトブランチに基づいて、リテール版インストーラーが作成されます。ベータブランチに基づいてインストーラーを作成する必要がある場合、以下のようにベータブランチ用の情報を追加してください。
build_installer <project file> <target folder> <beta key> <beta pwd> steamcmd ex: build_installer sku_goldmaster.txt "D:\retail_disks" private_beta 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」の「included_depots」セクションに DLC の AppID を追加します。「build_installer」プロセスを実行したら、インストーラー用に生成された sku.sis ファイルを探し、テキストエディターでそれを開きます。
「apps」セクションに DLC の AppID を追加します。たとえば、AppID 1000 と DLC AppID 1010 のゲームがある場合には、次のように 「app」セクションを調整します:
"apps" { "0""1000" "1""1010" }
これにより、Steam がDLC の所有権をチェックし、DLC が Steam にログインしているアカウントによって所有されていない場合、ユーザーにキーの入力を求めます。

複数の App ID 用のリテール版インストーラーを単一ディスク/インストールパッケージ上に作成する

複数の Steam Pipe アプリを含む GM を作成するには、各アプリのインストーラーを 1 つずつ構築し、それぞれ同じアウトプットフォルダーを指定してください。各ビルドは、現存のインストールイメージと統合されます。

リテール版インストールディスクをカスタマイズする

リテール版インストールディスクのカスタマイズに関する詳細については、ゴールドマスターをカスタマイズするを参照してください。

リリース前のゲームのプリロード

デフォルトでは、全コンテンツは、すべてのリテールディスクとコンテンツサーバー上で必ず暗号化されています。ゲームをプリロードモードに切り替えると、所有者はコンテンツをダウンロードできますが、コンテンツはユーザーのディスク上で暗号化されたままであり、プレイできません。ゲームが正式にリリースされると、Steam はプリロードされたコンテンツを復号化し、ユーザーはゲームをプレイできるようになります。

次の場合に、ゲームをプリロードモードに切り替えることを推奨しています:
  • ゲームが実際に入手可能になる前に、製品キー付きでリテールディスクを出荷する場合 (ゼロデイ著作権侵害)。
  • ファイルサイズが 20GB を超える予約購入ゲームの場合。

開発したゲームで、プリロードが必要な場合は、Steam パブリッシングへチケットを提出してください。

DLC の構築

DLC はベースゲームのデポとして構築されます。詳細については、ダウンロードコンテンツ (DLC)を参照してください。

SteamPipe のトラブルシューティング

steamcmd 経由でログインする際に、「Login Failure:Account Logon Denied Failed」と表示されます。

原因: Steam ガードがログインを妨げていると思われます。解決策:
  • ログインしようとしたアカウントに関連するメールをチェックし、Steam サポートからのメールを探してください。そのメールにあるコードをコピーします。
  • 以下の steamcmd を実行します: set_steam_guard_code <code>
  • steamcmd からもう一度ログインしてください: Steam>logon <buildaccount> <password>

ダウンロード問題の一般的なトラブルシューティング

  • コンピューター、モデム、ルーターなどを再起動します。
  • ファイアウォールの設定を確認します。新しいシステムにはポート 80 (HTTP) とこちらにリストされたすべての Steam ポートが必要になります。
  • 一時的にローカルのアンチウイルス、またはスパムブロックプログラムを無効にします。
  • 設定->ダウンロード&クラウドから、Steam のダウンロード地域を確認します。お住まいの地域と一致させてください。
  • ダウンロードを停止し、アンインストールしてからゲームを再インストールします(マニフェストキャッシュを消去します)。
  • Steam を終了し、Steam のインストールフォルダから、アプリキャッシュとデポキャッシュの 2 つのフォルダを削除します。
  • Steam のダウンロード地域を、離れた場所に設定してみてください。この方法は、近くのコンテンツサーバーが壊れたデータを送っている場合に効果があります。

Mac または Linux のビルドはどのファイルもインストールしません。なぜでしょうか?

複数のプラットフォームでゲームやアプリケーションのインストールを Steam 経由でテストしている場合、ビルドが Windows 上ではファイルを展開しますが、SteamPipe プロセスが Mac または Linux デポをアップロードするよう設定されているにもかかわらず、Mac や Linux 上でファイルを全く展開しないような状況に遭遇する場合があります。展開されているパッケージに別のデポを加えてしまうという間違えやすいステップがあります。次の手順で何のデポがパッケージに含まれているかチェックすることができます:
  1. アプリ管理のページに移動します
  2. 関連項目を見るセクションで、デモ、関連する全パッケージ、ビデオ、DLC を見るをクリックしてください
  3. ダウンロードしようとしているパッケージのタイトルをクリックします
  4. 含まれているデポセクションを調べます
  5. デポの追加/削除を使用して、パッケージにデポの正しいセットが割り当てられていることを確認してください
この問題の解決に役立つ多くの話題スレッドがあります:

steamcmd.exe を実行すると、以下のエラーが表示されます: "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again."

解決策:インターネットオプション->接続->Lan の設定を開き、自動的に設定を検出するを確認してください。

アプリのビルドを実行すると、以下のエラーが表示されます: "ERROR! Failed 'DepotBuild for scriptname.vdf' - status = 6."

考えられる原因:
  • アカウントにアプリに対する権限がない。
    • app_build.vdf 内で、app ID が正しいか確認してください。
    • ビルドアカウントに、app ID に対する適切な権限があるか確認してください。
  • Steamcmd は、デポのコンテンツを見つけることができません。
    • app_build スクリプトの「contentroot」値がスクリプトファイルの場所に関係する有効なパスか確認してください。
    • depot_build スクリプトの「LocalPath」値が、app_build スクリプトのパスに関係する有効なパスか確認してください。パスが実際のコンテンツを含んでいるか確認してください。

アプリのビルドを実行すると、以下のエラーが表示されます: "ERROR! Failed to get application info for app NNNNN (check login and subscription)"

これは、ビルドが存在しないか、アプリへのアクセスがユーザーに付与されていないため、Steam がアプリ情報を取得できないことを意味します。
  • NNNNN がアプリ用に割り当てられたapp ID か確認してください。
  • app_build.vdf 内で、アプリ ID が正しいか確認してください。
  • 新しい app ID の場合は、Steamworks のアプリ管理の設定が公開済みかどうか確認してください。新しいアプリは設定タブ、デポタブのデポ、そして公開タブの公開されたすべての変更に Steam Pipe のインストールディレクトリがあるはずです。
  • 以上すべて問題なければ、アカウントが app ID を所有していることを確認してください。

起動時に "An error occurred while installing [AppName] (Invalid content configuration)" と表示される

考えられる原因:
  • インストールしようとしているブランチ上に、ライブ設定されたビルドがない。
    解決策: https://partner.steamgames.com/apps/builds/<YourGameAppId> にアクセスし、Steam クライアントのブランチを選択して、ビルドをライブ設定します (こちらの説明に従ってください)。
  • ゲームの起動オプションが無効。
    解決策: https://partner.steamgames.com/apps/config/<YourGameAppId> で、ゲーム用アプリ管理の設定タブで起動オプションを確認してください。
  • ゲームを構成しているデポ ID を所有していない。
    解決策: 必要なデポが開発サブスクリプションに追加されていることを確認してください (詳細については、パッケージの編集を参照してください)。

起動時に "Error code 15" が表示される

CEG サーバーは、CEG に出された exe リクエストを拒否しています。ゲーム ページ上でリリース ステータスを確認してください。それが「プレイ可能」ではない場合、Steamworks の技術者に連絡してリリースステータスを上書きする Steam キーをリクエストする必要があります。

起動時に "The Steam Servers are too busy to handle your request... Error Code (2)" と表示される

これは、CEG サーバーが対応する CEG exe を見つけられないことが原因です。アプリ管理の CEG タブ上で CEG の実行可能ファイルが作動しているか、再度確認してください。[ステータス] ボタンをクリックして、有効になっているか確認してください。

steamcmd コマンドが何か、またはどのように作動するか思い出せません。

steamcmdの「find」コマンドを使用して、steamcmd コマンドを検索してください。コマンド名を部分的にマッチングさせ、コマンドの構文リストを作成させます。
Steam>find build_installer ConVars: Commands: build_installer : <project file> <target folder> <beta key> <beta pwd>