見出し画像

現役インディーゲーム開発者による「Pyxel x AIによるゲーム制作」のススメ

 2025年末ごろからAIコーディングが世を騒がすようになり、「ゲーム開発もAIでいけるんじゃね?」という雰囲気が流れ始めていますね。
少し前にUnityがAI開発ツールを発表したというニュースもありました。

私としては、この記事を書いている2026年3月現在では以下のように考えています。

  1. AIでゲームのプログラミングは十分にできる。ただゲームにおいて「プログラミング」が占める割合は一部に過ぎないので、だからといって「誰でも良いゲームが作れる」にはならない。

  2. UnityやUnreal Engineのようなフルスペックで複雑なゲームエンジンより、シンプルなゲームエンジン・ライブラリのほうがAIに向く。(ただ、これは時間とともに解消されるかも。)

AI台頭以前もツクールシリーズをはじめとしたゲーム制作ツールが多数あり、「プログラミングは敷居が高いけどゲーム制作したい」という人のニーズを満たしていました。

とはいえ、凝ったことをやろうとすると自力でのコーディングが必要となったり、そこまでできないならツールの枠組みに沿ったものしか作れなかったりと、挫折や妥協も発生しやすかったことでしょう。

AIにより、ゲーム制作ツールの仕様にとらわれずに自然言語でプログラムを作る余地が増えたので、「ゲームが好きで自分でも作ってみたい。絵も描ける、アイデアもある。でもプログラミングは敷居が高い」みたいな人がゲーム制作にチャレンジするにはいいチャンスだと思います。

プログラムのことだけ言及していますが、AIでアセットも作れるし最近は作曲もできる、シナリオだって作れるでしょ?と思った方もいると思います。
ただ自分は、シナリオ・グラフィック・サウンドといったものこそゲームに魂を与える要素であり、そこをAIにゆだねるのは「不足するパーツを仕方なく穴埋めするような行為」と考えているので、本記事でもグラフィックなどをAIに補完させる方法については一切触れていません。

ゲームエンジンPyxelの選定理由

私はPyxelガチ勢でSteamでもゲームを2本リリースしているくらいなので、「そんだけPyxel好きならそりゃPyxel推すやろ」としか思われなさそう…だしその通りなのですが、こんな記事を書いているのは人に薦める意義があると信じているためです。

以下、AIと壁打ちしたり自分でいろんな方の記事読んで調べた上で「他のゲームエンジン・ライブラリよりPyxelがいいぞ」と主張する理由です。

Godotなど触ったことがないものについてはどうしても解像度が低いので、不当な評価だと感じられた部分があればご指摘いただけると嬉しいです。

Pyxel

もともと8ビット風ゲーム制作に特化していたので仕様がシンプルなのと、Pythonというメジャー言語を使うためAIが扱いやすいです(AI自身が「AIが最も扱いやすい」と評価した)。

Pyxelの作者のkitaoさんもAI連携に力を入れており、Pyxel MCP(後述)なども開発していますし、Pyxel自体が日本発のゲームエンジンなこともあり、日本においてはユーザーが近年増えてきている印象もあります。

開発環境も近年充実しており、現在はかなりスマートに完全な開発環境を作ることができます。この点は後で詳しく扱います。

(8ビットレトロ風の印象が拭えない方のための参考画像)

Unity (Godot, GameMaker)

ゲームエンジンとしてのスペックが最上位なのは言うまでもありませんが、アセット・シーン・コンポーネントなどソースコード以外の要素が大きく、AIとしては扱いにくいそうです。(3Dゲームだとなおさら。)
UnityもMCPがありますが、試す限り扱える範囲は現時点では限定的な印象です。

また、GodotGameMakerも大きくは同じで、「本格的に作れるけど、エディタ依存部分が大きいためAIがコードだけで全部見通すにはやや不利」という評価のようでした。

※とはいえ、AIが今後進化することで、この「扱いやすさ」もいずれやすやすと乗り越えられるかもしれないですね。

Phaser (ほかJS系ゲームエンジン・ライブラリ)

PhaserはHTML5ゲーム特化の2Dゲームフレームワークです。
HTML5ゲームなので、ブラウザで動くゲームがそのまま作れる、electronなどと組み合わせればexeファイルも作れる、Cordovaを使ってスマホネイティブアプリもできる、と配布のしやすさに優れています。

また、ソースがJavaScriptなのでAIが技術的な情報を集めやすい点や、1html(css込み)+1jsファイル程度のシンプルな構成から作り始められるので取り組みやすい点も有力です。

Codexがアセットなし&具体的な指示なしのポン出しで作ってくれたブロック崩し

一方で、本格的な開発を行うようになると「ブラウザでHTMLファイルを開くだけのテスト」ではなく、Node.js / npm を入れて実行環境を構築したりする必要が出てきます。
また、日本では、かもしれませんが、Phaserについてはあまり情報源やトピックが見当たらない感はあります。

どちらもAIがサポートしてくれるとはいえ、初学者にとって挫折しがちな環境構築・維持タスクが入り込むことや、周りに同じ環境を使っている人が少なく情報が流れてこないこと、はデメリットになるかもしれません。

Phaserよりさらに小ぶりで扱いやすいライブラリとしてpixi.jsp5.jsなどもあります。ゲームエンジンというより、「ブラウザを使った入出力機能を扱いやすくするライブラリ」ですね。
これらは、ごく小規模なプロトタイプ作りだったり、「実践というより自分が理解しながら進めることが主目的」というケースであれば有力ですが、一定以上の本格さを求めるならPhaserのほうが良さそうです。

あとはJS系(TypeScript)ならCocos Creatorとかもありますが、こちらは複雑性が増し、評価としては前述のUnity等に近い方向になりそうです。

PICO-8

Pyxelを出している以上PICO-8はどうなんだ、と思われる方もいらっしゃるかもしれませんが、PICO-8はPyxelよりさらに「こじんまりと楽しく作る」を志向している印象があります。
また、拡張もできるPyxelに対して、PICO-8は画面サイズや使用色のルールが厳密なので制約が大きいです(それゆえ面白いとも言える)。

なので、「PICO-8が好きなら全部自分で作るほうがいいんじゃない」という所感です。
PICO-8で作られたゲームってアート色を強く感じるのですよね。

その他

括りが雑で申し訳ないですが、他にはLuaベースのDefoldLÖVEといったエンジンがAIから候補として挙げられていました。
この辺はまったく触ったことがないので、AI評をそのまま置いておきます。

  • Defold は Lua ベースで、HTML5 ビルドやモジュール化、プロジェクト設定、GUI、入力、最適化、収益化周辺まで公式ドキュメントがかなり整っています。つまり、Phaser より少しエンジン寄りで、Godot / Unity ほど重くない中間帯です。AI相性は中程度ですが、本格的な開発に向きます。

  • LÖVE は Lua の 2D フレームワークで、コード主導かつ比較的軽いので、AI相性と試作速度のバランスが良いです。ただし Phaser や Defold ほど「ゲーム開発用の構造」を前面には出していないため、本格的な開発への適正はやや下がります。

AIツールは何がいい?

私のお勧めは「Claude Code」です。
ただ、Claude Codeは無料で試すことができません。

次点の候補がCodexで、こちらは2026年3月時点では無料版Chat GPTの使用範囲の内枠で試すことができます。

当記事では両方のセットアップ方法について説明します。

そして「Claude Code vs Codex (vs Gemini) 」より重要なのは、「Chat GPT(などのチャットツール)で済まさないほうがいい」です。

これはChat GPTの質が低いという意味ではなく、Chat GPTはあくまで「質問に答えてくれる先生」みたいなものなので、コードも吐き出してはくれますが、人間がエディタにいちいちコピペしたり、現在のコードの状態を都度AI側に伝えたりする必要があります。

私も周囲にはこれで商用ゲームを(しかもUnityで)作り切った猛者もいますが、変態的な熱意と根性を必要とするのでお勧めしません。

Claude CodeやCodexの場合、基本的には「プロジェクトフォルダに対するアクセス権限を与えて、その権限内でAIが自由にファイルを読み書きする」という進め方になります。
(実際にはプロジェクトフォルダに限らず、権限コントロールはAI開発において重要なポイントの1つですが、とりあえずわかりやすくするためにざっくり表現しています。)

ゲームのプロジェクトフォルダ内にはメインのソースコード、サブのソースコード、アセットやデータ用のファイル… などと複数のファイルが存在するのが普通ですが、そういったものを丸ごと扱えるわけですね。

セットアップしよう

では、ここからPyxel を VS Code 上で動かし、さらに Claude Code または Codex と組み合わせて開発できる環境を作っていきます。

あ、VS Codeについて未説明でしたね。
VS Codeはコードエディタです。

今回は「コードを書かずに開発する」が目的なので、コードエディタ要らないのでは?(というか難しそうなのでヤダ)と思われた方もいるかもしれませんが、VS Codeという箱の上でPyxelとClaude Code or Codexを動かすことで、VS Code内でほぼ開発が完結する環境を作ることができます。

1. VS Codeをインストール

ここからインストールするだけ!

2. VS Code を日本語化する

インストール直後は英語表記になっているので、日本語化します。
他サイト様のリンクのみで恐縮ですが、以下がわかりやすいと思います。

3. VS Code に Pyxel 拡張機能を入れる

日本語化したときと同様の手順で拡張機能のタブを表示し、「Pyxel」を検索してインストールします。

VSCodeのPyxel拡張機能

4. Pyxel MCP をインストールする

Pyxel MCPは、AIがPyxel の実行結果を確認する、スクリーンショットを取る、入力をシミュレートするといったことができる補助ツールだと思ってください。
(MCPはAIが他のアプリケーションにアクセスするための標準規格)

インストール方法は公式記載の通りで、VS Codeのターミナル(メニューバーに「ターミナル」があります)で次を実行します。

pip install pyxel-mcp

もしここでエラーらしきものが出たら「pipが使える状態ではない」ということになります。
お使いのPC環境によって対処法が異なるので、対処法をAI(ChatGPTでも何でもOK)に聞いてしまいましょう。
「ターミナルでこのコマンドを打ったらエラーが出ました」などと書いてコマンドとエラーログを貼れば、あとはAIが誘導してくれます。

5. Claude Code / Codex を VS Code に入れる

これまでと同様の手順で拡張機能 「Claude Code」または「Codex」を検索してインストールします。

インストールできたら、そのまま画面の案内に従って初回サインインを行ってください。

左がClaude Code、右がCodex

作ってみよう①(ブロック崩し)

以上で準備は完了したので、最初のサンプルを作ってみましょう。

PC上に適当なフォルダ(pyxel-testとか何でも良いです)を作って、VS Codeで開きます(「ファイル」 > 「フォルダを開く」、またはフォルダをVS Codeのウィンドウにドラッグ&ドロップ)。

Pyxel MCPの接続(Claude Codeの場合)

続いてPyxel MCPの準備です。
(プロジェクトごとにこの手順は必要になります。)

Claude Codeの場合は、プロジェクトのルートに「.mcp.json」を置くことで Pyxel MCP を登録できます。
「ファイル」>「新しいテキストファイル」で以下をコピペ、「.mcp.json」という名前で保存してください。

{
  "mcpServers": {
    "pyxel": {
      "type": "stdio",
      "command": "pyxel-mcp"
    }
  }
}

Pyxel MCPの接続(Codexの場合)

Codexの場合は.codexフォルダを作ってその下にconfig.tomlというファイルを作成すればよいのですが、パスの定義などが初心者には難しいかもしれないので、Codex自身に以下のように頼むのが手っ取り早いと思います。

このプロジェクトでPyxel MCPを使えるようにセットアップしてください。

以下は私の場合の実行例で、.codex/config.tomlの作成と、テスト用スクリプトのmain.pyの作成まで実施してくれていました。

.codex/config.tomlの内容は以下でしたが、"command = " の部分はお使いの環境によって異なります。

[mcp_servers.pyxel-mcp]
command = "/opt/homebrew/bin/pyxel-mcp"

作らせてみる

続いてゲームの実装に進みます。
最初のサンプルは、無難にブロック崩しにしておきましょう。
以下、このサンプルはCodexで実装しています。

シンプルなブロック崩しを作ってください。

しばらくすると「できました」の報告が。
画面上に▶️ボタンがあるので、それを押して起動します。

Codexによるポンだしブロック崩し

実際に問題なく遊べました。
これだけでも初めての方なら、おお〜!と驚くかもしれませんね。

スクリーンショットを撮らせてみる

今回はPyxel MCPを入れているので、その機能も使ってみましょう。

ゲームのスクリーンショットをいくつか撮ってください。

AIがタスクを実行していきますが、ときどきPC上に一瞬Pyxelの画面が表示されます。
実際にPyxelを起動してゲームを動かし、スクリーンショットを撮っているわけです。

しばらく経って完成報告があり、見ると以下の4枚の画像を撮影していました。

Pyxel MCPが自動で撮ったスクショ。スコアが記録されているのでちょっと遊んだようだ

実際のところ、ゲームのスクリーンショットを撮ってもらって嬉しいんか?というと、まああまりそういうことはないかもしれませんが、MCPの機能のわかりやすい例として紹介しました。

Pyxel MCPについては、とりあえず「なくてもAI開発できるが、入れるほうがAI実装の質やスピードが上がる」と理解してもらえればよいと思います。
(次のサンプルでは開発過程でかなり活用されていました。)

作ってみよう②(ワイヤーフレームの3Dシューティング)

ブロック崩しよりもう少し複雑なゲームも作ってみましょう。
次のお題は「ワイヤーフレームの3Dシューティング」にします。

まだゲーム機のスペックが低く、現代のような本格的な3Dゲームが作れなかった時代に、先人プログラマーの方々は創意工夫を重ね、少ないリソースでもスムーズに動く3Dのゲームや、3Dっぽく見える擬似3Dのゲームを多数開発してきました。

そういった技法の1つがワイヤーフレームで、レトロゲームエンジンたるPyxelでこの技法を使ったゲームを制作してみます。

先に結論というか、出来上がったゲームの見栄えはこんな感じです。

どうでしょう、なかなか独特の情緒がありますよね。
AIへの指示・修正とテストプレイで1時間くらいで完成しました。

準備

ブロック崩し同様、MCP接続のためのファイルを置きます。
一度作っておけばコピペですみますね。

また、今回のサンプルではAIツールはClaude Codeにしました。

最初のプロンプト

Pyxelでワイヤーフレームを使った3Dのシューティングゲームを作りたいです。
- 1人称視点ではなく、カメラを自機の少し後ろに配置
- 自機や敵は三角形などの簡単な図形を組み合わせて表現する
- 3D感を演出するために、背景には星(1ドットの点でよい)を表示し、自機の移動に応じて背景を動かす
- 十字キーとスペースキー(弾の発射)だけで操作し、被弾するとゲームオーバーになるシンプルな仕様とする

最初のプロンプトは上記のように指示しました。
初回はAIもいろいろ情報収集したり考えたりするので、少し時間がかかります。

その間VS Codeの画面を見ていると、Pyxel MCPを活用して開発中のゲームを起動してスクショを撮ったりしているようでした。

試しに上の画面のimage.pngのところをクリックすると、まだ完了報告は来ていませんが少しずつ画面が仕上がっている様子が見られました。

しばらくして完了報告がありました。

ドヤ顔で「ゲームデザインのポイント」を語ってきたりしています。
さっそく、作成されたmain.pyの▶︎ボタンを押してテストします。

とりあえずそれっぽい見映えにはなっているのですが、左右には動けるけど上下には動けない、とか、敵が3秒に1回しか出てこないし真っ直ぐ向かってくるだけで単調すぎる、とかいろいろ問題点がありました。

そのため、修正指示してはテストして、また気になった点を指示して… と繰り返していきます。

(2回目の指示)
左右には移動できますが上下には移動できないようです。これは何故でしょうか?

(3回目の指示)
難易度が簡単すぎるので、少しずつ敵が登場する間隔を狭めるようにしてください。

(4回目の指示)
- 現状では敵がまっすぐこちらに向かってくるので、自機を移動させずに弾を撃ち続ければゲームオーバーになることがありません。そのため、(1)螺旋状に移動しながら向かってくる敵、(2)画面中央ではなく、画面の上下左右に出現する敵 などを追加してください。
- 弾の照準を表示するようにしてください。

(5回目の指示)
- 螺旋状の敵について、最初は広く螺旋を描き、徐々に螺旋の半径を縮めて、最終的には自機に向買って進むようにしてください
- 端の敵ですが、奥から出てくるためにあまり上下左右の端から出て来ている印象を受けません。上下左右の端を突き抜けて問題ないので、もっと外側から来るようにしてください。

(6回目の指示)
画面サイズを少し大きく(細かく)したいです。
現在は160x120のようなので、240x160にしてください。

(7回目の指示)
- 現状だと発射キーを押し続けることが最適解になってしまうので、3発までは連続して発射でき、3発撃つと少しの間リロード時間が発生するようにしてください。
- 左右の移動最大幅をもう少し広くしてください
- 現状では上下左右の移動限界に達したことがわかりづらいので、移動限界が見えやすい工夫をしてください。たとえば上端まで来ている時に上移動しようとすると自機の上端に水平の線を表示するといったアイデアが考えられます。

(8回目の指示)
- 移動限界線が自機の中央に表示されていますので、右の限界であれば自機の右端に表示するようにしてください。また、表示されている間、線を点滅させてください。
- リロード時間が長すぎます、半分にしてください

個々の指示の内容は細かく見てもらう必要はないのですが、特に専門的なことは言っておらず、テストして自分が感じたことを自然に伝えているだけ、ということがわかると思います。

Webにアップしよう

修正指示を繰り返して、それなりに満足の行く仕上がりになったので、他の人もにプレイしてもらえるようWebにアップします。
そこで、GitHubリポジトリを作成してPush(アップロード)します。

プログラミング未経験者であればおそらくGitHubって何?と思われるはずですが、それもAIに任せてしまいましょう。
おそらく以下のような投げかけをすれば手取り足取り教えてくれるはず。

GitHubアカウントを新しく作りたいのでやり方を教えてください。

アカウントが準備できたら、リポジトリを作成します。
リポジトリは、個々のプロジェクトフォルダを示すGitHubのフォーマットだと思ってください。

このプロジェクトをGitリポジトリにしたいです。また、リモートリポジトリも作成したいです。

上のプロンプトを入れたところ、いくつかの確認事項を挟んでGitHubにリポジトリを作ってくれました。
(リモートリポジトリとはGitHubのサーバー上のリポジトリで、対して手元のPCのリポジトリをローカルリポジトリといいます。)

そして、プレイ可能な状態にするためにさらにプロンプトを入れます。

このゲームをWeb上でプレイできるようにしてください。

かなり雑な投げ方でしたが、しばらくして以下のように返してきました。

完了しました!

プレイURL(数分後に有効になります):
https://shiromofufactory.github.io/pyxel-3d-shooter/

実施内容:

pyxel package → pyxel app2html でゲームをHTMLに変換
docs/index.html としてコミット・プッシュ
GitHub Pages を main ブランチの /docs フォルダから公開設定
デプロイには通常1〜2分かかります。

PyxelのHTML生成機能とGitHubがもつGitHub Pagesという機能を使ってWeb上でプレイ可能にしてくれたようです。

というわけで、実際に↓から遊べるようになっています。

https://shiromofufactory.github.io/pyxel-3d-shooter/

遊べます、といっても、この程度ではまだまだデモの域を超えないのですが、「手順さえ整えてしまえば、あとは日本語で指示していくだけでゲームを作ってWeb公開するところまで進める」という実感がつかめたのではないかと思います。
しかも今回の場合、画像素材の準備すらしていません。
(そのために題材を3Dシューティングにしたというのもありますが。)

なお、前述のプロンプトリストでは省略しましたが、無音だと寂しいので後からSEをつけたり、Escキーでポーズできるようにしたりとか、公開版はさらに少し追加で改修を入れています。

所感

サンプル②を作っていて思いましたが、今回はシンプルなゲームだったのでまだ良かったのですが、本格的なシューティングゲームやアクション系のゲームの場合、細かい操作感や動きのスピード、タイミング、当たり判定などなどが人間の感覚にどれくらい噛み合うかが大事なので、AI開発による調整が比較的難しいかもしれません。

RPG(ARPGではないRPG)・ローグライク・シミュレーション(ストラテジー)・ボードゲームやカードゲーム・パズル・ノベル系といった落ち着いて操作できるタイプのゲームのほうが障壁が小さそうですね。

いずれにせよ、今回の記事の範囲はほんの導入部に過ぎません。
アイデアを練り、素材やデータをしっかり準備することで、よりオリジナリティやボリューム感のあるゲームを作っていけると思います。
「これなら自分でもできそうだな」と感じてくれる人がいらっしゃったら幸いです。

いいなと思ったら応援しよう!