Steamworks ドキュメンテーション
ダウンロードコンテンツ (DLC)

概要

Steamは、CDキーでの登録またはSteamストアからの入手が可能な無料または有料のダウンロードコンテンツ (DLC) をサポートしています。 Steamクライアントでは、DLCのあるゲームは、ユーザーのライブラリ内では単一のアプリケーションとして表示され、DLCはゲームのプロパティダイアログを通して表示されます。

DLCは、アカウントに追加された時点でゲームの一部として統合されます。 パッチがリリースされると Steamは自動的にコンテンツを更新し、ユーザーがゲームをインストールすると、コンテンツも自動でインストールされます。

ベストプラクティス

DLCは、製品にもっと投資をしたいと考える顧客に向けて価値を提供する優れた方法ですが、判断の難しい非金銭的負担が顧客にかかる場合があります。 ゲームリリースの初日にDLCをリリースすると、追加でお金を取るために完全版から一部を切り取ってリリースしたと思われる可能性もありますので、良い考えとは言えません。

ビデオチュートリアル

こちらのSteamworksチュートリアルでSteam製品のDLC作成および設定方法を説明しています。
https://www.youtube.com/watch?v=Su4uuUjnm9M

設定

Steamでは、各DLCは特有のappIDで識別されます。 ベースゲームとは異なり、DLCはapp IDをdepot IDとして使用します。

ダウンロードされると、SteamクライアントはすべてのDLCをゲームのSteamディレクトリに保存します。 ゲームコンテンツの配信には 2 つの方法があります:
  • コンテンツをゲームファイルに含み、ゲーム所有者全員に配布する方法。 この場合ゲームは ISteamApps::BIsDlcInstalled を使用して、ユーザーによるコンテンツの所有を判断できます。 この方法は、すべてのプレイヤーがコンテンツを閲覧できるという点で有効です。プレイヤーが使用するにはコンテンツを所有する必要があります (RTS ユニット、マルチプレイヤースキンなど)。
  • コンテンツを所有しているユーザーだけがダウンロードできる新しいデポに含む方法。

詳細は デポ を参照してください。

ゲーム内購入

Steamworksゲームは、プレイヤーがゲームから退出することなくゲーム内で DLC を閲覧、購入、ダウンロードできるようサポートしています。 Steamはすべての利用可能なコンテンツをユーザーに表示し、ユーザーはゲーム内で開いたSteamオーバーレイ内のWebブラウザセッションですべての購入プロセスを完了できます。 ユーザーがDLCを購入すると、Steamクライアントは自動でコンテンツをダウンロードします。ダウンロードが完了するとゲーム内のSteam通知経由でユーザーに通知し、ゲームに対しては新規コンテンツの所有を通知します。

Steamworksゲームは ISteamFriends::ActivateGameOverlayToStoreを使用して、SteamオーバレイにDLCを表示できます。 ISteamFriends::ActivateGameOverlayToStoreでゲームのすべてのDLCを表示でき (ゲームのapp IDを渡す)、または特定のDLCに関する情報を表示できます (DLCのapp IDを渡す )。 ユーザーをストアに送る前に、Steamworksゲームは ISteamUtils::IsOverlayEnabledを呼び出し、そのユーザーがSteamクライアント設定を通してSteamオーバーレイを無効化したかを判断します。

注: 実行中のゲームのバージョンと DLC の非互換性を避けるため、Steam はユーザーが最新バージョンのゲームを実行している時のみ新しいコンテンツをダウンロードします。

追加DLCデポの設定

デポドキュメントに従うと、ベースアプリに一つのDLCデポが追加されるはずです。別の言語やOS、アーキテクチャをサポートするためのDLCデポを追加する必要がある場合、次のステップを実行してください:
  1. ベースアプリのSteamworks アプリ管理を開きます (すべてのデポはDLCではなくベースアプリで管理されています)。
  2. Steamworks設定を編集 > SteamPipeタブ > デポを選択します。
  3. [新しいデポを追加] ボタンをクリックし、名前をつけ、OKをクリックします。 既存のDLCデポに似た、識別しやすい名前をつけてください。
  4. 言語、OS、アーキテクチャを設定します。
  5. ドロップダウンボックスからこのデポに関連付ける正しいDLCを選択します。
  6. [変更を保存] をクリックします。 変更を公開するまでSteamクライアントは新しいデポを認識しません。
  7. デポを含む必要のあるすべてのパッケージ(開発者コンプパッケージなど)にデポを追加します。
  8. ビルドマシン上で、新しいDLCデポ用の新しいデポビルドスクリプトを追加します。
  9. ベースゲームアプリのビルドスクリプトに、新しいデポのビルドスクリプト追加します。
  10. ビルドをライブに設定するなど、新しいデポファイルをアップロードするための残りのタスクを完了します。

注: すべてのDLCデポは、ベースアプリのデポリスト内に存在します。 DLCアプリディレクトリ内にデポを存在させることはできません。

プログラムによるDLCのダウンロードとインストール

DLCは通常、Steamユーザーが購入するとすぐにダウンロードおよびインストールされます。 しかし、DLCを自動でダウンロードさせずに、ゲームがDLC をダウンロードするタイミングを制御するように設定できます。 これは、ストリーミングインストールやゲームロジックに基づいたダウンロードをサポートするのに役立ちます。

オンデマンドでDLCをダウンロードおよびインストールさせる設定は、次の手順に従ってください。

  1. 最大10個のDLCをダウンロード可能なチャンクとして作成できます。
    • From the app package landing page, click "All Associated Packages, DLC, Demos And Tools", and use the "Add New DLC" button to add the DLCs.
  2. Steamクライアントが自動でダウンロードしないように各DLCを設定します。
    • それぞれのDLCでSteamworks 設定 > 一般タブを開きます。
    • [SteamがこのDLCを自動でダウンロードしないようにする] というボックスにチェックが入っていることを確認します。
  3. 適切なパッケージ (Steamストア、リテール、ベータテスト、Developer Comp等)に DLCを追加し、ベースアプリが購入された時にアクセスできるようにします。
    • From the app landing page, click "All Associated Packages, DLC, Demos And Tools.".
    • DLCを追加したいパッケージをクリックします。
    • [+アプリケーションを追加] をクリックし、関連DLCを見つけ、チェックマークがついていることを確認後、[続行] をクリックして、保存します。
  4. Steampipeビルドプロセスの一環として、各DLC用の適切なファイルを、関連する DLCデポに追加します。
    • 詳細は デポを参照してください。
  5. コード内の適切な場所に次のAPIを実装して、DLCをダウンロード・インストールするようにします。

その他の注意事項
  • SteamクライアントUIの[プロパティ] > [DLC]タブから、ユーザー自身がDLCのダウンロードを開始することもできます。
  • 必要に応じてISteamApps::UninstallDLCを使用して、DLCコンテンツを削除できます。

テストの実施

DLCのテストを開始する前に、Steamクライアントのゲームリストからゲームを選択し、[プロパティ]からDLCタブを選択し、DLCを所有していることを確認してください。 そこに表示されないDLCは所有していません。

DLCの所有プロセスはSteamクライアントを通してシミュレーションできます。 新たなコンテンツがSteamに追加されると、パブリッシャーグループにコンテンツへのアクセスを付与するパッケージが与えられます。 通常、このパッケージの名前には[Developer Comp]が含まれています。

一時的に「Developer Comp」パッケージを無効化して、DLCの購入をシミュレーションすることできます。 それには、以下のステップに従ってください:
  • steam.exeを次のコマンドと共に実行します -console (または steam://nav/consoleを実行)
  • クライアント内のコンソールタブを開きます
  • コマンドを入力します:licenses_for_app <appID>。 これによって、どのPackageIDを通してDLC appIDを所有しているかがわかります。
  • 上記のpackageIDを使って、コマンドを入力します disable_license <packageID>。

この時点で、あなたのアカウントは自動でDLCを所有していない状態となります。 ゲームを実行し、DLCの所有権APIの応答をテストできます。 Steamコンソールに戻ってenable_license <packageID>を使うと、DLCの所有を再度有効化できます。 あるいは、Steamを再起動すると自動で所有権が元に戻ります。

不正行為・詐欺に備える

何らかの購入可能な価値を提供する際には、必ず詐欺のリスクが伴います。

DLC詐欺では、ユーザーが盗んだ支払い方法 (クレジットカード等) で価値の高いDLC を購入します。 詐欺師の目的はDLCの内の利用可能なすべてのコンテンツを、本人が所有する別のアカウントや、システム外の支払い方法で購入を希望するプレイヤーのアカウントに移行することです。 他にも、詐欺師はシステム外で支払いを受け取るかたちで、アカウント全体を販売しようとします。

このため、トレード可能なアイテムやゲーム内通貨をDLCに含むことは推奨されません。 アイテムやゲーム内通貨の販売は、マイクロトランザクションおよびドキュメント内のアドバイスを参考にしてください。

Steamは最初の購入から48時間以内にほとんどの詐欺取引を見つけます。 起動時や48時間後のDLC所有者確認が、アップデートされたステータスに基づいて、取引に対する変更を調整します。