Steamworks ドキュメンテーション
Steam DRM

概要

Steam DRM ラッパーは、ゲームの起動前に Steam を起動することでゲームの所有権と Steamworks 機能の正常動作を確認する、Steam プラットフォームにおける重要な部分です。

Steam DRM ラッパー自体は、著作権侵害対策用ソリューションではありません。 Steam DRM ラッパーは、非常に軽度の著作権侵害行為 (例: すべてのゲームファイルを別のコンピュータにコピーする) の防止や、多少の難読化はできますが、悪意のある攻撃者であれば容易に解読できます。

不正コピーでは動作しない Steamworks の機能(オンラインマルチプレイヤー、実績、ランキング、トレーディングカードなど) を使って、ゲームの正規コピーの価値を高めることを提案しています。

Steam DRM ラッパーと他の DRM の組み合わせや、不正改ざん防止ソリューションに関する詳細情報は 他の DRM と Steam ラッパーを使用する を参照してください。

自動 Steam DRM ラッパー

Steam ラッパーは SteamPipe アップロードスクリプト内から適用できます。 これにより、ログイン中のクライアント経由で Steam サーバーに初期化リクエストが実行され、続いてテキスト形式の実行ファイルが HTTP 経由で Steam バックエンドに送信されます。 ラップはサーバー側で実行され、次に steamcmd がラップされた実行ファイルをダウンロードします。

SteamPipe で DRM ラップを実行するには、スクリプトをログインし、続いて以下の drm_wrap Steam コマンドを実行します:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags]

パラメーター:
  • appid - アプリケーション ID
  • input filename - 入力ファイルとなるテキスト形式の実行ファイルへの相対または絶対パス。 パスにはスペースが含まれる場合もあるので、引用符で囲んでください!
  • output filename - ツールがラップ済み出力実行ファイルを書き込む場所の相対または絶対パス
  • toolname - 新しいポータブルツールには「drmtoolp」、 古いレガシー win32 ツールには「drmtool」を指定
  • flags - ツールの動作を指定する以下の数値フラグのビットマスク
  • 0 - 通常ラップ (保護最大)
  • 6 - 互換モード (Steam DRM を無効化する)
  • 32 - デバッガーチェックをスキップ
  • 38 - 互換モードでデバッガーチェックをスキップ (保護最小)

ログイン用の run_build.bat スクリプト、DRM の適用、ビルドの構築、および Steam へのアップロード (App ID が 480 の場合) の例:
builder\steamcmd.exe +login mysteamaccount mysteampassword +drm_wrap 480 "D:\src\steamworkssdk\steamworksexample\release\steamworksexample.exe" "D:\src\steamworkssdk\tools\ContentBuilder\content\windows_content\SteamworksExample.exe" drmtoolp 0 +run_app_build ..\scripts\app_build_480.vdf +quit

手動の Steam DRM ラッパー

Steam ラッパーで手間をかけずに実行ファイルをラップするには、Steamworks アプリデータ管理ページを利用して、プライマリのゲーム実行ファイルをラップしてください。

  1. アプリ管理ページで DRM に追加したいゲームを選択します
  2. アプリ管理ページのテクニカルツール内にある「Steamworks 設定を編集」を選択します
  3. セキュリティタブから DRM を選択します
  4. プライマリゲーム実行ファイルをアップロードします - ツールの実行オプションについては、自動ラッパーセクションをご覧ください
  5. 実行ファイルをローカルマシンにダウンロードし直します
  6. 実行ファイルの名前を元に戻します
  7. コンテンツツールのデポのソースの場所にその実行ファイルをコピーします
  8. デポの新しいバージョンを構築します
  9. ローカルコンテンツサーバー上でそのデポをテストします

他の DRM と Steam ラッパーを使用する

Steam ラッパーは他の DRM ソリューションと併用できます。 使用するには、他の DRM を適用する前に互換モードで Steam ラッパーを適用してください。 DRM ソリューションに干渉させないためにも、これを始めに実行してください。 互換モードはラッパーの DRM 能力を無効にします。

Steamworks ページにあるドロップダウンから選択するか、あるいは自動 drmtool から適切なフラグを使用することで、実行ファイルを互換モードで提出できます。

よくある質問

Q. Steam ラッパーを適用した後、C# / .Net ゲームが起動しなくなりました。
A. Steam ラッパーは .Net アプリケーションをサポートしていません。 DRM ラッパーの代わりに、SteamAPI_RestartAppIfNecessary を使用してください。

Q. Steam DRM ラッパーを適用した後、ゲームが動作しなくなりました。
A. Steam ラッパーは他の DRM ツールを壊すことがあります。 競合の問題の可能性があるので、他の DRM と Steam ラッパーを使用するをご覧ください。

Q. 新しいビルドを作るたびに実行ファイルに DRM を適用する必要がありますか?
A. はい、パブリッシュしたいと考えているそれぞれのビルドを Steam ラッパーでラップする必要があります。 上記の自動 Steam ラッパーを使用して、自動化してみてください。