Steam開発者向け、アップデートで新しいデポまみれにならない管理方法

すでにSteamで自分のゲームを販売して、Steam開発者の管理画面、ビルドデポについてある程度理解や操作方法がわかる人向けの内容です。

結論

  • アップデートしたゲームビルドを前回のデポに上書きアップロードする。

方法はいたってシンプルで、すでに前回のデータがあるデポのIDを指定して、新しくアップデートしたゲームをSteamPipeから普段の手順(SteamPipeGUIを使ってUpload)でアップロードするだけです。

すると前回のデポとの差分の部分だけを自動的に検出して新しく変わった部分だけをアップロードしてくれます。デポの管理の手間も少なくなり、データの転送時間も短くなるのでとても便利です。

 



 

前置き

上書きできると知らずに毎回新しいデポを作成していた。


※(Branchとあるのは最終的に顧客に届くゲームビルドの集合体である、デフォルトブランチのことです。)

Steamでゲームをアップデートする際には、デポと呼ばれるゲームを格納する場所を作ってそれらを販売するパッケージにリンクしてSteamクライアントからゲームが起動できるようにします。

デポに上書きができると知らずに、毎回新しいデポを作成して、パッケージにリンクさせては、デポマージしたビルドの集合体を量産していました。

ユーザーにはわからないですが、開発者側ではどんどん過去のゲームデータも含むことになり管理や見た目がよろしくありません。

またデポをパッケージから削除する際には並々ならぬ意志力と失敗すると最悪アプリが壊れる的なドキュメントを見せられるので、デポがどんどん増えていくのは管理も手間が掛かるし、気分的にもあまり気持ちがよい方法とは言えません。

 

SteamPipeが超優秀

SteamPipeのアップロードの仕組み

そこで試しに、すでにゲームビルド422番をアップロードしたデポ8番に、新しくアップデートしたビルド423番をもう一度同じデポ8にSteamPipeからアップロードしてみることを試してみました。

するとSteamPipeのアップロード処理がかなり優秀で、前回との差分だけを認識して新しくなった部分のゲームデータのみをアップロードしてくれるという超優れものでした。

 

既存のデポに上書きできる

ということは最低デポは2つあればよく、まずはリリースしたときのデポになった初版ビルドのデポ1。続いてアップデートをするために用意したデポ2。デポ2ではいきなり製品としてアップデートするのではなく、アップロード後に異常がないか確認するために一旦ベータモードで起動して、アップデートしたゲームが正常に動くかを確認します。

そして晴れてベータモードで問題なくゲームが動くことを確認したら、デポ1とデポ2をマージしたビルドをデフォルトブランチに設定して、購入者へアップデートをかけるといった方法を取るのが良いでしょう。

 



 

あれ?でもまたアプデしたらデポは増えるのか?

上書きできると話しましたが、デポ数を2個で運用するなら、次のアップデートの際には一度デポ2をデフォルトブランチから外して、デポ2に新しいビルドをアップロードしてベータ状態で確認する必要があります。つまり、ベータ状態でテストしている期間は一度ゲームをダウングレードした状態にする必要があるということです。

ある程度、基本的なゲームができていればダウングレードしてもらってからの、新たにアップデートするのでも問題ないですが、何万人とユーザーがいるゲームでは中々ダウングレードして待ってもらうというのは現実的ではないですね。

となるとやはりアップデートのたびにデポが増える、デポまみれ状態にならざるを得ないのでしょうか?うーん?

 

新しく置き換えていけばデポは最小2つで管理できる。

やや手順が複雑に見えますが、下の図解のように、デポの内容をどんどん新しく差し替えて行けば、2つのデポでベータテストをしながら常に顧客には最新のゲームビルドを提供できる管理方法ができそうです。


どうでしょうか?実際にこの方法で次回アップデートする機会があればやってみますが、もしかしたら実際にこの方法ではなにか問題が起こるかもしれません。記事を参考に実行する際はくれぐれも自己責任でお願いします。いかなる損害や損失を保証することはできません。

 

いかがだったでしょうか?Steamには公式のドキュメントはありますが、如何せん実際の細かい部分や裏技的な方法までは記載されていなく、勝手に解読して自分たちで管理してよ。と感じるのは自分だけでしょうか?

またこれ以外にも、もっとこんな方法や良い情報知ってるよという人はコメントなどで教えてもらえると助かります。

 

 

 

コメント

タイトルとURLをコピーしました