この記事は 2023/12/15 に App Store でリリースされた iOS 対応モバイルゲーム「もの切り侍」の(事後の)開発ログのうち、もっとこうすれば良かった、ああすれば良かった、といった「反省」に関する記録である。

「もの切り侍」は下の App Store のバナーから、無料でダウンロードできるので、興味があればぜひ遊んでみてほしい。



反省点の洗い出し

「もの切り侍」の開発を終え、そのプロセスや成果物を精霊に見つめ直してみると、いろいろと反省すべき点があった。次のゲーム開発にそれらの反省を活かすべく、その内容をきっちりと記録に残しておきたいと思う。

まずは具体的な反省点をまずはざっと洗い出してみた。以下のとおりである。

  • やりすぎ系
    • ステージ数多過ぎ
    • 難易度高過ぎ
    • 世界観作り過ぎ
  • 遅すぎ系
    • プラグインの実装遅過ぎ
    • 実機でのテスト遅す過ぎ
    • プロモーションの準備遅過ぎ

これらについて、ある程度詳細な記録を残しておこうと思う。


やりすぎ系

まずは、初級個人開発者が陥りがちな「やりすぎ系」について以下に記す。そうだ、私はまんまとやりすぎてしまった初級開発者の一人だ。


ステージ数多過ぎ

良かれと思ってやった、というよりは、引き算の苦しみを無意識に回避しただけかもしれない。20 ステージ × 10 レベル、全部で 200 のステージを用意したが、カジュアルゲームでそこまで付き合うプレイヤーはほぼいないだろう。エンディングまでわざわざ用意したのになんてことだ。「ステージ数を増やしてプレイヤーの満足感アップ」という大義名分の元、アレもコレも落としたいという自己満足を反映したにすぎないのではないか、と後になって思うのである。

ステージ多すぎ問題

実際に完成したゲームをやればやるほど、1 つのレベルをクリアするのに結構時間がかかると感じた。そして、何より問題なのは、レベルごとに落ち物の落ち方が変わる仕様のため、次のレベルにいくまで徐々に単調で冗長な印象を受けてしまうのである。

であれば、以下のいずれかで調整するのが妥当だったのではないか、と反省しているところである。

  • 落ち物の数はそのままで、レベルを増やして、1 レベルあたりのステージ数を減らす。その代わりに、落ち物の落ち方にもっとバリエーションを設けつつ、レベルごとの難易度のバランスをうまく調整する必要がある。
  • 落ち物の数を半分か1/3くらいまで減らす。その代わりに、全体的に難易度を上げる。ただし、数が少なるなると「古今東西のあらゆる物」という表現が使いにくくなるため、落ち物になんらかの統一感を持たせる。例えば「20世紀以降に生まれた電子機器」縛りにするなどである。

おそらく後者のほうが良いだろう。


難易度高過ぎ

「もの切り侍」のレビュー記事を書いていただく機会があった。その中で、難易度が高い、という評価をいただいた。感じたままをフィードバックいただけるとは非常にありがたいことである。

難易度高すぎ問題

個人開発者にとって、開発を進めていくうちに作っているゲームのプレイにだんだん慣れて熟練してしまうのは、かなり問題である。開発者が自分の感覚を頼りにゲームの難易度を調整すると、全体的に難しくなる傾向があると思う。

「もの切り侍」は反射神経や動体視力が求められるゲームだが、このような身体的感覚を要するゲームは特に上達しやすいのではないかと思う。ちなみに「もの切り侍」は、今後のアップデートで若干難易度を下げようかと検討している。

難易度が客観的に判断できない場合は、できれば、開発に無関係の人に開発途中のゲームをプレイしてもらい、フィードバックしてもらうのが良いだろう。しかし、私のようにあまりそういったことを頼める友人がいない場合(全然寂しくはない)、思い切って、意図的に難易度を下げるのも一つかもしれない。


世界観作り過ぎ

基本的にカジュアルゲームに世界観はほとんど必要ないだろう。気軽にプレイしたいのに世界観を押し付けられると、プレイヤーはむしろ鬱陶しさすら感じるかもしれない。「もの切り侍」もまた世界観を作りすぎたカジュアルゲームの一つだ。

まず、プレイヤーキャラクターの侍に「与一」という名前をつけた。ローマ字にしたときに英語圏の人でも読みやすい名前、ローマ字、漢字ともに文字数が少なめの名前、漢字の読みがわかりやすい名前、など条件をつけて、後補を挙げ、じっくり検討した。そこにたっぷり時間をかける意味があったかは甚だ疑問である。

侍に名前をつけたのは、そもそもスタート画面から確認できるプロローグやエンディングで流れるエピローグの文章内に侍の固有名詞が必要だったからだ。「もの切り侍」において、特にプロローグはプレイヤーにゲームの世界観を知ってもらうための重要な要素なのだ。しかし、そのテキストがかなり長いのである。当初はゲームのローディング中の暇を潰すために用意することにしたものだが、物語を作っているうちに、私自身が盛り上がってしまったのである。その結果、ゲームを始める前にプロローグを読むと、プレイヤーはきっと「長っ!」と感じ、「こりゃゲーム自体も冗長だろうな」と判断され、プレイされずに終わる、という残念な流れを生み出してしまったのだ。

世界観作りすぎ問題

さらに、侍、与一に大量のセリフを用意した。このときすでに 200 ステージ用意している状況であり、ボリュームによる「飽き」を回避したい一心で、ステージ開始時に与一に一言しゃべらせる仕様にした。セリフもステージごとに異なるもの、かつ失敗してリトライする際にも毎回同じにならないように、ランダムのセリフも相当用意した。会話ではなく独り言なので、セリフを書くのは比較的容易ではあったが、これも私自身が盛り上がってしまい、中には冗長なセリフがあるため、プレイヤーはここでもまた「長っ!」と感じるのである。こちらは開発中から自己満足感を感じていたため、設定にてセリフをオフにできるようにはした。

総じて、私が表現したいという欲求を抑えられなかっただけの話である。私の欲求は満たされたので、私自身は大満足なのである。プレイヤーの皆様にはどうかご容赦いただきたい。

今後開発するゲームでも少しは世界観を盛り込もうと考えているが、やりすぎには十分注意したい。ローカライズ用.csvファイルに大量の項目を追加し始めたら「本当に必要か」を自問自答したいと思う。今後、ストーリーを進めていく形式のアクションゲームやRPGを作ることがあれば、その時は思う存分世界観を構築していく所存だ。



遅すぎ系

ここからは、着手が遅すぎた作業について反省していきたいと思う。


プラグインの実装遅過ぎ

プラグインはとても便利なものがたくさんある。開発者の方々には頭が上がらない。「もの切り侍」でも、最終的に 2 つのプラグインを利用させていただいた。

まず一つが DialogueManager だ。もう一つ人気のダイアログ用のプラグイン Dialogic もあったが、カジュアルゲームのちょっとした吹き出しのために使うには少々オーバースペックと判断して不採用となった。

そして、もう一つが、ゲーム開発の活動資金調達のための、Google AdMob の実装を簡単にしてくれる Godot AdMob Plugin というプラグインだ。これなしでは Google AdMob の実装は難しかったと思う。

どっちらも非常に便利で、自分で一から作るのは相当時間がかかりそうな部分をカバーしてくれている。しかしながら、それぞれ、自分のプロジェクトへ導入するには、ドキュメントを読み込んで実装手順をよく理解しながら進める必要があった。自分が作ったものではないし、それなりに複雑なので、その作業にはかなり時間がかかった(私の理解力のなさもあるが)。しかも、導入時点で、「もの切り侍」はかなり完成系に近づいていて、ブラッシュアップの段階に入っていた。すでに複雑になっているコードに、自分のものではないコードを追加することに、気持ちがちょっと引き気味になってしまって、作業開始前の無駄なためらい時間が発生した。

また、Google AdMob Plugin に関しては、プラグインを使う以前に、Google AdMob の利用を申請し、必要な書類の提出や住所確認手順などがあり、1 ヶ月ほどかかってしまった。これは早めに対応したほうが良い。個人的には居住者証明書という書類を最寄りの税務署で入手するのがなかなか面倒だった。Web で下調べした限りでは、税務署ですぐにもらえるものと思っていたが、税務署の職員が必要書類を勘違いしていて、すんなり処理が進まなかったり、その日中には発行できなかったりで、結局 2 回足を運ぶことになった。

とにもかくにも、よくわからないものは気軽に試せる段階で試すべき、ということ教訓を得たのであった。


実機でのテスト遅過ぎ

モバイルゲームを作ると決めていたのに、実際に初めてスマホでデバッグを開始したのは、開発の後半になってからだった。普段の開発は M1 チップ搭載の MacBook Air で行っているが、これが非常にパフォーマンスが良いマシンなのだ。それが災いして、Godot で直接デバッグしている間は、まるでゲーム自体も問題なくサクサク動いているもののように勘違いしてしまっていた。

実際に、スマホでデバッグしてみると、動きがカクカクする問題、メモリリークの問題などが出てきて、相当焦ることになった。正直、まもなく完成できるつもりでいたのだ。

私がハマった細かな落とし穴についてもせっかくなので記録しておこう。

まず、Android スマホでのデバッグは、Godot エディタの右上のアイコンから気軽にリモートデバッグを開始できる。このとき、Godot ぎ “Debug” メニュー > “Small Deploy with Network Filesystem” を有効にしていると、クイックにデバッグを開始できるようだが、私の Android スマホ(メルカリで格安で入手した低スペックの Rakuten Hand5G)の場合は、この設定が影響して、スマホ上でのゲームの動作が超低速になってしまっていた。どうやってもプロジェクトの問題点が見つからず、「スマホのスペックが低すぎた」と結論づけて、格安とはいえ無駄な買い物をしてしまったことに相当落ち込んだのであった。しかし、翌朝、スッキリ目覚めた脳みそでもう一度 Godot と向き合うと、この設定に気づくことができた。ちなみに、会社の同僚から借りた Android 9.x の旧型 Xperia では残念ながら、最初のシーン切り替えで落ちる始末で、これは OS との互換性が原因、という結論にして即調査を打ち切った。

Androidのリモートデバッグアイコン

次に iOS だ。私は普段プライベートでは iPhone を使っているので、それをテストデバイスとしても利用していた。iOS のほうは、そもそも Godot から直接デバッグできないところが厄介であり、この仕様が実機でのテストを気後れさせる原因になっていると思う。デバッグは XCode で行うため、Mac が必要になる。公式の iOS用にエクスポート のドキュメントのおかげで、エクスポートして XCode からデバッグするのは、当初予想していたほど大変ではなかった。しかも、この記事の最後に記載されている「GodotプロジェクトフォルダをXcodeにリンクする手順」の手順で、以降いちいちエクスポートし直す必要がなくなるのだ。

ただし、ここにも落とし穴があった。App Store に申請するための本番用のエクスポートは必ず最後に一度実施する必要があるが、私はズボラをして、XCode 側のプロジェクトから Godot のプロジェクトフォルダを参照した状態でそのままビルドして App Store に申請したのだ。そして数日後、審査に通ってしまった。ついに App Store に自分のゲームが公開され、興奮は MAX である。その日の会社の帰りの電車で App Store から自分の iPhone に「もの切り侍」をダウンロードしようとした。すると、アラートが表示された。なんと「サイズが大きすぎるけど Wi-Fi じゃなくていいの?」と聞いてきたのだ。そんなバカなと、App Store でゲームのファイルサイズを確認してみると、驚きの 500 MB 超えである。帰宅後、夜中の 2:00 までひたすらサイズを削り、バージョン 1.1 を申請することになった。結果的には、なんとか 160 MB 程度に落ち着いた。

Xcode から Godot のプロジェクトフォルダを参照するのは、開発中は便利だが、ゲームの容量がバカデカくなってしまうので要注意だ。しかも、そもそもその状態で XCode からビルドしようとすると、プラグインのインストールなどで追加されるAndroid 対応分の .class や .zip ファイルのせいで、XCode でビルドした時にエラーが発生する。私の場合、強引にそれらファイルを除外してビルドしていたのである。

App Store 申請時だけとはいえ、Godot から複数回エクスポートするのは骨が折れる。特に XCode 上での info.plist の編集を毎回やるのは面倒だ。特に AdMob Plugin の手順も合わさって、やることが多かった。何度か繰り返して気づいたが、編集済みの info.plist はどこか別の場所に複製しておいて、エクスポートするたびに上書きするのが得策だと思う。


Google Play のデベロッパーアカウント取得遅過ぎ

モバイルゲームを各プラットフォームで配信させてもらう場合、App Store なら Apple の、Google Play なら Google のデベロッパーアカウントがそれぞれ必要だ。経費もかかる。私は Google のデベロッパーアカウントを作るのが遅すぎた。そのせいで、ちょうどアプリ配信のためのルールが更新されたところだったのだ。そのルールというのが個人開発者泣かせの内容なのだ。

Google Play でアプリを公開するには、事前にクローズドテストをクリアすることが必須となっており、そのクローズドテストのために、開発者は 20 人以上のテスターに 14日連続でテストしてもらう必要がある、というものだ。フルタイムの仕事をしながら個人でゲーム開発をしているような人(私だ)に、2週間もの間、1日も休むことなくテストプレイをしてくれる友人、知人が 20 人もいるだろうか(私の感覚では不可能に近い)。

そういう経緯で、しっかり Android に対応する形で開発してきたが、最後の最後で諦めることになった。またルールが改善されるなり、開発者がお互いにテストを依頼し合えるようなサービスができたら(憤慨して自分で作ってやろうかと一瞬考えたが、冷静になってスキル不足が過ぎると気づいてやめた)、そのときは是非 Google Play のほうも申請したいと思う。


プロモーションの準備遅過ぎ

販売プラットフォームに自分のゲームを置くことがひとつの目標ではあったが、App Store の申請が通ったら、すべて完了したような気になってしまった。しかし、このままでは誰にも気づかれずに終わると気づき、個人でできる範囲のプロモーションをやってみることにした。

プロモーションのプの字もわかっていなかったが、今回は以下を試みた。

  1. X でお知らせをツイートする。
  2. Instagram と TikTok のアカウントを作ってプレイ動画のショートを随時アップする。
  3. YouTube チャネルを作って、プロモーション用の動画をアップする。
  4. プレスリリースやレビュー記事の掲載をゲーム系のメディアに依頼する。

X など SNS の投稿は、開発中からちょくちょくしておいたほうが、認知してもらいやすいとは思う。しかし、開発者あるあるで、作業がノっている時ほど作業に没頭したいものだ。そして、ノっている時ほど、投稿したらおもしろいことが起きていることも多い。この傾向が私の場合は特に顕著なのだ。一秒でも長くコーディングしていたいと願っている。その結果、誰も知られないモバイルゲームを世に解き放ってしまった。

YouTube のプロモーション動画も、もっと編集に時間をかけ、かっこよくてインパクトのある動画を作り、早い段階で公開していれば、より興味をもってくれる人が増えたのではないかと思う。

プレスリリースの送信は今回リリースから数日後に行ったが、リリース前からお知らせしておくほうが事前の宣伝になって、認知度は多少向上するのではないかと思う。今回はリリース後にも関わらず、下記 6 メディアで、プレスリリースの掲載やレビュー記事の投稿をしていただくことができた。この場をお借りして、感謝申し上げたい。

ちなみに、上述の通り、形式的ではあるが、プロモーション活動のようなことをしてみたものの、「もの切り侍」は 2023/12/15 にリリースして、2024/1/9 現在の総ダウンロード数はなんと 14 だ。これは素晴らしい結果だと思うようにしている。世界で 14 もダウンロードされた。0 ではないことが奇跡だ。上記プレスリリースのメディア分と自分の iPhone 分を差し引けば 7 だ。世界中の 7 人の物好きの人々に感謝の気持ちでいっぱいである。


おわりに

ということで、この開発ログには「もの切り侍」の反省点についてを記した。最後にもう一度まとめておこう。

開発中にいろいろ「やりすぎ」たことでゲームの完成までに予想以上の時間がかかってしまった。当初リリースしたかったタイミングから大きくビハインドしてしまったのだ。その影響で、開発後半はリリースを焦ってしまい、リリースまでにやるべきゲーム開発以外のことを色々後回しにしてしまった。その結果、デベロッパーアカウントの申請、AdMob 関連の事務作業、プロモーション活動などが「遅すぎ」る結末を迎えてしまった、という流れである。

次回以降は同じ轍を踏まないように十分注意していきたいと思う。この開発ログがどなたかのゲーム開発の一助になれば幸いだ。