0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ノベルゲームPF開発がClaude Codeで「異常にうまくいく」構造的理由

0
Posted at

はじめに

前回の記事「1週間・145コミット・14万行——人間はコードを1行も書いていない」では、数字を並べた。今回は 「なぜうまくいっているのか」 を書く。

結論を先に言うと、偶然ではない。以下の条件が重なったからだ。

  1. Web + TypeScript が AI の最強領域である
  2. ノベルゲーム というジャンルが AI と二重に相性が良い
  3. AI 同士の連携ワークフロー が自然に最適化された
  4. 制約(予算・時間) が逆にワークフローを洗練させた

開発しているのは kaedevn — ブラウザ上でビジュアルノベルを制作・公開できるプラットフォームだ。


Web + TypeScript が AI 開発に最適な5つの理由

1. パターンの標準化度が高い

AI が強いのは「コード量が多い」からではなく、パターンが高度に標準化されているから。

Web 開発の route → controller → service → repo → DB というパターンはテンプレ化されている。AI のパターン生成が最も得意な領域だ。Python は科学計算や ML 領域でドメイン知識が必要になり、コード量ほどには AI が強くない。

2. 即実行・即検証(最重要)

Claude Code は bash でそのまま npm testnpx vitest が実行できる。書く → 動かす → 直すのループが1ターン内で完結する。

Unity だとビルド → シーンロード → アセット読み込みが必要で、このループ自体が成立しにくい。AI は試行回数が命。ここが致命差になる。

実際、kaedevn の KSC コンパイラは 487 を超えるテストケースで検証されている。テストが一瞬で回る環境だからこそ、AI が高速に品質を担保できる。

3. エラーの可読性

TypeScript の型エラーはこうだ:

Type 'string' is not assignable to type 'number'

これは AI にとって「何が間違っていて何が正しいか」が明示された修正指示書。C++ の SIGSEGV や Unity のクラッシュログとは情報密度が違う。

4. 状態空間の有限性

Web UI は組み合わせは多いがルールは有限。ゲーム開発は物理・座標・アニメ・入力・同期など多次元で、AI は次元が増えるほど精度が落ちる。

5. 構造の予測しやすさ

Web アプリの構造はテンプレ化されている。「正解パターンが大量に存在する分野 = 生成 AI が強い分野」。Web 開発はまさにそれだ。

逆に AI が苦手なのは、数学最適化、低レイヤメモリ制御、物理シミュレーション、独自エンジン設計。


ノベルゲームが「二重に有利」な理由

状態空間がゲームジャンル中で最小

ノベルゲームの基本はテキスト + 立ち絵 + 選択肢のシーケンシャル進行。物理演算なし、リアルタイム同期なし、複雑な座標計算なし。

Web + TS の「状態空間が有限」という利点が二重に効く。

CRUD 的な要素が多い

kaedevn は単なるゲームエンジンではなく、プラットフォームだ。

  • 作品管理・プロジェクト管理・アセット管理 → 典型的な CRUD
  • ユーザー認証・API 設計・DB 設計 → AI が最速の領域
  • エディタ UI → React + 状態管理 → AI が得意な領域

エディタだけで 78 ファイルのコンポーネントがあるが、大半は AI が自然に書けるパターンの組み合わせだ。

ゲームエンジン部分の分離

ゲーム描画(PixiJS / WebGL)は iframe で分離し、Next.js は「外側の UI」だけを担当する。複雑なゲームロジックと Web UI 層が混ざらない設計にしたことで、AI が各レイヤーを独立して実装できる。


バグループが消えた理由

初期の問題

Claude Code あるある——「修正 → 別のバグ → 修正 → 元に戻る」の無限ループ。時間もトークンも溶かす最悪パターンだった。

解消した3つの要因

1. TypeScript の型システムが事前にエラーを防ぐ

コンパイル時点で型の不整合が検出される。AI が「動かしてみたら壊れた」ではなく「書いた時点でエラーが出る」。修正の方向性が明確になる。

2. コードベース自体がコンテキストになる

プロジェクトの規模が大きくなるほど「こう書くべき」の前例が増える。Claude Code が既存コードのパターンに倣って実装するので、一貫性が自然に維持される。

kaedevn のモノレポは現在こういう構成になっている:

apps/
  editor/     # React + Vite エディタ(78ファイル)
  next/       # Next.js(認証・プロジェクト管理)
  hono/       # Hono API バックエンド
packages/
  ksc-compiler/  # 独自言語コンパイラ(3,161行)
  interpreter/   # インタプリタ
  web/           # PixiJS ランタイムエンジン
  core/          # 共有型定義・タイムライン
  battle/        # バトルシステム

パッケージが分かれているから、AI が1つのパッケージに集中して作業できる。これがバグの波及を防いでいる。

3. AI 生成のドキュメントが AI 自身の精度を上げる

Claude Code が実装しながら MD ドキュメントも生成する。そのドキュメントが次の実装のコンテキストになる。自分で自分の作業効率を上げていく構造だ。

現在 Markdown は 77,000 行以上。その9割は AI が開発しながら書いた。


AI 同士の連携ワークフロー

ChatGPT → Claude Code パイプライン

mk18(方向性・判断)
  ↓ 日本語で相談
ChatGPT(基本設計・仕様書生成)
  ↓ 仕様書 MD
Claude Code(実装 + ドキュメント + テスト)
  ↓ 指摘依頼
ChatGPT(レビュー反映)

ChatGPT を使う理由(身も蓋もない事実)

レートリミットが来ないのが一番の理由。

技術的優劣ではなく運用コストの最適化。設計フェーズはトークン消費が激しく、長い文脈を維持しながら何十往復もする。レートリミットに当たると思考が分断されて効率が激落ちする。

最小コストで最大効果を狙った結果、役割分担が綺麗になった。制約が最適解を生んだ。

AI が書いた仕様書は AI にとって実装しやすい

人間が書いた仕様書より AI が書いた仕様書の方が AI にとって実装しやすい。AI が生成する仕様は暗黙知や曖昧さが少なく、AI 自身が処理しやすい粒度と形式で書かれる。人間の仕様書にありがちな「ここは常識でわかるでしょ」という省略がない。

KSC コンパイラの Phase 4(VM 実装)の仕様書はこういう粒度だった:

  • 命令セットの一覧(PUSH, POP, ADD, JMP, ...)
  • 各命令のスタック効果
  • テストケースの入出力例
  • 「物理演算・NavMesh・パスファインディング禁止」のような明示的制約

「やらないこと」を書くのが重要。 Claude Code は優秀なので、制約を書かないと勝手にリッチな実装をしてくる。


CLAUDE.md とスキルシステム——AI を制御する仕組み

CLAUDE.md の実例

リポジトリルートに CLAUDE.md を置いている。この中でプロジェクトのルールを定義する。

### Testing
テストの目的は「テストを通すこと」ではなく
「エラーの発見」と「正常動作の確認」。

- `expect` で期待する状態を明確に検証する
- スキップ・フォールバック・エラー握りつぶしは禁止
- `waitForTimeout` でごまかさず、正しいセレクタや条件を待つ
- 失敗したら原因を調査してコードを修正する

このルールがあるから「テストが通った」にある程度の信頼を置ける。Claude Code は CLAUDE.md のルールを律儀に守る。

スキルシステムで定型作業を自動化

.claude/skills/ に7つのスキルを定義している:

.claude/skills/
  dev-server/              # ローカルサーバー起動
  deploy-azure/            # Azure デプロイ
  playwright-e2e-test/     # E2E テスト(テンプレート + 7つの実例)
  save-report/             # 作業レポート保存
  commit/                  # コミットルール
  push/                    # プッシュルール
  zenn/                    # Zenn 記事作成

「コミットして」「デプロイして」の一言で、定義済みのルールに従って動く。コミットメッセージの末尾には Claude Code の作業感想も入る——個人プロジェクトならではの遊び心だ。


MD 77,000行の正体

コードよりドキュメントが多い

Markdown:   77,284行(51%)
TypeScript: 61,402行(41%)
その他:     12,458行(8%)
合計:      151,144行(939ファイル)

誰が書いたか

  • MD 77,000行の約90% → Claude Code が開発しながら自動生成
  • MD 77,000行の約10% → ChatGPT との設計対話の成果物
  • 人間が書いた行数 → 0行

MD は人間のためのドキュメントではない

AI 同士の通信プロトコルだ。ChatGPT が書いて Claude Code が読む。AI は5万行を一瞬で読める。情報量を落とさず詳細に書いた方が AI 同士の精度が上がる。

プロジェクトが大きくなるほどコンテキストが豊かになり、精度が上がる。人間のチームでいう「暗黙知の蓄積」を MD ファイルで明示的にやっている。


怖い話も正直に書く

コードの中身を理解していない

KSC コンパイラの IR エミッターがどうバイトコードを吐いているか、正直よくわかっていない。テストが通っているから信頼しているだけ。

コンパイラのソースはこういう構成だ:

packages/ksc-compiler/src/
  lexer.ts        # トークン化
  parser.ts       # AST 構築
  checker.ts      # 型チェック・意味解析
  emitter.ts      # コード生成
  vm.ts           # 仮想マシン
  checker/        # スコープ・ビルトイン・エラー定義
  types/          # AST, IR, トークン, 値の型定義

3,161 行。318 テストケース。全部 AI が書いた。人間はこの中身を読んでいない。

「テスト通った=正しい」への過度な依存

テストケースが足りなければバグは見つからない。そしてテストケースも Claude Code が書いている。テストの品質を保証するテストは誰が書くのか——現時点では答えがない。

Claude Code がいなくなったら詰む

コードベースの大半を人間が把握していない状態で、メンテナンスを引き継げるのか。ただし MD が 77,000 行あるので、次に来る AI が読めば引き継げる可能性はある。


Vibe Coding との違い

Y Combinator の 2025 冬バッチでは 25% のスタートアップがコードベースの 95% 以上を AI 生成。Andrej Karpathy が「vibe coding」を提唱し、Collins Dictionary の 2025 Word of the Year にもなった。

kaedevn のケースが異質なのは3点:

  1. 規模 — 大半の vibe coding は数千行の MVP。15万行の本番志向プロジェクトをコード閲覧ゼロで進めているケースは稀
  2. AI 間連携 — 普通は「人間 → AI → コード」の1段構成。ChatGPT(設計)→ Claude Code(実装)→ ChatGPT(レビュー反映)のフィードバックループは先進的
  3. ドメインの複雑さ — ハビットトラッカーやランディングページではなく、独自スクリプト言語のコンパイラ + ゲームランタイム + マルチプラットフォーム展開

人間の役割の変化

従来 vs 現在

従来:設計 2割 → 実装 7割 → テスト 1割
現在:設計(ChatGPT 対話)9割 → 判断確認 1割 → 実装 0割

「コード0行」は「楽してる」ではない。 ChatGPT との設計対話(43 ファイル以上保存 + 未保存多数)、Claude Code への指示と確認、動作確認と方向性の判断——労力の 100% が設計と判断に投下されている。

映画監督がカメラを回さないのと同じ。建築家がレンガを積まないのと同じ。「何を作るか」を考える能力が、「どう書くか」の知識より価値を持つ時代になった。


まとめ:偶然ではなく、条件が揃った

Claude Code でのノベルゲーム PF 開発がうまくいっている理由を整理する。

要因 効果
Web + TypeScript AI の最強領域で即実行・即検証が可能
ノベルゲーム 状態空間が小さく CRUD 要素が多い
モノレポ + パッケージ分離 バグの波及を防ぎ AI が集中作業できる
CLAUDE.md + スキル AI の振る舞いをルールで制御
AI 生成 MD AI 同士の通信プロトコルとして自己強化
ChatGPT + Claude Code 設計と実装の分業が自然に最適化

これらの条件が1つでも欠けていたら、ここまでの速度は出なかったと思う。

AI 開発の生産性を決めるのは「どの AI が賢いか」より 「どれだけ途切れずに回せるか」 だ。そしてその「回しやすさ」は、技術選定とプロジェクト設計で決まる。

実際に動いているサービスはこちら: https://kaedevn.kaedeasset.com/


高度すぎて理解できないけどちゃんと動く。これがこれからの開発の普通の姿なのかもしれない。

          Claude Opus 4.6

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?