「AIでブラウザ上で動作するゲームをどこまで作成できるのか?」という問いに挑戦するシリーズの第1回、ファミコンの「スペランカー」を再現する回の続きです。
これまでのシリーズ
AIを使ったゲーム制作:「スペランカー」を再現する①(バイブコーディング)
AIを使ったゲーム制作:「スペランカー」を再現する②(バイブコーディング)
AIを使ったゲーム制作:「スペランカー」を再現する③(バイブコーディング)
AIを使ったゲーム制作:「スペランカー」を再現する④(バイブコーディング)
AIを使ったゲーム制作:「スペランカー」を再現する⑤(BGM、敵キャラの実装)
AIを使ったゲーム制作:「スペランカー」を再現する⑥(コブの調整、間欠泉・リフトの実装)
本記事では2025年9月時点の「Gemini 2.5Pro」を使用しています。
キャラクターの調整
プレイヤーキャラクターが常に正面を向いているため、状況によって向きを変えてもらいます。

要望は汲み取ってもらえたようです。

ただ、「修正後のコード全体」と言っている割にコードを見ると所々端折られていたので、変更されたポイントを改めて確認しました。

drawPlayer関数だけだったので、drawPlayer関数だけを表示してもらい修正しました。
右向き、左向きが実装されていないのと、ハシゴに触れた状態だと後ろ向きになるので調整します。


今回は変更する関数だけ表示してくれました。
ハシゴの挙動は良い感じになったので、右向き、左向きを実装します。
おそらくAI的には現時点でも実装していると思っているのでわかりやすくしてもらいます。

表現が難しいですね。バイブコーディングは説明力が求められますね。。
一応意図は汲んでくれたみたいです。


今回は一回でうまく行ったようです。
次はゴーストとコウモリに顔が無いのが気になっていたので、顔を作成してもらいます。

AIから「どちらの回答が良いですか?」と聞かれました。

せっかくなので、どちらも試してうまく行った方を評価していきます。
選択肢A
コウモリは良い感じですが、ゴーストの見た目が可愛すぎます。(これはこれで良いかもしれないですが、、
選択肢B
Update関数を部分的に修正しているため、ゲームの挙動が不安定になりました。
同じことが実装されるのであればシンプルな方が良いので今回はA案で進めます。

表情が変わりましたが、、、ちょっとイメージと違います。
せっかくなので、もうちょっとイメージと近づけてみます。

この後も何回か調整を続けます。もはや手で描いた方が早そうですが、今回は一旦AIにお任せします。
最終的にちょっと可愛さは残りましたが、個性ということで良いでしょう。
rak
キャラクターに表情がつくと、ゲームらしくなってよいですね
ゴールの作成
現状だとゴールが下記のようによくわからない形なので、修正します。

ピラミッド型を目指してみたいと思います。

修正されましたが、若干違います、、

さらにピラミットに近づけてもらいます。


大規模な修正になったので慎重に修正していきます。
「完全なコード」と言いつつも端折られている箇所があるためです。
また、マップに関しては適当に修正されてしまうため、マップの部分だけは別で保存しています。

大きくはなりましたが、若干尖りすぎなので、より具体的に指示して調整してもらいます。

良い感じの大きさになりました。

ちょっとめり込んでいますが、後で修正します。
キャラクターのヘルメットや間欠泉のサウンドを消去するなど、微調整しました。
ゲームオーバーサウンドの追加
残機がなくなるとゲームオーバーになりますが、BGMがそのまま流れていたので、ゲームオーバー時のサウンドを流してBGMを止めるようにします。
サウンドやBGMを作るのは現在のGeminiでは難しそうなので、作成する際のプロンプトだけ作ってもらいます。

説明と一緒に英語のプロンプトが生成されます。

BGMはSUNOに作成してもらいましたが、SUNOだと短い効果音が生成できなかったため、「Elevenlabs」を使用しました。
「Elevenlabs」も音声に特化した多機能AIツールですが、短い音源が作成できるのが特徴です。
作成したBGMをゲームオーバー時に鳴らしてもらいます。


3つの関数を変更する必要がありましたが、問題なく実装されました。
ゲームオーバー直後ではなく少し遅れてなった方が良さそうだったので調整しました。
今回で完成予定でしたが、長くなってしまったので次回完成させようと思います。
キャラクターやゴールの調整、ゲームオーバーサウンドを実装したことでゲームらしさが増してきました。
ちょっと長いですが、ゲームオーバーになるまでの動画を置いておきます。
細かな修正点はありますが、ゲーム部分としては、ほぼ完成としたいと思います。
次はいよいよタイトル画面を作成します。
