【Giant Strike】AIと一緒にスマホゲームをストアリリースまで作った話

今回は、自作スマホゲームをストアに出すところまでやりました。


いつもお世話になっております、ゲーム専務です。


スマホゲーム「Giant Strike」を、App Store と Google Play に公開しました。


「AIでゲームを作った」という話自体は、今だとそこまで珍しくないと思います。
ただ今回は、動くサンプルを作って終わりではなく、Unityで実装して、広告を入れて、プライバシーポリシーやストア素材を用意して、実際にストアへ出すところまでやりました。


やってみると、ゲームを作ることより、リリースまで持っていくことのほうが地味に大変でした。



Giant Strike について


Giant Strike は、ボールを投げてターゲットを倒していくカジュアルゲームです。


最初はボウリングのようにピンを倒すところから始まり、スコアを使ってボールのサイズ、パワー、ターゲット数を強化していきます。
進めていくと、木、家、ビル、山、惑星のように、倒すものがどんどん大きくなっていく作りです。


1プレイは短めです。
ただ、強化して届く距離が伸びたり、倒せるものが増えたりするので、少しずつ派手になっていく方向にしています。


最初に仕様書を作りました


今回、AIにいきなり「ゲーム作って」と投げたわけではありません。


最初にやったのは仕様書作りです。
ゲーム内容、UI、広告、ストア公開、iOS / Android対応、保存データ、リリース確認まで、最初からストアに出す前提で書きました。


ここを曖昧にすると、AIはだいたい「とりあえず動くもの」に寄ります。


Unity標準の白いUI、仮ボタン、あとで差し替える前提の見た目。
そういうものは、最初は早く見えますが、リリース前提だと後で作り直しになります。


なので今回は、試作扱いにはしませんでした。
最初から「ストアに出すゲームとして成立するか」を基準にしました。


AIにやってもらったこと


開発は Unity 6000.4.6f1 で進めました。と言ってもAIに相談してそのあたりは全部決めてもらいましたが!僕はコード書けないので全く何もわからないから。


仕様書だけに近い状態から、Unityプロジェクトを作り、Assets/GiantStrike 以下にゲーム本体、UI、データ、広告、保存処理、ストア向け素材を作っていきました。


主に作ったものはこのあたりです。


  • 投球、パワーゲージ、カーブ入力
  • ターゲット配置と倒れ判定
  • スコア、強化、保存データ
  • ボーナスルーレット
  • 日本語 / 英語の表示切り替え
  • AdMob のリワード広告
  • Android AAB と iOS Xcode ビルド
  • ストア用スクリーンショット
  • プライバシーポリシー、サポートページ、公式ページ

広告はリワード広告だけにしています。
バナー広告や強制インタースティシャルは入れていません。


収益だけ見れば広告を増やしたくなるところですが、最初のゲームでプレイの邪魔になる広告を入れるのは違うかなと。
このへんは、収益と遊びやすさのバランスが難しいところです。


リリース前のチェックがかなり多い


ゲーム本体が動いても、そこから先が長いです。


AndroidならAAB、iOSならXcodeプロジェクト。
AdMobのアプリID、広告ユニットID、プライバシーポリシーURL、ストア説明文、スクリーンショット、Google Playのデータセーフティ、App Storeの審査情報。


こういう作業が、思った以上に多いです。


今回はリリース用の確認ツールも作りました。
仮の広告IDが残っていないか、プライバシーポリシーURLが入っているか、Androidのtarget SDKやIL2CPP設定が問題ないか、というあたりを機械的に見られるようにしています。


これは作っておいて良かったです。
人間だけで確認すると、どうしても「たぶん大丈夫」で進めたくなるので。


実機で見ないと分からないこと


Unityエディタで動いたからOK、とはなりません。


Android実機で見たときは、描画だけでなく、CPU側の処理や広告SDKまわりも気にする必要がありました。
毎フレームのシーン検索、大量オブジェクトの影、AdMob / WebView 系の処理など、エディタ上では見えにくいところが出てきます。


今回も、ステージ情報を毎回探さないようにしたり、影の設定を落としたり、フレームレート設定を見直したりしました。


ここはAIだけに任せると危ないところです。
「動きました」で終わらせず、実機でどう動いているかを見る必要があります。


AIに師事した、というより


今回の開発は、AIに師事したというより、AIを横に置いて毎回詰めていった感じです。


AIは手が早いです。
コードを書く、設定を洗い出す、ストア向けの項目を整理する、足りないファイルを作る。こういう作業はかなり助かりました。


ただし、判断まで丸投げすると危ないです。


「これはリリース版として使えるのか」
「後で作り直しになる実装ではないか」
「広告、ストア審査、パフォーマンス、保守まで見て問題ないか」


このあたりは、こちらが何度も止める必要があります。


AIは優秀ですが、放っておくと簡単な道に寄ります。
そこを人間側がちゃんと見ないと、完成品ではなく「動くサンプル」で止まります。


ストアに出した後も簡単ではない


App Storeに載せたら自然に遊ばれるのか、というと全然そんなことはありませんでした。


最初に見た数字はかなり少なく、インプレッションもダウンロードもほぼありません。
Apple Adsも試しましたが、キーワードや入札が噛み合わないとインプレッション0のままです。


X広告も試そうとしましたが、アプリ登録の時点でなかなか認識されず、これもすぐには進みませんでした。


作れば終わりではなく、見つけてもらうところがまた別の勝負です。


ここは今後も調整していきます。
ストアページ、広告、キーワード、スクリーンショット、ゲーム内容。結局、公開後も見るところは多いです。


あとがき


AIを使えば、個人でもスマホゲームをストアに出すところまでかなり進められます。


ただ、「AIが全部やってくれる」という感じではありません。
むしろ、こちらが仕様を決めて、基準を決めて、ズレたら止めて、リリースに必要な作業を一つずつ潰していく必要があります。


そのうえで、実装量や調査量を大きく減らしてくれるのは間違いありません。


Giant Strike はまだ公開したばかりで、プレイ数もこれからです。
ただ、仕様書だけに近いところから、App Store と Google Play に載せるところまで来られたのは、かなり大きな一歩でした。


今後は、遊ばれ方を見ながら、ゲーム内容とストア周りを直していきます。