跳到正文
zenn · 游戏开发社区· 来源· ワドメ堂·· 12 小时前AI 评分61

现役卡车司机用Claude Code制作浏览器游戏的故事

現役のキャリアカー運転手がClaude Codeでブラウザゲームを作っている話

正文 · 原文

はじめに

キャリアカー(車両を何台も積んで運ぶトラック)のドライバーをしながら、ブラウザで遊べる積み込みゲーム「僕らは陸送屋」を個人で作っています。

コードはほぼ全部 Claude Code(Anthropic のAI開発ツール)に書いてもらっています。絵・効果音・BGM・声も、別の生成AIに作らせました。

この記事では「AIに任せきりでどこまで作れたか」と、やってみて詰まった所と、効率よく制作する工夫を書きます。ゲームの中身ではなく、AIとの作り方の話です。

遊べるもの(無料・登録なし): https://wadoooomedou.itch.io/we-are-car-carriers
紹介サイト: https://bokuriku-game.netlify.app/

作っているもの

  • 2Dのブラウザゲーム(HTML5 Canvas + JavaScript)
  • 7台積みのセミトレーラーに、車を1台ずつ積んで、固定するところまでを再現
  • 床の昇降・スロープ・車の物理演算処理(段差で沈む、輪止めに当たる)なども、実車の動きに合わせて作り込み

フレームワークは使っていません。ファイルを置くだけで動くので、itch.io や GitHub Pages にそのまま置けます。

1. 役割とブランチを最初に決めた

AIは1つの会話で何でもやらせるとあちこちを書き換えて壊します。
そこで、リポジトリ直下の CLAUDE.md(AIが会話の最初に必ず読むメモ)に、役割を3つに分けて書きました。

役割 触っていいもの
開発 ゲームのコード
グラフィック 画像素材
宣伝・サイト 紹介サイト
  • 1つの会話では、1つの役割だけ
  • ブランチも役割ごと(dev/… graphics/… site/…)。
  • 役割をまたぐ頼み事は、メモ(依頼を渡す用)に番号つきで書いて渡す

会話をまたぐとAIは前のことを覚えていません。
なので作業中断時に「何をやったか・次に何をやるか」を必ずメモに書かせるルールも入れました。次の会話はそのメモを読めば続きから動けます。

2. クラウドで検証する(ここが一番詰まった)

私はスマホからしか作業しないことが多く、AIにはクラウドの環境で動いてもらっています。ここで2つ、落とし穴がありました。

裏で動かした処理が返事のたびに消える

開発用サーバーや長い検証を「裏で動かしてあとで結果を見る」ことができませんでした。AIが返事を終えるたびに、裏の処理が消えるためです。「サーバーがたまに落ちる」の正体がこれでした。

対策は、検証を1コマンドにして、前面で最後まで実行することです。

# サーバー起動 → 通しプレイ → 結果表示まで、1コマンド
bash .claude/tools/verify.sh 7

画面なしの Chromium(Playwright)でゲームを開き、7台を実際の操作で積ませて、減点やエラーがないかを見ます。数分かかる検証は、サブエージェントに前面で実行させて、メインの会話では別の作業を進めさせています。

検証スクリプトが本物のバグを隠した

車が輪止めに当たると、画面から車が消えるバグが出ました。原因は関数の中で fm(床の仕組みを持つオブジェクト)が未定義だったことです。

// seatCar の中で定義していない fm を使っていた
fm.deckDrop(...)  // ReferenceError: fm is not defined

なぜ検証で気づけなかったか。検証用のスクリプトが、グローバルに window.fm を置いていたからです。本体は fm を定義し忘れていても、グローバルを見つけて動いてしまい、エラーが隠れていました。

直し方は2つです。

  1. 本体の関数の中で fm を正しく取る
  2. 検証スクリプトは、動かす前に delete window.fm する

教訓は「検証の道具が本体の欠陥を隠すことがある」です。AIに検証まで任せていると、こういうズレに気づきにくいので、CLAUDE.md に教訓として残しました。

もう1つ、ユーザー側のデバッグ用にURLに #debug=1 というフラグを付けて、画面に車の状態と最後のJavaScriptエラーが出るようにしました。これによってスマホで再現した時のスクリーンショットから原因を探せました。

3. 「実車と同じ動き」をAIに数式で作らせる

宙段(5番と6番の間で持ち上がる短い床)の動きは、実車の写真と動画から、四節リンク(4本の棒が輪になった機構)として計算しています。

  • 車体・前の柱・フロア・後ろの柱の4本のリンク
  • 前の柱の角度を変えると、後ろの取付点が地面を滑る → 後ろの柱が縮む → 固定されたら円と円の交点で姿勢が決まる

AIには、実車の写真と、私の説明(「ここが縮む」「ここで止まる」)を渡して式を書いてもらいました。数値は私が実機で見て「もっと後ろ」「平らに近く」と直します。数式はAI、現場の正しさは私という分担です。

4. 画像・音・声は、別のAIに分ける

  • コード: Claude Code
  • 絵: ChatGPT の画像生成(下書き)+ 手直し
  • 効果音・BGM・配車担当の声: ElevenLabs

1つのAIに全部任せないほうがうまくいきました。それぞれ得意な物が違うことと、AIの利用料(週間の制限)をやりくりするためです。簡単な作業は軽いモデル(Haiku)に回して、制限をしのぐ工夫もしています。

やってみて分かったこと

  • AIに任せるほど、「何を作るか」「正しいか」を決める人間の仕事が重くなる。私の場合は、実際の現場の知識
  • メモ(CLAUDE.md・依頼箱・引き継ぎ)を書かせる習慣が、会話が変わっても作業が続く一番の支え
  • 検証は、AIの返事ではなく、実際に動かした結果で見る。しかも検証の道具自体を疑う
  • スマホだけでもここまで作れる

おわりに

ゲームはブラウザ版(ベータ)を公開中です。アプリ化(iPhone・Android)も考えています。開発の裏話は、note「ワドメ堂」に書いています。

質問や感想があれば、コメントで教えてください。

来源:zenn · 游戏开发社区 · zenn.dev