またろうのSteamworksブログ

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

SteamストアページのPVが驚異的だという話

SteamでPVはどのぐらい出るのか

SteamworksのストアページにはGoogle Analyticsが仕込めるのですが
アプリを公開してからの数字を晒してみます。

f:id:tsukinowaapp:20180810091141p:plain

7月20日に近日公開としてストアページを上げました。
公開直後に150PVを出したあと、ずるずると下がっていきますが
8月2日19時に本公開すると1日400PVを超えました。
その後は落ち着いて1日250~200PV程度になってます。
(8/14時点でも大体同じ数字で推移しています)

広告も一切打たないで、自前のtwitterアカウントで何度かツイートした程度でこの数字です。
Steamがどれだけ注目されているか理解してもらえると思います。

恐らくスマホアプリなどでゲームを公開したことがある人なら
驚異的な数字だと分かる筈です。
GooolePlayやら、(Apple)AppStoreではこんな数字出ないです。
全く同じものを作ったとしても、個人さんのアプリだと1日どころか1週間10PV行かないです。
(最も作った人のネームバリューにもよると思いますが)

何故かというと、スマホ系ポータルには新着を優先的に取り上げる機能がないのと、
人気のあるゲームを優先的に表示する結果、人気のないゲームが表示されなくなる事象が起こるからです。
だから企業さんは初動で大量の広告を打つのですが
個人さんは投資金額が限られていますし、幾ら売れるか分からないゲームに広告打てる訳も無いので
必然的に埋もれていきます。
「どうぶつタワーバトル」みたいに何かのはずみでバズって売れるケースもあるのですが
そういうのは年に1本出るか出ないかでしょう。

Steamはどうでしょうか?
ストアを近日公開にした時点で、
特に頼んでいないのに各国にあるレビューサイトにスレッドが立ちます。
(恐らく機械的に収集して立てていると思われます)
ゲームの名前を特徴的にして、ググってみると良くわかります。

さらにリリースした時点で、新着ゲームをツイートしてくれる人がいます。
また前述の通り、新着ゲームとしてトップページの近いところから一定期間リンクしてもらえるのでPVが跳ね上がります。
後はストアページでいかに面白そうかアピールできるかですが...

副産物として
「うちのサイトで掲載してやるからお金頂戴」とか「うちのストリームで放送するからゲームタダにして」的なメールも来るようになりますがはてさて...

Steamworks APIを導入する(Steam実績を実装する:HTML5編)

今回はHTML5にてSteamworks APIを導入する手順を書きます。
HTML5を実行ファイル化する場合、NW.jsかElectronを使うことになりますが
HTML5ベースのオーサリングツール(ツクールMVなど)も自力でJavaScriptの編集ができるなら対応可能かと思います。

f:id:tsukinowaapp:20180808225254p:plain

HTML5の場合はgreenworksを使います。

github.com

組み込み手順

上記リンクより最新のzip(NW.js用とElectron用がOSとCPU種別ごとにあります)と
後で使うことになるのでSource code (zip)をダウンロードしておきます。

また、Steamworks SDKも用意しておいてください。

用意で来たら以下のパスで設置します。

Windowsの場合

|-- greenworks.js
|-- index.html
|-- lib
|   |-- greenworks-win32.node
|   |-- sdkencryptedappticket.dll
|   `-- steam_api.dll
|-- package.json
`-- steam_appid.txt

win32とwin64がありますが、win32が無難(より多くの人が遊べる)でしょう。

Macの場合

|-- greenworks.js
|-- index.html
|-- lib
|   |-- greenworks-osx64.node
|   |-- libsdkencryptedappticket.dylib
|   `-- libsteam_api.dylib
|-- package.json
`- steam_appid.txt

libというフォルダを作って、その中にnodeファイルとdll(dylib)ファイルを入れます。
dll(dylib)ファイルはそれぞれ以下の場所にあります。
sdk/redistributable_bin/
sdk/public/steam/lib/

index.htmlのあるフォルダにsteam_appid.txtを入れます。
これはUnity編同様、AppIDのみを記述しておきます。

var greenworks = require('./greenworks.js');
greenworks.init();

後はゲーム内のjsファイルにて、上記のコードを記述して初期化します。

これで動いてくれたら何の苦労もないのですが...

実際にはgreenworks.init();でエラーになると思います。
(もしエラーが出なかったら「greenworksの再コンパイル」は読み飛ばしてください)

greenworksの再コンパイル

どうも配布されているgreenworksのnodeファイルの作りが宜しくないらしく、そのままでは使えません。
なのでSource codeを使ってnodeファイルを新しく生成します。

前準備

以下の環境が必要です。

Windowsの場合

python 2.7.x(3.x系は使えません)インストールしたらPathを通しておくこと
Visual Studio 2015以降(UnityをインストールしてあるならVisual Studio 2017も一緒に入ってる筈)
node.js(最新版)

Macの場合

python 2.7.x(3.x系は使えません)インストールしたらPathを通しておくこと
Xcodeコマンドラインツールがインストールされていること)
node.js(最新版)

greenworksソースコードとSteamworks APIの統合

greenworksソースコードの中に、Steamworks APIのソースをマージする必要があります。

greenworks/srcフォルダの中にsdk/public/steamフォルダをコピー
greenworks/depsフォルダの中にsteamworks_sdkフォルダを作成
greenworks/deps/steamworks_sdkフォルダの中にsdk/redistributable_binフォルダとsdk/publicフォルダをコピー
sdk/publicフォルダで必要なのはsdk/public/steam/libフォルダなので、sdk/public/steam直下にあるhファイル等は無くてもOK)

階層的にはこうなります。

deps
|--cpplint
|--misc
|--zlib
|--steamworks_sdk
|   |--redistributable_bin
|   `--public
|         `--steam
|               `--lib
src
|-- api
|-- steam
|   |-- lib
|   |-- steam_api.h
|   |-- etc....h

ビルドコマンド

以下をコマンドプロンプト(ターミナル)から実行します。

npm install -g nw-gyp
cd (greenworks直下のパス)
nw-gyp configure --target=0.31.5(NW.jsのバージョン) --arch=(x64 または ia32)
npm install nan
nw-gyp build --target=v10.6.0(Node.jsのバージョン)

npm installは実施済みなら省略できます。
Macの場合はnpm installのところでsudo npm installとしないとエラーになる場合があります。
また、モジュール(hファイル、dllファイルなど)が足りない的なエラーが出ることもあるので
ファイルパスを見て適宜追加してください。

これでgreenworks/libフォルダの中にnodeファイルが生成されている筈です。

コーディング

初期化

var greenworks = require('./greenworks.js');
if (!greenworks) {
    log('Not support platform');
} else {
    if (!greenworks.init()) {
        log('Error on initializing steam API.');
    }
}

処理を行うjsファイルの冒頭に記述します。
greenworks.init();の処理にて正常ならtrue、エラーならfalseが返ってきますので
拾ってエラー処理を書いた方がいいでしょう。

ユーザー名の取得

var cSteamId = greenworks.getSteamId();
var userName = cSteamId.screenName;

Statの呼び出し

greenworks.storeStats(function () {
    wCount = greenworks.getStatInt("win");
}, function () {
    log("Error on connect steam.");
});

greenworks.storeStatsを呼んでからでないと取得できないようです。
第一引数で正常だった場合の処理をfunctionで記述し
第二引数でエラーだった場合の処理を書きます。

greenworks.getStatIntでInt型
greenworks.getStatFloatでFloat型が取得できます。

Statの書き込み

greenworks.setStat("win", wCount);

第一引数でAPI
第二引数で書き込む値を設定します。

実績の獲得

if (5 <= wCount) {
    greenworks.getAchievement("win_5", function (isAchieved) {
        if (!isAchieved) {
            greenworks.activateAchievement("win_5", function () { });
        }
    });
}

greenworks.getAchievementで達成フラグの状態を確認して
greenworks.activateAchievementにて更新しています。
第一引数で実績のAPI
第二引数のfunctionで後続処理を書きます。

参考文献

ここにFAQとビルド手順とAPI リファレンスがあります。

github.com

Steamworks APIを導入する(Steam実績を実装する:Unity編)

今回はUnityにSteamworks APIを導入する手順を書きます。

f:id:tsukinowaapp:20180807173441p:plain

事前作業

開発環境にもSteamクライアントをインストールして
Steamworks管理者アカウントか、「アプリのメタデータの編集」権限の付与されたアカウントを設定しておいてください。
(これをやってないとAPIの呼び出しができません)

Steamworks.NETのセットアップ

Unityの場合はSteamworks.NETを使います。
Steamworks.NETはアセットストアにもあったりしますが、
下記からunitypackageをダウンロードして
「Assets」→「Import Package」→「Custom Package」で導入した方が面倒がないです。

github.com

インポートしたらプロジェクトフォルダ直下にsteam_appid.txtを設置します。
ファイルの中にはAppID(数字)のみを記述します。

SteamManagerの導入

実はこれだけでは足りなくて、Steamworks.NET-ExampleからSteamManager.csを持ってくる必要があります。
(SteamStatsAndAchievements.csもあると便利です)

github.com

これをzipで入手・解凍したら上記csソースをプロジェクト内の分かりやすい場所に置きます。

コーディング

プレイヤー名の取得

if (SteamManager.Initialized)
{
    playerName = SteamFriends.GetPersonaName();
    //Debug.Log(playerName);
}

APIを叩く前にSteamManager.Initializedを呼び出して初期化します。
正しく初期化されたらtrueが返りますので、それを拾って後続処理を行うよう記述します。
以下のソースも同様です。

Statsの呼び出し

SteamUserStats.GetStat("xp", out m_xp);

第一引数はStatsのAPI名です。
(Web側で設定した名称です)
第二引数にoutで値を設定します。

Statsの書き込み

SteamUserStats.SetStat("xp", m_xp);
bool bSuccess = SteamUserStats.StoreStats();

第一引数はStatsのAPI名です。
第二引数で書き込みたい値を設定します。
SteamUserStats.StoreStats();で実際に値を書き込む処理を行い、
成功したらtrueが返ってきます。

実績の獲得

if (m_nTotalNumWins >= 100) {
    SteamUserStats.SetAchievement("Winner");
}

実績の獲得条件が成立したら、SetAchievementを呼び出します。
引数に実績のAPI名を記述します。

SteamStatsAndAchievementsについて

SteamStatsAndAchievementsでは各処理を一纏めにして置いてあり、大変参考になります。
実績もenumを使って配列化されています。
これを改造して、インスタンス化して使うのが楽かと思います。

Steam実績を実装する(Steamworks側設定編)

今回はSteam実績(Steam Achievement)の実装について書きます。
Steamでゲームやったことがある人ならSteam実績とは何かご存知かと思います。

Steam実績とは一定の条件を満たすと付与される称号みたいなもので
プレイヤーの射幸心を煽るに便利なものです。
(Steam実績のコレクターもいるとか)

SteamAPIについては実装しなくても公開できるようになっていますが、
折角Steamで公開するのですから、Steam実績くらいは実装しておいても良いかと思います。

手始めにWeb側の設定について説明します。
※クライアント側はプラットフォーム(UnityかHTML5か)で変わってきますので別記事にします)

Webの設定

まずSteam実績を設定する前にStats(データ)を設定します。
これはゲームのスコア(キル数やレートなど)をSteamの持つ領域(クラウド的なもの)に保存できる機能で
Steamのアカウントに紐づいて保存されるため、
ログインする端末が変わっても値を引き継ぐことができます。

Stats(データ)の作成

「テクニカルツール」→「Steamworks 設定を編集」→「データ&実績」タブの「データ」を押下
f:id:tsukinowaapp:20180802145407p:plain
「新しい統計」(New Stat)を押下で値を追加します。

タイプ(Type)

型を指定します。
INT - 32ビットの符号付き整数
FLOAT - 32ビットの浮動小数点値
AVGRATE - 移動平均(一定時間内のスコアを算出するときに使用)

API 名(API Name)

データを呼び出すときの名称を設定。

設定(Set by)

データを修正できる人を設定
クライアント:アプリから更新する場合(基本はこれを選択します)
GS(ゲームサーバー):サーバーを立てて、そこから更新する場合
公式GS:Steamゲームサーバーを利用する場合

増分のみ?(Increment Only)

キル数など、加算のみで減算しない値についてはチェックをONに

最大変化(Max Change)(任意)

ゲームの仕様上あり得る上昇幅の最大値を設定(チート対策)

最小値(Min Value)(任意)

ゲームの仕様上あり得る最小値を設定(チート対策)

最大値(Max Value)(任意)

ゲームの仕様上あり得る最大値を設定(チート対策)

デフォルト値(Default Value)

最初に呼び出したときに設定する値

集計

リーダーボードの集計値として使うならチェックをONに

ディスプレイ名

Steamコミュニティで表示するときの名称を設定

入力したら「Save」で保存します。

Stats(データ)の注意

保存したら「公開」しないとアプリからの呼び出しが出来ません。

実績の作成

次は実績の設定をします。

実績には「達成」と「未達成」の2種類のアイコンが必要で
サイズは 64x64 px のJPGとなっています。
またデザインとして「獲得済みのアイコンには色を使用し、獲得済みでないアイコンには白黒を推奨」となっています。

f:id:tsukinowaapp:20180803105148p:plain
f:id:tsukinowaapp:20180803105158p:plain

API名(API Name)

データを呼び出すときの名称を設定。

進行状況(Progress Stat)

コミュニティでプログレスバーとして表示するデータを指定します。
進行状況:作成したStatsを指定。
最小値:下限(進捗0%とする値)
最大値:上限(進捗100%とする値)

ディスプレイ名(Display Name)

クライアントの通知ポップアップやコミュニティで表示される実績の名前を設定。

説明(Description)

コミュニティで表示される実績の説明。

設定(Set by)

データを修正できる人を設定
クライアント:アプリから更新する場合(基本はこれを選択します)
GS(ゲームサーバー):サーバーを立てて、そこから更新する場合
公式GS:Steamゲームサーバーを利用する場合

非表示?(Hidden)

ここにチェックを入れると、いわゆる「隠し実績」となります。
(条件を満たすまでユーザーのコミュニティに表示されません)

達成アイコン・未達成アイコン(Achieved Icon/Unachieved Icon)

それぞれ画像をアップロードします。

各項目を入力したら「保存」を押下。

実績の注意

一旦保存してからでないと画像のアップロードが行えません。
また保存したら「公開」しないとアプリからの呼び出しが出来ないのも同様です。

「ulxrd」今日から販売です。

ゲーム「ulxrd」無事リリースできました。
良かったらどうぞ、205円($1.99)です。

store.steampowered.com

リリース時間が2018年8月2日 PM4:00 PDTとあったので
明日朝8時かなと思っていたのですが
今(19時)にたまたまアプリ管理を見たら公開できる状態になってました。

f:id:tsukinowaapp:20180802193223p:plain

単純に日本時間の解釈でいいのかな?
でも公開時間の表示はこんなです。

f:id:tsukinowaapp:20180802193610p:plain

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クライアントからの起動テストは必ずやりましょう)

Steamにゲームをアップロードして審査を受けるまでのタスク(ゲームビルド)

今日は完成したゲームをSteamにアップロードして、ビルドの審査を受けるまでの手順を書こうかと思います。
尚、並行してストアプレゼンスの審査を受けて承認済みにしておく必要があります。
検索などで直接こちらのページに辿り着いたかたは、こちらも確認してください。
tsukinowa.hatenablog.jp

ゲームビルドもストアプレゼンス同様、チェックリストを全て完了にする必要があります。

f:id:tsukinowaapp:20180730105310p:plain

順を追って説明します。

チェックリストの「デポ」を押下、
「アプリデータ管理」の画面を表示します。
(SteamPipeタブの「デポ」をクリックでもOK)

ゲームビルドのタスク

最低でも1つのデポを設定

f:id:tsukinowaapp:20180730131308p:plain
デポでアップロードしたアプリを管理します。
このページに飛んだ時点でデポが1つ存在するかと思います。
Wimdows版(あるいはmac版)のみ、ローカライズはアプリ内でやる、64ビット・32ビットの区別なしであればデポは1つでOKです。

もし、Wimdows版とmac版あるいはLinux版を用意したい、ユーザーが使用している言語に応じてダウンロードさせるファイルを変えたい、などがあれば
必要な数だけデポを作成する形になります。

最低でも1つのビルドを設定

こちらはゲームをアップロードしてから設定します。
(アップロードにはWindows用、mac用ごとに手順があるので別記事にて説明します)
tsukinowa.hatenablog.jp

定義されたオプションを起動

Steamからゲームを起動する時の設定を行います。
画面上の「インストール」タブの「一般」を押下
f:id:tsukinowaapp:20180730145322p:plain

起動オプション

ゲームを呼び出したときに実行したいexeなどの設定を行います。
「編集」ボタンで各種項目が編集できるようになります。
「実行可能ファイル」に起動したいexeなどの実行ファイルを指定します。
後は「オペレーティングシステム」を指定して、「更新」ボタンを押せばOKですが、
アプリの仕様で引数などが必要なら各項目へ入力してください。

また、複数OS(Wimdows版とmac版など)の場合
「新しい起動オプションの追加」でOSごとに起動オプションを設定してください。

デポ言語を設定済み

[全ての言語]という設定でデポが作成されていれば、ここは自動的に完了となります。
言語の指定を行った場合、ストアで指定した数だけデポを作成する必要があります。

ストアと 開発者コンプリート パッケージのマッチ

デポが1つしかない場合は既に完了になっているかと思います。
デポが複数ある場合は設定が必要です。
(デポが複数ある場合はタスクが増えます)
f:id:tsukinowaapp:20180730174202p:plain
アプリ管理の画面上、「アプリとパッケージ」の「パッケージを表示」を押下
f:id:tsukinowaapp:20180730174714p:plain

「パッケージ詳細」というタイトルでパッケージの一覧が表示されます。
f:id:tsukinowaapp:20180730193319p:plain
CD Key Packagesには各ゲームごとに
Developer Compとfor Beta Testingがあり、
Steam Store Packagesには各ゲームごとのパッケージがあります。
対象のゲームのパッケージ ID: の右側(数字)がリンクになっていて押せるのでクリック
f:id:tsukinowaapp:20180730182908p:plain

おそらくは「含まれるデポ」に1つだけ表示されている状態かと思います。
ここに作成したデポを追加します。
f:id:tsukinowaapp:20180730184703p:plain
「デポの追加/削除」を押下すると、デポのリストが表示されますので
追加したいデポを選択し、画面スクロール下の「Save」を押下して保存します。
これをDeveloper Compとfor Beta Testing、Steam Store Packagesの計3つのパッケージに対して実施してください。

ここまで来れば(アップロードを実施したという前提で)全てのタスクは完了になっていると思われますが
以下の箇所も確認してください。
「アプリ管理」の「テクニカルツール」の「Steamworks 設定を編集」を押下
f:id:tsukinowaapp:20180730185411p:plain

アプリケーションの名前と種類
対応オペレーティングシステム

以上の設定がストアと同じであることを確認してください。
(齟齬があれば修正して保存します)

後は画面上の「公開」タブを押下、
「公開の準備」→「Steamに公開」を押下した後
秘密の確定コードを入力したら「本当に公開する」で保存します。
(設定を行ったらこまめに公開で保存しておくことをお勧めします)

全てのゲームビルドのタスクが完了したら、
リリースの進捗状況の「あなたのゲームビルド」に
「レビューの準備完了と設定...」というボタンが表示されるかと思います。
f:id:tsukinowaapp:20180730193954p:plain
押下すればレビューに提出したことになり、
3営業日位でメールにて審査結果が返ってきます。

審査の内容ですが、ストアプレゼンスの情報と実際のゲームアプリの仕様に齟齬がないかチェックしており
ズレがあると却下されてしまいます。
メールに指摘がありますので確認して
ストアの内容を修正するか、アプリを修正するかで対応し
修正が完了したら再審査を依頼する形になります。