近年、AI技術の進化は目覚ましく、私たちの日常生活に深く浸透しています。
ゲーム制作の分野も例外ではなく、生成AIを活用したゲーム開発はますます注目を集めています。
この記事シリーズでは、「AIでブラウザ上で動作するゲームをどこまで作成できるのか?」という問いに挑戦します。
AIを活用したゲーム制作の可能性を探り、読者の皆さんが「AIを使えば自分でもゲームが作れるかもしれない」と感じられるような具体的な道筋を示していきます。
なぜ今、AIでゲーム制作なのか?
皆さんは日頃から生成AIを利用していますか?検索エンジンの代替として、あるいは文章作成のサポートとして活用されている方も多いかもしれません。
実は、生成AIはプログラミングにおいても非常に高い能力を発揮します。
本シリーズでは、この生成AIの特性を活かし、実際にゲーム制作を進めていきます。
コードを直接書かずに、AIと対話しながらアプリケーションを開発することは「VibeCoding(バイブコーディング)」と呼ばれ、次世代のプラグラミング手法として注目されています。
第1回は「スペランカー」の再現に挑戦
第1回は、ファミコン時代の名作アクションゲーム「スペランカー」の再現に挑戦します。
「最弱の主人公」という異名を持つこのゲームは、その独特な操作感と理不尽なまでの難易度で、多くのプレイヤーの記憶に残っています。
なぜ「スペランカー」を選んだのか?
筆者が個人的に好きなゲームであることはもちろんですが、それ以上に「スペランカー」がシンプルな要素の組み合わせで構成されている点に注目しました。
限られたキャラクターやアイテムの種類、そしてシンプルな操作性でありながら、「スペランカー」らしい独特のゲーム性を再現できるのではないかと考えています。
また、本シリーズでは、手軽にプレイでき、簡単に公開できるブラウザゲームを制作の基本としています。
そのため、複雑すぎず、かつ印象深い「スペランカー」は、AIによるゲーム制作の最初の一歩として最適だと判断しました。
使用するAIツール:ChatGpt
本記事のゲーム制作には主にChatGPTを使用します。
本記事で実施している範囲であれば無料のChatGPTで実施可能です。
AIによるゲーム制作「スペランカー」
まずは「Chat GPT」のページを開きます。
https://chatgpt.com/

最初にゲーム開発の可能性を探りながら会話してみます。
生成AIは「相談しながら進める」と方向性がぶれずにうまくいくことが多いです。

Godot(ゴドー)やUnity(ユニティ)など、いくつかのゲーム制作方法をお薦めされます。
「どんなゲームが作りたいですか?」と聞かれたので「スペランカーが作りたい」回答します。

スペランカーの基本的なゲーム内容をまとめてくれます。
AIの優秀さに驚きますね。

Godot(ゴドー)での制作を勧められます。
Godot(ゴドー)もシンプルで軽量な楽しいゲーム制作エンジンですが、今回はブラウザで制作したいため、ブラウザ上で完結する「HTMLで作成したい」旨を伝えます。

目指すゲーム仕様に続いて、いきなりHTMLコードを記載してくれます。

書き出されたコードをメモ帳にコピペし、「.html」の拡張子で保存します。
保存されたファイルをクリックするとブラウザ上でゲームが起動します。
今回、スペランカー風のゲームということで最初に表示されたゲームがこちらです。

「全然違う」と思うかもしれませんが、実はこの時点で横移動、ジャンプ、ロープ(真ん中の棒)の上り下り、落下死まで実装されています。
基本的なアクションについては一通り実装できていながらも、見た目が全然スペランカーじゃない状態です。
スペランカーらしいマップを作成してもらいたいので、例としてスペランカーの画像を読み込ませます。

いくつか質問が返ってくるので返答します。


マップ情報が入ったコードが生成されました。
また、全体をコピペしてhtmlで保存しダブルクリックで立ち上げます。

それっぽい感じになってきました。
マップの修正が必要なので、聞いてみます。

現在のマップ配列も教えてくれます。

文字や記号を使用することによって、マップが作成されていることがわかります。
ChatGPTからも「現在のマップを自分で修正するか」聞かれるので「自分で修正する」旨を回答します。


ちゃんとマップの記号が何を表しているかも教えてくれます。


raku
AIは本当に気が利いていますね!
マップ部分を自分で書き換えて渡すと、今後の修正について確認されます。

「プレイヤーの初期位置を合わせる」と「ハシゴの連続性やブロックの隙間チェック」をお願いすると、改善されたマップ情報を表示してくれます。

ところが、ここで問題が発生。
修正したコードを貼り付けて起動したところ、ゲーム自体が起動しなくなりました。
不具合(エラー、バグ)の発生はプログラミングにおいては避けられないところです。
「動かなくなった」旨を伝えます。参考にコードも貼り付けます。

すると、エラーの原因と解消方法を教えてもらえます。


問題なく起動するようになりました。
この後も、ゲームオーバー後にジャンプが止まらなくなったりしたので、同じようにAIに伝えてエラーの解消をしていきます。

raku
エラーの修正も会話しながら進められます
修正を指示していると、修正部分のコードだけを提示されることがあります。
修正箇所がわかりにくい場合は、コード全体をもらうようにしましょう。
また、コードを読むことはほとんどありませんが、今後ジャンプの高さや移動スピードなど、パラメーターを修正することを考えて、コードが何を意味しているかコード内にコメントを書いてもらいます。


raku
何を指示しても前向きに返してくれるので、どんどん指示しましょう
マップを修正し、少しずつスペランカーに近づいてきました。

歩く速度やジャンプの高さも調整しています。
現時点のコードは下記に添付しますので、興味あればダウンロードして確認してみてください。
今回はここまでです。
次回はスペランカー特有の「小さなコブ」のような障害物やアイテムの取得、ゲームオーバー画面の調整などをしていきます。
最後までお読みいただき、ありがとうございました!
AIによるコーディングに興味を持った方はぜひ試してみてください。