claude-code.log
個人開発 — 2026.06.16

AIが働くのを眺めるのが好きすぎて、ターミナルをRPGにした話

2026.06.16 ·クオ ·約6分で読めます
AIが働くのを眺めるのが好きすぎて、ターミナルをRPGにした話

はじめに

俺は、動くものが勝手に進むのを眺めるのが好きだ。工場のラインでも、シミュレーションでも、放っておいても何かが動き続けてるやつ。ずっと見ていられる。

AIが働いてるのも、それと同じで好きだ。Claude Code や Codex が、次々とツールを叩いて作業を進めていく様子は、見てて飽きない。

ただ、限度はある。ターミナルのログが延々スクロールするのを眺め続けるのは、さすがに地味だ。

そこで、待ち時間を少しだけ面白くできないかと思って作った。普段は真面目なものばかり作ってるので、たまにはこういう、完全に無意味なやつを。

作ったのは rpgdev。Macの画面の隅で、AIがコードを書いてる間ずっと、小さなRPGが勝手に進む。自分では操作しない。コードを書いてると、横で勇者が冒険してる。それだけ。

npm にあって、Mac専用。先に言っておくと、くだらない。でも面白い。使ってみてくれ(笑)。


第1章:何が起きるのか

仕組みはこうだ。AIがツールを1回使うたびに、一定確率で敵が湧く。出れば戦闘。勇者が技を出して倒す。

技名は、使ったツールの名前そのままだ。Bash を使えば「Bash」、パッチを当てれば「ApplyPatch」。AIが今まさに叩いてるツールが、そのまま必殺技の名前として画面に出る。

AIが作る TODO リストは、そのままクエスト一覧になって画面の上に並ぶ。未着手・進行中・達成が、ちゃんとアイコンで切り替わる。

舞台も進む。作業が進むほど、草原 → 洞窟 → 城、と奥に入っていく。背景もBGMも切り替わる。

AIがサブの作業役(サブエージェント)を立てると、精霊が仲間として参戦してくる。火・地・風・水の4属性。勇者の攻撃のあとに追撃してくれる。

背景もBGMも効果音もドット絵も、全部自作だ。BGMは「草原・洞窟・城」×「探索・戦闘」で7曲ある。城のBGMはちゃんと荘厳な行進曲にした。誰も気づかないだろうけど。

要するに、自分のAIコーディングが、そのまま勝手にRPGの戦闘ログになる。眺めてるだけで、勝手に進む。


第2章:最初は「エラー=モンスター」だった

最初に思いついた案は、もっと素直だった。AIがエラーを出したらモンスターが湧く。 失敗が敵で、直すのが討伐。意味が通ってて、きれいだろ。

問題は「失敗かどうか」をどう見分けるかだ。手っ取り早く、ツールの出力に error っていう単語が入ってたら失敗、ということにした。

これが盛大に滑った。

ただ成功しただけのファイル読み込みや検索が、出力に “error” の文字を含んでるだけで片っ端からモンスター化する。実際に自分のログを数えたら、戦闘の4分の1が偽物の敵だった。

しかも皮肉なことに、作ってるソフト自体がエラー処理の話だらけで、error という単語まみれだ。開発すればするほど、偽物の敵が湧く。 自分の書いたコードに殴られてる気分だった。

単語で失敗を見分けるのは信用できない、と判断して、この方式は捨てた。今は「ツールを使うたびに一定確率で敵が出る」、ただのランダムエンカウントにしてある。RPGなんだから、それで十分だ。

ちなみに相手は二人いる。Claude と Codex、両方で動かしたかったので、両方に存在する通知だけで作る縛りにした。余談だが、Codex はツールが失敗したことすら外に教えてくれない仕様だった。だから Codex 側では、敵は反撃してこない。平和だ。


第3章:本当に苦労したのは、コードじゃなく絵だった

正直に言うと、ここまでの仕組みはそんなに大変じゃない。一番手こずったのは、画像だ。

ドット絵のキャラをAIに描かせる。これ自体はいい。難所は「同じキャラの差分」だった。傷ついた版、別の向き、待機ポーズと戦闘ポーズ。同じ見た目を保ったまま、一箇所だけ変えたい。

これがAI画像生成の、一番苦手とするところだ。「このキャラのまま、ここだけ変えて」と文章で頼んでも、相手は全部を描き直す自由を持ってる。だから毎回、微妙に別人になる。輪郭が細くなる。気づいたら、ドット絵じゃなく高解像度のイラストになってる。

最終的にこれを片付けたのは、Codex の内蔵の画像生成ツールだった。元の絵を土台として渡して、編集させる。プロンプトには毎回「レトロなドット絵・限られた色数・太い輪郭」みたいな固定の呪文を必ず入れる。出てきた絵は背景を機械的に抜いて、表示位置はピクセル単位で元の絵と突き合わせて合わせる。

リポジトリには、その過程で溜まった禁止リストが残ってる。「手で描き足すな、気に入らなければ生成し直せ」「この背景色はキャラと色がぶつかるから使うな」みたいなやつ。苦労の化石だ。でも、おかげで火・地・風・水の4体の、ドットの粒度がやっと揃った。


第4章:「ちゃんとやろう」として作った自作ツールは、空振りだった

実はもう一個、回り道をしている。

毎回手で呪文を唱えて位置を合わせるのは面倒だ。だから、ローカルで効率よく差分を量産する専用ツールを別に作った。キャラを「髪」「衣装」「武器」みたいなパーツの木に分解して、パーツ単位でプロンプトを管理して、状態を切り替えて再生成する——という、それなりに凝ったやつだ。

これが、全然ダメだった。

一貫性を出すための肝心な部分を動かすには、手元のグラフィックボード(メモリ16GB)では本命のモデルが回らない。無理やり動かしても精度が出ず、出てくる絵は使い物にならなかった。

結局、凝った自作ツールがこけて、ありものの内蔵ツールが普通に勝った。まあ、よくある話だ。

ローカル路線はちゃんと試したいので、メモリの大きいグラフィックボード(32GBの方)を発注した。今は到着待ち。来たら、再戦する。


おわりに

そんなわけで、rpgdev。AIが働いてる横で、小さな冒険が勝手に進む。敵を倒しても何ももらえないし、城まで辿り着いても何も起きない。完全に無意味だ。

リポジトリは github.com/kitepon-rgb/rpgdevnpm install -g rpgdev で入る。今はMac専用だけど、WindowsとWSL2への対応も進めてる。

くだらない。でも、コードを書いてる横で勇者が勝手に戦ってるのは、思ったより悪くない。使ってみてくれ(笑)。

# 個人開発# Claude Code# Codex# AIコーディング# 画像生成