今回は、自作スマホゲームをストアに出すところまでやりました。
いつもお世話になっております、ゲーム専務です。
スマホゲーム「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 に載せるところまで来られたのは、かなり大きな一歩でした。
今後は、遊ばれ方を見ながら、ゲーム内容とストア周りを直していきます。