2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIで実装が速くなったぶん、テストプレイが主役になった

2
Posted at

猫仕様のブラウザ・ピンボールを作りました。

日本の夜祭りに輝く、茶トラ猫のピンボール台

最初のきっかけは、「ヤフーきっずとかで、これ系のゲームを延々とやっていたな」と思い出したことでした。

そして、猫はピンボールと相性が良いと思いました。前足を出す動き、飛んでいくものを目で追う動き、獲物を狙うときの集中した感じ。フリッパーでボールを打ち返す遊びと、うまく重なって見えたのです。

完成したゲームには、鳴く猫バンパー、くるくる回る細長い猫、どこに出るか分からないワープ穴があります。

ただ、この形に落ち着くまでは、今まで作ったものの中でも一段とトライアンドエラーの多い制作でした。

最初はパステルカラーにしようとしていた

作り始めたときは、もっとキャッチーな見た目を想像していました。

パステルカラーを使い、猫の可愛さを前面に出す方向です。でも、ピンボールという遊びが持つ、暗い筐体の中でライトが点滅する感じや、金属と色ガラスのような雰囲気が薄くなりました。

そこで、深い紫をベースに、朱色、黄色、ミント色の光を配し、レトロなピンボール筐体に近づけました。

「猫らしさ」は消さず、それまでのシリーズとは盤面全体の印象を変える。その両方ができたのは良かったと思います。

軽いことを、機能不足だと思わない

このシリーズでは、「軽くて快適で、始めることに抵抗がない」ことを大切にしています。

アカウント登録も、説明の読み込みも、大きなデータのダウンロードもなく、URLを開いたらすぐ遊べる。今回もHTML、CSS、Vanilla JavaScriptだけで作りました。

Canvasはよく使いますが、ゲーム用ライブラリについてはまだまだ知らないものがあります。APIも同じで、知らない手段が見つかるのは楽しいです。

ただ、今回は「知らないライブラリを使うこと」より、「小さくすぐ遊べること」を優先しました。結果として、ファイルをそのまま配信できる構成になりました。

ピンボールをあまり触ってこなかった

ここが、制作中の難しさにつながりました。

私がゲームセンターで遊ぶ年齢になった頃には、ピンボールは「古い台が1台あるかどうか」という存在でした。

そのため、障害物がどれくらいの大きさで、何個くらい置かれていると自然なのか、感覚がありませんでした。

実は、ネットにある実際のピンボールの写真をAIに渡したのは、制作途中の1回だけです。

今考えれば、最初のプロンプトで参考画像を渡すべきでした。ピンボールらしい比率と、デジタルの画面で必要な遊びやすさを、もっと早い段階で比較できたと思います。

ボールの導線は、画面を見るだけでは分からない

一番苦労したのはボールの導線でした。

ボールが止まる、必ず失敗する、フリッパーまで来ない。見た目としては完成していても、実際に遊ぶとこうした問題が出てきます。

自分と上司で何度もテストプレイをして、必ず死んでしまう箇所を潰していきました。

でも、ボールが落ちないようにすると、今度はゲームがぬるくなります。難しくしたいから落とし穴を追加すると、納得感のない失敗が増えます。

ここで上司から出たのが、単に落とすのではなく、ボールの動きそのものを変えるアイデアでした。

その結果、落とし穴は、どこに飛ぶか分からないワープ穴になりました。ミスを罰するのではなく、予想外の動きに変える。難しさの種類を変えることで、ただ安全なだけの盤面になるのを避けました。

「ぬるめ」をゴールにする

最終的に、難易度はぬるめに落ち着きました。

これは調整に失敗した結果ではありません。上司が「これくらい、考えずに遊べるのがいい」と言ったことで、このゲームの使い方がはっきりしました。

曇つぶしや、仕事中に少し気分を変えたいときに触るゲームです。集中して攻略するゲームにする必要はありません。

プレイヤーに力を抜いて遊んでほしいのなら、作る側も、快適さは大切にしつつ、少し肩の力を抜いてもいい。そう思えるようになりました。

楽しさを作る場所は、UI・音・ボールの動きで違う

制作中、「楽しさ」を1つのパラメータで考えないほうがよいと感じました。

気持ちの充実感を作るのは、UIや音です。ボールが当たったときに光る、点数が出る、猫が鳴く。操作が成功したときの「手応え」は、こうした反応で作れます。

一方、難易度を作るのは、障害物の大きさや配置、ボールの速さと導線です。

反応を増やしても難しくはなりませんし、障害物を増やしても気持ち良くなるとは限りません。それぞれの役割を分けて調整すると、何を変えたときにどこへ影響するかが見えやすくなりました。

一番気に入っているのは、回る猫

一番気に入っている仕掛けは、圧倒的に猫風車です。

デフォルメされた細長い猫が、盤面の真ん中でくるくる回ります。ボールが当たると回転方向や速さが変わり、ボールも弾き返します。

しっかりゲームの障害物として機能しているのに、見た目はただただ可愛い。猫をテーマにした意味が、一番分かりやすく出た要素だと思います。

一方、シュールで気に入っているのはワープです。穴に入った瞬間、画面に「どこ!?」と出ます。ワープする箇所自体が「どこ?」としゃべるとは、あまり誰も思わないはずです。

AIと作ると、微調整が主な仕事になる

AIとの開発で、いつも大変だと感じるのは微調整です。

大きな画面を作ることや、機能を追加することは速い。しかし、「ボールがたまにここで止まる」「棒が少し歪んで見える」「右下の隙間が大きすぎる」といった、小さくて具体的な違和感を潰すことに時間がかかります。

今回は、問題が起きた瞬間のスクリーンショットを渡しながら修正しました。

文章で「右下がおかしい」と説明するより、画像でボールの位置を見せるほうが原因を共有しやすく、修正も早くなりました。動的なバグでも、止画が十分役に立つ場合があります。

修正と実装でAIを使い分ける

これはあくまでも現時点での個人的な感覚ですが、Claude CodeよりGPTのほうが、「重箱の隅をつつく」ようなセルフレビューと修正をするイメージがあります。

一方で、最初の実装や大きな構成を進める場面では、別のAIが合うこともあります。

だから1つのAIで最初から最後まで通すより、「大きく作る」と「細かく疑う」で使い分けるのが、今の自分には合っています。

もちろんモデルや指示の出し方によって変わります。いつでも同じ結果になる比較ではなく、私の今の開発スタイルとの相性の話です。

実装が速いと、テストプレイに時間を使える

今回の制作を一言で振り返ると、「今までよりも、より一段とトライアンドエラーだった」です。

でも、それは実装が進まなかったという意味ではありません。逆に、AIで実装が早くなったぶん、遊んで確かめる時間を増やせました。

ゲームは、仕様書と画面を見ても、「なんか楽しい」かどうかは分かりません。ボールがよく動くか、死に方に納得できるか、またやりたいか。最後は遊ばないと判断できません。

実装時間が短くなった分を、完成までの短縮だけに使うのではなく、確認回数を増やすために使う。今回、AIを使ったゲーム制作で一番実感したのはそこでした。

仕事中に遊んでも、たぶん怒られない

このゲームは、少し暇なときや、仕事中に気分を変えたいときに触ってほしいです。

少しの気分転換で仕事が捗るなら、上司も怒らないでしょう。たぶん。

ほどほどに遊んでみてください。


🐱 でぶねこ|猫好きエンジニア
週2ペースでゆるくネタ系Webアプリを作ってます。
良ければXもフォローしてください🐾
▶ X: https://x.com/dev_cat222

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?