UDN
Search public documentation:

SteamJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Steam

ドキュメントの要約:UnrealEngine3 における Steam Integration の使用法および実装法。

ドキュメント変更ログ:作成者: John Scott

Steam Integration を UnrealEngine3 で使用・実装する方法

Steam クライアントを使用

最初のゲームを取得するには(コンテントサーバーのセットアップ後に)

  • 最新の Steam SDK を取得し、sdk/client/Steam.exe and sdk/client/Steam.cfg をローカルフォールダにコピーします。
    • ライセンスを持っている方は、//depot/UnrealEngine3/Development/External/Steamworks/sdk/client/... からコピーできます。
    • UDKのユーザーは、https://partner.steamgames.com/home で登録、ダウンロードできます。
  • 「steam.cfg」を書き込み可能に設定してから、「SdkContentServerAdrs」の IP をローカルコンテントサーバ実行場所の IP に設定します。
  • 「Steam.exe」を実行します。
  • [My games] (マイゲーム)タブで (当社の場合は「Unreal Development Kit」) を右クリックし、インストールを開始します。
  • インストールが完了したら、右クリックしてゲームを起動します ([Launch game] (ゲームを起動) を選択)。

更新を取得するには (コンテントサーバーのセットアップ後に)

  • アップデートは、Steam クライアントが実行されていれば、自動的に取得されます。
    • ポーリング間隔をスキップするには、Steam クライアントを再起動します。

注意

  • アップデートを取得しても、ローカルコンテントサーバに最新かつ完全な (反復していない) ビルドがあると、クライアントが混乱する原因となります。これを修正するには、ローカルフォルダから「Steam.exe」と「Steam.cfg」以外のファイルをすべて削除してから、やり直してください。
    • この現象は、初期開発中によく発生します。

コンテントツールの使用

GUI を使用する方法と、Steam スクリプトを使用する方法の 2 種類があります。

GUI を使用してソリューション/プロジェクトファイルと共に初期ビルドを作成

  • 発行したいビルドをローカルにコピーします (「C:\Builds\UnrealEngine3」など)。
  • 「//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/ContentTool.exe」を実行します。
  • [New Solution] (新規ソリューション) ボタンをクリックします。
  • [Next] (進む) をクリックします。
  • ソリューションセクションで [Solution Name] (ソリューション名) (UTGame) を入力し、場所を「C:\SteamGame」に設定します。
  • [Next] (進む)をクリックします。
  • アプリケーションセクションで[Application Name] (アプリケーション名) (GUI には Unreal Development Kit と表示されます) を入力し、[File Delivery] (ファイルデリバリ) を「Loose Files」に、[Application ID] (アプリケーション ID)を「13260」に設定します。
  • [Next] (進む) をクリックします。
  • デポセクションで[Name] (名前)を「UTGame」に、[Type] (種類) を「Content」に、[Project Location] (プロジェクトの場所) を「C:\SteamGame」に、[Depot Location] (デポの場所) を「C:\SteamGame\Depot」に、[Depot ID] (デポID) を「13261」に設定します。
  • [Next] (進む) をクリックします。
  • の右側のリストボックスエントリをクリックして、「C:\Builds\UnrealEngine3」と入力します。
  • [Finish] (終了) をクリックします。プロジェクトに追加できるファイルがリストされるので、[OK] をクリックしてデポと同期します。
  • GUI の左上付近にある [Solution Properties] (ソリューションプロパティ) ボタンをクリックします。([Solution Explorer] (ソリューションエクスプローラ) のテキストの真下にあります。)
  • ツリービューを展開して、[Launch Options] (起動オプション) -> [Label] (ラベル) = [Default] (デフォルト) -> [Command line] (コマンドライン) = 「Unreal Development Kit」と設定します。
  • 右クリックして、コマンドラインを「Binaries\Win32\UDKGame.exe」に変更します。
  • このウィンドウを閉じます。プロンプトが表示されたら保存します。
  • [Build] (ビルド) ツールバーボタンをクリックします (しばらく時間がかかる場合があります)。
  • これで、「C:\SteamGame\Depot」に「13261_0.dat」、「13261_0.blob」、「UTGame.depot」 (すなわち「appid_version.dat」と「appid_version.blob」) が含まれます。
  • [Publish] (公開) メニューにおいて、[Publish to Local Testing Server] (ローカルテストサーバに公開) を選択します。これにより、「13261_0.dat」、「13261_0.blob」、「ContentDescriptionDB.xml」がローカルサーバにコピーされます。
  • コンテンツサーバを実行します。

Steam スクリプトを使用して新規バージョンを作成

  • DOS ボックスを表示させます。
  • Run '//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/ContentTool.com' /verbose /console /filename '//depot/UnrealEngine3/UDKGame/Build/Steam/SteamMakeVersion.smd'
  • 新規ファイルを「C:\SteamGame\Depot」から「C:\Steam\DepotRoot」にコピーします。
  • 「C:\SteamGame\ContentDescriptionDB.xml」を「C:\Steam\DepotRoot」にコピーします。
  • サーバがアップデートを検出できるよう、いったん停止してから再開します。

メモ

  • アップデートプロセスはビルドシステム内で自動的に実行されます。詳しくは、『//depot/UnrealEngine3/Development/Builder/Scripts/Build/SteamVersion.build』を参照してください。
  • 「.sts」および「.spj」ファイルは、たとえ無難と思われる変更でも問題が発生することがあるため、編集には細心の注意を払ってください。また、関連パスも絶対に変更しないでください。これも問題の原因となります。

Steam コンテンツサーバの実行

コンテンツサーバは以下の 2 種類の方法、つまりコマンドプロンプトから、あるいはサービスとして実行します。

コマンドプロンプトから実行

  • DOSボックスを表示させます。
  • 「//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/contentserver/contentserver.exe」/verbose /DepotPath「C:\SteamGame\LocalTestServer」を実行します。
  • デバッグの結果が大量に表示されますが、最後の「13261_0」の表示にのみ注意を払ってください。
  • これで、Steam クライアントがこのビルドに接続・ダウンロードできます。

サービスとして実行

  • C:\SteamGame\LocalTestServer を C:\Steam\DepotRoot に移動させます。(ただし、ContentServerCfg.txt を使用してサービスのためのデポのパスを設定していない場合です。下記を参照してください)。
  • DOS ボックスを表示させます。
  • 「//depot/UnrealEngine3/Development/External/Steamworks/sdk/tools/contentserver/contentserver.exe」/installを実行します(これにより、サービスが自動的に開始します)。
  • これで、Steamクライアントがこのビルドに接続・ダウンロードできます。

メモ

  • コンテンツサーバは概してスムーズに機能し、一般的なネットワークでよく見られる問題もシームレスに処理できます。
  • しかし、注目すべき例外が2点あります。
    • コンテンツサーバは新規バージョンを検出*しません*。新規バージョンを登録するには、サービスを再起動する必要があります。
    • サービスとして実行している間は、デポの場所をコマンドラインから設定できません。サービスとして実行している場合は、ContentServer.exe と同じディレクトリ内にある ContentServerCfg.txt というファイルからしか設定できません。そうでない場合は、\Steam\DepotRoot のデフォルト値が使用されます。(パスは、ボリュームのルートからの相対パスです)。このファイルのシンタックスは、「Unreal Engine 3」の .ini ファイルのシンタックスと似ています。そのため、デポの位置をたとえば \Steam\DepotRoot から \LocalContentServer に変更する場合は、ContentServerCfg.txt の中に次の 2 行が含まれる必要があります。

ゲームにおける Steam の使用

ゲームの起動中に Steam クライアントが実行されていれば、あらゆる Steam 機能にアクセスできます。Steam クライアントが実行されていないと、ネットワークレイヤは内部で (根本的に OnlineSubsystemPC の機能が存在する) 一般的なオンラインサブシステムへと後退します。

認証システムはいたって簡単なものです。ゲームを「所有」していないと、サーバ上でプレイすることはできません。ネットワーク接続性を検証するための、ご自身のアプリケーション ID については、Valve までお問い合わせください。「Unreal Development Kit」アプリケーション ID を現在所有しているのは、Epic の従業員に限られています。