またろうのSteamworksブログ

Steamworks(Steam Direct)についての開発ネタを纏めています。

Steamへゲームアプリをアップロードする方法



今回は完成したゲームアプリをSteamへアップロードする手順を書きます。
アップロードする前に、デポが作成されていることを確認してください。

tsukinowa.hatenablog.jp

先ずはSteamworksからSteamworks SDKをダウンロードします。
ホームの画面右下に「最新版SDKをダウンロード」というボタンがある筈です。
f:id:tsukinowaapp:20180731112352p:plain

ダウンロードしたら任意の場所に解凍してください。

Windowsの場合

Windowsの場合、やり方は2通りあります。
・steamcmd.exeをbatファイルから起動するか、コマンドプロンプトから叩く
・SteamPipeGUI.exeを使う

後者であればvdfファイルを編集するという手間がないので楽です。
(後者のやり方で説明します)
解凍したフォルダ内の
sdk」→「tools」内にSteamPipeGUI.zipがある筈です。
それを任意の場所に解凍してください。

解凍したフォルダ内にあるSteamPipeGUI.exeを実行。
f:id:tsukinowaapp:20180731154132p:plain

各項目を入力してください。
App ID:アプリID
Build Description:自分が管理しやすいと思う名称を入力
Depot ID:デポID
Buid Path:アップロードしたいゲームアプリのある場所(Browseでパスを指定できます)
sdk\tools\ContentBuilderフォルダにcontentという空フォルダがあるので、そこにゲームアプリ一式入れておくのが楽です)
Steamworks SDK ContentBuilder Path:sdk\tools\ContentBuilderフォルダの場所(Browseでパスを指定できます)
Steam login:Steamworks管理者のアカウント名
Steam Password:Steamworks管理者のパスワード

アップロードしたいデポが複数ある場合は「Add Depot」で追加できます。

後は「Upload」ボタン押下で自動的にアップロードしてくれます。
但し、新しい開発環境でのアップロードなど「 Steam Guard code」の入力を求められる場合があります。
Uploadを試みると、
Steamworks管理者に紐づいたメールアドレス宛にSteam Guard codeのメールが送られてくる筈なので
開いているプロンプトに対してコードを入力します。

Macの場合

mac版はSteamworks SDKの中にあるシェルを叩いてアップロードします。
シェルを叩く前にvdfファイルを編集する必要があります。

app_build_(アプリID).vdf

"appbuild"
{
	"appid"	"(アプリID)"
	"desc" "Your build description here" // description for this build
	"buildoutput" "./output/" // build output folder for .log, .csm & .csd files, relative to location of this file
	"contentroot" "" // root content folder, relative to location of this file
	"setlive"	"" // branch to set live after successful build, non if empty
	"preview" "0" // to enable preview builds
	"local"	""	// set to flie path of local content server 
	
	"depots"
	{
		"(デポID)" "depot_build_(デポID).vdf"
	}
}

(アプリID)と(デポID)をそれぞれ書き換えてください。

depot_build_(デポID).vdf

"DepotBuildConfig"
{
	// Set your assigned depot ID here
	"DepotID" "(デポID)"

	// 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"	"../content/"

	// include all files recursivley
  "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"
  }

	// but exclude all symbol files  
	// This can be a full path, or a path relative to ContentRoot
  "FileExclusion" "*.pdb"
}

(デポID)を書き換えてください。
ContentRootはアップロードするアプリのある場所を指定してください。

ホーム(/Users/(ユーザー名/)の以下のパスで作業するとします。
(異なるパスで作業する場合は読み替えてください)
f:id:tsukinowaapp:20180731221404p:plain

ターミナルを起ち上げて以下のコマンドを入力。

cd  ./ContentBuilder/builder_osx/osx32
chmod +x steamcmd
cd ../
bash ./steamcmd.sh
login (Steamworks管理者アカウント) (パスワード)
run_app_build_http ../scripts/app_build_(アプリID).vdf

(Steamworks管理者アカウント)と(パスワード)と(アプリID)はそれぞれ書き換えてください。
初めてのアップロード時はSteam Guard codeの入力を求められる場合があるのも同様です。

デポの確認

ファイルがアップロードされたか確認するにはビルドの状態を見ます。
「テクニカルツール」の「Steamworks 設定を編集」を押下
「SteamPipe」タブの「ビルド」を押下
f:id:tsukinowaapp:20180731234552p:plain

アップロードされていれば、
「最近50のビルドを表示中」と「アプリビルド履歴」にリストが出来ています。
「含まれるデポ」のリンクをクリックすると、アップロードされたファイルの一覧を見ることができます。

ブランチの切替

アップロードしたデポをライブ(活性化)にするにはブランチを切り替える必要があります。
最新のデポの「アプリブランチを選択」タブからdefaultを選択して「変更をプレビュー」を押下
切替確認画面が表示されるので、
Optional comment:にコメントを入力して「Set Build Live Now」を押下でブランチが切り替わります。
(カレントのdefaultの位置が切り替わっていることを確認します)

後は「公開」タブから
「公開の準備」→「Steamに公開」→「本当に公開する」で
Steamクライアントからアプリをダウンロード→起動できるようになります。
(本リリース前であればSteamworks管理者か、アプリのメタデータの編集権限が付与されているアカウント限定ですが)
※パッケージ詳細の設定は済ませておいてください
tsukinowa.hatenablog.jp

注意

Windows版であればWindows環境から、mac版であればmac環境からアップロードしてください。
面倒くさがってmac版をwindows環境からアップロードすると、
Steamクライアントからダウンロード→起動を試みても動かないとかあります。
(Steamクライアントからの起動テストは必ずやりましょう)