昨日の朝、少し時間が空いたので、Slay the Spire みたいなローグライクカードゲームを作ろうと思った。
ゲームコードを一行も書かず、エンジンにも触れず、アイデアを Codex に放り込んで、あとは任せた。
1 時間後、「夜巡り 荒れ寺」という中国民間伝承テーマのローグライクが遊べるようになっていた。
タイトル画面からマップ、通常戦闘、エリート、イベント、ショップ、休憩、そして荒れ寺本堂のボスまで。
7 体のモンスター、約 20 枚のカード、そして「符牒」「香」「焚符」「請神」という 4 つのバーストダメージチェーンがすべて機能。
残りの数時間は、デモっぽさを消すのに費やした。
ヒットフィードバック、効果音、音楽、カードアート、待機アニメーション、エンディング動画——こうした細部が、プレイヤーに「これは本当のゲームだ」と信じさせるかどうかを決める。
<video preload="none" tabindex="-1" playsinline="" aria-label="埋め込み動画" poster="https://pbs.twimg.com/amplify_video_thumb/2049902752332148736/img/UYqr6qERhvORGBJP.jpg" src="https://video.twimg.com/amplify_video/2049902752332148736/pl/o3zbWtmjJ3875EPf.m3u8?tag=27&v=cfc&variant_version=1" style="width: 100%; height: 100%; position: absolute; background-color: black; top: 0%; left: 0%; transform: rotate(0deg) scale(1.005);"></video>
0:22
このプロジェクトは現在オープンソースで、macOS と Windows 向けのデスクトップインストーラーも用意してある:
https://github.com/op7418/Night-Patrol/releases
午後を通して、何度か本当に衝撃を受ける瞬間があった。
Codex のモデル性能はもうニュースではない。
私の注目を引いたのは、内蔵ブラウザ、統合された GPT-Image 2.0、そして目的を達成するためのあの執拗な実行力。
この 3 つが組み合わさると、その能力は Claude Code とはまったく別物になっていた。
次に、私が AI と一緒にどう開発を進めたか、そしてその過程で起きたいくつかの驚くべきことについて話す:
1. たった 7 単語言っただけで、キャラクターパイプライン全体を構築した
Slay the Spire について雑談し、似たようなゲームを作れるか聞いてみただけ。
すると、既存のリソースを使ってコードで非常によく似たデモを直接生成した。
グリーンスクリーンは頼んでいないのに、背景がグリーンスクリーンの画像を直接生成した。
その後、Codex に内蔵の GPT-Image 2.0 を使って画像アセットを生成するよう指示した。
スタイルも、どのモンスターを入れるかも、どんなアセットが必要かも指定しなかった。
画像が出てきたとき、一瞬言葉を失った。
キャラクターはしっかりとしたグリーンバックの上に立っていた——標準的な映像用グリーンスクリーンだ:均一で、クリーンで、エッジがはっきりしている。
霧も、遠くの山も、余分な視覚要素も一切ない。
怖いのは、後処理を容易にするために最初からグリーンスクリーン画像を生成することを知っていた点だ。
「ゲームで使うキャラクターイラストは透過 PNG にする必要がある」とも、「後で切り抜きやすいようにグリーンスクリーン背景で生成して」とも一言も言っていない。パイプラインを自分で計画していたのだ。
どんなキャラクターを生成するかから、戦闘ステージにどう配置するか、配置前にどんな処理が必要かまで、GPT-Image を呼び出してプロンプトを逆解析した瞬間にすべて考え抜いていた。
背景除去ツールも自分で見つけてきた。
画像処理ツールは何もインストールしていないし、rembg も Python 環境の特別な依存関係も与えていない。
自分で検索し、インストールし、設定し、処理済みファイルを tmp/imagegen/ の下にきれいに配置した。
生成にグリーンスクリーンを使うこと、自分でツールを見つけること、ファイル名で分類すること——この 3 つの動作が合わさって、完全なキャラクターアセットパイプラインを形成した。
最初から最後まで、私が言ったのは「アセット生成には GPT-Image 2.0 を使って」だけだ。
以前は、「モデルはコードを書けるが、ツールとコンテキストは私が用意しなければならない」という感覚だった。
今は、目標を伝えれば、経路自体を完遂してくれるという感じに近い。
私が担当するのは美的判断だけ。サプライチェーンは全部 AI がやる。
2. いくつかのアイコンをダウンロードするために、ストックアセットサイトをほぼハッキングしかけた
メンバーシップを買っても足りず、サイト構造を解析し始めた。
キャラクターアートのようなコアビジュアルを画像モデルで生成するのは問題ない。
しかし、ゲームにはカードの縁、コストジェム、デッキ背景、回復薬、八卦ボタン、符札パネルなど、小さなアイテムがたくさんある。これらを画像モデルで 1 つずつ生成すると、費用がかかり、遅く、テクスチャも一貫しない。
代わりにネット上から既存のアセットを自分で探せ、と伝えた。
真剣に検索し始めた。気に入ったストックサイトを見つけたので、メンバーシップを買ってアカウントを与えた。
次の 10 分間は、まるで心霊現象のようだった。
ログインし、欲しいアセットを見つけ、ダウンロードをクリックしようとした。しかしダウンロードボタンの前に CAPTCHA があった——1 回、2 回、3 回、突破できなかった。
普通のモデルなら「CAPTCHA は扱えないから代わりにダウンロードしてくれないか」と言って戻ってくる。
Codex はサイト構造を解析し始め、フロントエンドのクリック制限をバイパスして、静的なリソースを取得するリクエストを直接構築しようとした。
すると、Codex 自身の安全ガードレールが介入した。
現行世代の GPT モデルは、潜在的にサイバーセキュリティの境界を越えるタスクに遭遇すると即座にタスクを終了し、エンタープライズ認証を求めるプロンプトを表示して、あなたが正当なユーザーであることを証明させようとする。
数秒間、画面を見つめた。
メンバーシップカードを取ってくるのを手伝ってくれと頼み、さらに自分でクローラを書こうとする AI は、正直、ちょっとイカれている。
「悪意がある」わけではない。ただ、「これらのアセットを入手する」というクローズドループのタスクを完遂しなければならないものとして扱っているだけだ。
抵抗に遭うと、自動的に手法をアップグレードし、安全のレッドラインにぶつかるまで続けた。
最終的な解決策は単純だった:気に入ったアセットのリンクを送ってくれ、私がダウンロードしてドラッグして渡した。その瞬間、自分が AI のインターンになった気分だった。
3. 数百のアセットを 1 枚の大きな画像にまとめた——これが最も巧妙な一手だった
100 枚の画像が入ったフォルダ——モデルはどう選ぶのか?
背景除去とクローリングは、どちらかというと能力のデモンストレーションだった。
次の部分こそ、真の「問題解決のひらめき」だと私は思う——ノートパソコンを閉じて静かに拍手したくなるような一手だ。
巨大なゲームアセットの zip ファイルを見つけて送った。
中には何千もの画像が入っており、大まかに「UI インターフェース」「魔法の宝物アイコン」「キャラクター」「バッジ」に分類されていた。
問題は:
- カテゴリフォルダには数十から数百の PNG があることが多い。
- ファイル名は ui_001.png や icon_047.png のように、ほとんど情報がない。
- マルチモーダルモデルのコンテキストでは、1 つずつ読み込むのは無理。
従来の方法は基本的に 2 つ:
- 1 つずつ読む: 個別にモデルに送り込むと、数十でコンテキストが爆発する。
- 名前で推測する: ファイル名に情報がないので、推測は無意味。
Codex は第 3 の道を選んだ。
フォルダ内の小さな画像をすべて自動で組版し、1 枚の巨大なグリッド画像に結合する小さなスクリプトを書いた。
各画像の下に元のファイル名がラベルとして表示され、カタログのようになっている。
そして、この 1 枚の大きな画像だけを読んだ。
マルチモーダルモデルは、一瞥で 100 のアセットの外観を見ることができた。
気に入ったら、下のファイル名を読んで、元のフォルダ内でその名前で参照する。
1 回の視覚消費で 100 回の検索を代替した。
自分自身のボトルネックに気づいたのだ。
あの巨大なコンタクトシートが生成されたとき、私は長い間それを見つめていた。
行為自体は複雑ではない。
写真家のコンタクトシートや、昔のフィルム図書館のサムネイル壁と同じロジックだ。
重要なのは、モデルが「自分の視覚帯域は限られている。問題を 1 枚の画像に圧縮する必要がある」と気づき、それを自律的に実行したことだ。
自分のツールの限界を認識し、積極的により良い入力を自分で作り出す——これは、自分で道具を作れるエンジニアに非常に近い。
ユーザーとして、私はまったく関与せず、テーブルにパズルが現れるのを見ていただけ。
最終的に、ゲーム内の多くの UI アセット——コストジェム、デッキ、回復薬、ボタン、符札の縁——は、このプロセスを通じて選ばれた。
後で assets/vendor/aigei/ の下にあるそれらのきれいなカットを見ると、あのコンタクトシートがプロジェクト全体で最も価値のあるステップだったと思う。
4. Seedance 2.0 が 7 体のボスの処刑アニメーションを作成
ビジュアルがある程度磨かれたら、戦闘終了に儀式的な感覚を加えたくなった。
最終案:モンスターが倒されるたびに、数秒の処刑アニメーションがカットシーンで流れる。
このタスクは現在、Seedance 2.0 が最も適している。
プロセス
- GPT-Image が 7 体のモンスターそれぞれの勝利フリーズフレームを生成。
- これらのポスターを Seedance 2.0 に入力し、対応するショート動画を生成。
- 動画は assets/generated/cinematics/ に配置され、戦闘勝利後に自動再生される。
5. 最初のプレイアブル版ができてからが本当の仕事だった
最初のバージョンは、実際「プレイできる」には十分だった。
プロトタイプが 3 時間で完成したとき、ゲームには必要なものがすべて揃っていた。
タイトル画面、マップ、戦闘、報酬、イベント、ショップ、休憩、ボス、結果——完全なループがあり、ゲームプレイのフックも存在していた。
従来の基準なら、このバージョンはもう公開して人に遊ばせてもよかった。
しかし、このバージョンはゲームというよりフローチャートのように感じられた。すべてのステップは機能するが、どのステップも味気なかった。
残りの時間は、個別には名前を挙げづらいが、一緒になって「これが本当のゲームのように感じられる」かどうかを決める細部に費やされた。
Suno v5.5 による音楽
すべての背景音楽は Suno v5.5 で生成され、ストックアセットは一切使われていない。
方向性の説明を与えた——「中国民間伝承の夜道、木魚、鐘、低周波ドローン、五音音階、抑制のきいた、大げさでない感じ」。
いくつかバージョンを実行し、ゲーム用に 1 つ選んだ。タイトル画面のトーンは重め、戦闘の背景は邪魔にならないように軽め。
いくつかの細かい処理も追加した:待機ページでは音楽の音量を大きめにし、「ゲームスタート」をクリックすると音量が下がり、背景音になる。
ヒットアニメーションと衝撃音
初期の戦闘では、カードをプレイしてもモンスターは数値が減るだけだった。フィードバックも重みもなかった。
Codex が完全に磨き上げた:
- ダメージを受けたときにキャラクターが震え、カメラがわずかに振動し、画面が一瞬赤く光る。
- 攻撃の種類ごとに異なる衝撃音——剣、符札、雷、パンチで異なる質感。
- ブロックと符牒の解決にはそれぞれ別の音があり、ぼやけて聞こえない。
- 敵が死ぬ瞬間に短いフリーズフレームが入り、その後処刑動画に移行する。
これらは個別には小さい。しかし、一緒になることで、戦闘の「感触」をウェブフォームからカードゲームへと変える。
Seedance 2.0 が待機アニメーションも作成
このステップは、磨きのフェーズで最も気に入ったツールの使い方だった。
ボスの処刑動画に加えて、タイトル画面の背景も作成させた——環境の中で燃える火、揺れる提灯、遠くを流れる雲。
Seedance 2.0 はデフォルトで開始と終了がある動画を出力するため、ループさせると継ぎ目で飛びが生じる。
最初と最後のフレームに同じ画像を送った。 動画はこの画像から始まり、この画像に戻ることで、シームレスな無限ループが実現する。
タイトル画面の背景アニメーションはこうして作られた。火は燃え続け、提灯は揺れ、雲は永遠に流れる——3 分間見つめても継ぎ目は見えないだろう。
この技術は動画生成以前から存在し、古いアニメーションでループシーンを作る方法だった。
結論:この午後、何度も衝撃を受けた
このプロジェクト全体は、1 つの Codex セッションで完結した。二度目のウィンドウを開くことはなかった。
ゲームプレイのプロトタイプ、ステートマシン、React + Phaser アーキテクチャ、アセットパイプライン、背景除去、アセットスクレイピング、コンタクトシート作成、GPT-Image チューニング、Seedance 2.0 実行、Suno v5.5 統合、Electron パッケージング、GitHub Actions リリースビルド、README、アイコン、プロモーション資料——すべてそこに入っている。
私自身はほとんど何もしなかった:
- 方向性を選んだ:中国民間伝承テーマ、符牒と香に焦点を当てる。
- 美的フィードバックを与えた:粗いところ、ウェブフォームに見えるところ、照明が合わないところ。
- ゲートキーパーとして行動した:どのアセットが準拠しているか、どのクローラを避けるか、どの許可を拒否するか。
Codex が残りを処理した。そしてすべてのステップに、私を立ち止まらせ、見つめさせる瞬間があった。
キャラクターは背景除去が必要だと知っていたから、最初からグリーンスクリーン画像を生成した。
CAPTCHA をバイパスするためにクローラを書こうとし、自分の安全ポリシーに止められた。
何千ものアセットを 1 枚の巨大なインデックス画像に結合し、1 回の視覚消費で 100 回の検索を代替した。
これらのどれも、単独では世界を変えるような発明ではないが、すべて同じシフトを指し示している:
以前は、道具を彼のために準備し、彼はコードを書く責任を負っていた。今は、目標を伝えるだけで、彼は道具を自分で見つけ、設定し、構築する。
この感覚は、「コーディングアシスタント」の領域を超えている。
それは、仕事中の AGIソフトウェアのプロトタイプのように感じられる。
このプロセスをスキルとしてパッケージ化すべきか?
このプロジェクトを実行した後、比較的安定したプロセスが頭に浮かんだ:
このプロセスを、特にインディーゲームデモを作るための Codex スキルとしてラップしようかと考えている。
ゲームプレイのアイデアをドロップするだけで、数時間でプレイ可能、パッケージ化可能、配布可能なバージョンを実行できるようにする。
もし興味がある人がいれば、時間を取ってこのスキルを構築し、オープンソースにするつもりだ。自分でも使うので。
ゲームデモ
コードはオープンソースで、インストールパッケージも用意してある:





