Floniks
ブログへ戻る
チュートリアル約 13 分で読めます

ピュア Vibe Coding:Claude Code と Floniks で作る AI 時代のゲーム(7 ステップ)

あなたは「何が欲しいか」を言うだけ:Claude Code がコードを書き、Floniks を呼んで素材を生成し、テストを走らせ、自律的に反復します。ゲーム開発シリーズの総覧:エージェントのために設計されたリポジトリから、ひと言でゲーム追加、素材のライブ生成、ビジュアルノベル、体系的デバッグ、ブラウザリリースまで——実際の git 履歴に基づく 7 ステップ。

著者: Elena Park
ピュア Vibe Coding:Claude Code と Floniks で作る AI 時代のゲーム(7 ステップ)

あなたは「何が欲しいか」を言うだけ。残りはすべてエージェントがやります。Claude Code はひと言を計画に展開し——リポジトリの規約を読み、コードを書き、Floniks を呼んで素材を生成し、テストを走らせ、自らバグを直し、コミットします。これは私たちのエージェント・ゲーム開発シリーズの背後にある方法論を、実際の git 履歴からステップごとに再現したものです:ひと言でパズルゲームを追加するところから、text-to-image・image-to-image・背景除去・TTS・text-to-music で組み上げたミステリー微ホラーのビジュアルノベル、そして体系的なデバッグとブラウザへのリリースまで。

本稿はシリーズの総覧です。2 本の詳細チュートリアルはすでに公開済み:前編『スクリーンショット 1 枚から、パズルゲームを作る』と後編『ひと言から、ビジュアルノベルを出荷する』。この記事は両者をつなぎ、端から端まで再現できるひとつの方法にまとめます。

まず、ここでの vibe coding の意味をはっきりさせましょう:あなたは「何が欲しいか」を言うだけ——プロンプトは書かず、ファイルも運びません。Claude Code がひと言を計画に変え、あなたの役割は「ツールを操作する人」から「方向を決め、成果を検収する人」に変わります。

3 つのパートがひとつのループに噛み合います:

役割何か担うもの
オーケストレーションClaude Code規約を読み、コードを書き、テストを走らせ、自律的に反復する
エンジンRust + Bevy + LuaRust が描画とクロスプラットフォーム、Lua がゲームプレイを担当。コマンドキューが両者を疎結合にする
素材Floniks(MCP 経由)text-to-image / image-to-image / 背景除去 / TTS / text-to-music をエージェントのツールとして公開

これはビジョン文書ではありません。以下の各ステップには実際のつまずきと実際の修正が伴います。成果は、どのブラウザでも遊べる 12 本のミニゲームコレクションです:maweis.com/rust_bevy_lua_game

ステップ 1:エージェントのために設計されたリポジトリから始める

鍵はツールの強さではなく、コンテキストをリポジトリに書き込むことです。プロジェクトルートの CLAUDE.md は人間向けの README ではなく、エージェントへのアーキテクチャ契約です:Lua がエンジンとどう通信するか、ゲームを 1 本追加する手順、何が Rust で何が Lua の領分か。ドキュメントに一度書けば、会話のたびに百回繰り返すより効きます——「エージェントが自らプロンプトを磨き上げる」の本当の意味はこれです。

次に Floniks をつなぎます。コマンド 1 行で、素材工場がエージェントのツールボックスに現れます——これが Floniks MCP サーバーです:

claude mcp add --transport http floniks \
  https://api.floniks.com/api/v1/mcp \
  --header "Authorization: Bearer mk_YOUR_KEY"

以後エージェントは list_modelssingle_taskexecute_workflow などのツールを呼べます——画像生成、ワークフロー実行、クレジット確認、結果取得まで、間で人間がファイルを運ぶ必要はありません。

ステップ 2:ひと言で、ゲームを 1 本追加する

最小のループはこうです:

あなたが言う:Queens / 数独バリアントのロジックパズルを作って。8×8 で、各行・各列・各色にポニーを 1 頭ずつ、ポニー同士は隣接禁止。

エージェントがやる:Lua ファイルを 1 本新規作成し、ジェネレーター(一意解を保証)とインタラクションを書き、メニューに自己登録し、ルール不変条件を断言するヘッドレステストを追加し、グリーンにして、コミット。

こうして生まれたのが『ポニーパレード』です。ゲームプレイのロジックはすべて 1 本の Lua ファイルの中;1 行変えて保存すれば、デスクトップのホットリロードが数秒で反映——エージェントの「書く → 検証する」ループは秒単位で回ります。しかも書かれたジェネレーターは本当に解の個数を数え、解がちょうど 1 つの盤面だけを残します。

『ポニーパレード』の実行画面:角丸タイル、太字の CJK タイトル、ハート / カウントダウン / 連勝の HUD——エージェントが参考動画からフレーム単位で再現
『ポニーパレード』の実行画面:角丸タイル、太字の CJK タイトル、ハート / カウントダウン / 連勝の HUD——エージェントが参考動画からフレーム単位で再現

このゲームの完全な開発ログ——スクショ 1 枚から出荷まで、プロンプトゼロ——は前編で:『スクリーンショット 1 枚から、パズルゲームを作る』。

ステップ 3:素材:Floniks にその場で生成させる

プログラマーがゲームを作るとき、詰まるのはコードではなく、いつもアートです。ここではエージェントが自力で解決します:実行可能なスタイルバイブル(パレット・輪郭線・構図を固定するプロンプト DNA)を読み、各素材の主語だけを埋め、Floniks の text-to-image で生成し、背景を除去して正確なピクセルにリサイズ、「同名・同サイズ」の契約で assets/textures/ に着地——ゲームはコード変更ゼロでスキンが替わります。

あなたが言う:ポニーは栗毛のボディ、クリーム色の鼻筋、なびくたてがみ、横向き、透過背景で。

エージェントがやる:プロンプトを組む → Floniks で生成 → 背景を切り抜く → 48×48 で配置 → 素材マニフェストを更新。同じラインから HUD アイコン 10 個と角丸 UI タイルも生まれました。

生成された 15 秒のゲームプレイ広告さえこのラインの産物です:実素材をキーフレームにレンダリングし、Floniks の text-to-music(Lyria 2)でスコアリング。

ゲームプレイ広告のキーフレーム:指がポニーの配置をデモし、競合マスに ✕ が自動で付き、レベルクリアを祝う——どの要素もゲーム内の実素材
ゲームプレイ広告のキーフレーム:指がポニーの配置をデモし、競合マスに ✕ が自動で付き、レベルクリアを祝う——どの要素もゲーム内の実素材

ステップ 4:磨き上げる:フィードバック駆動の反復

初版はたいてい「動くが粗い」。気に入らない箇所をスクショで送り返せば、エージェントが直します。実際にあった 1 ラウンド——フィードバックは「タイルがのっぺりした色ブロック、フォントの丸みが足りない、カメラ演出を足して」——が 4 件の並行修正になりました:

  • テクスチャ:8× スーパーサンプリングの新ジェネレーターで、染色可能な角丸タイル、太字の ✕、カプセル、カードを産出。
  • エンジン:新 API game.zoom()——正解配置で軽いプッシュ、ミスで重いプッシュ、クリアで強くズームインして跳ね返る。
  • フォント:Noto Sans SC Bold のサブセットに交換し、欠けグリフがないか 1 文字ずつ検証。
  • ジェネレーター:8×8 では盲目的なシャッフルで一意解の盤面が見つからず、山登り法による精錬に切り替え——最初のレベルは 237 解からちょうど 1 解に収束。

最後の項目に注目してください:これは本物のバグで、テストがその場で捕まえ、修正を強制しました。テストはエージェントの目です——画面が美しいかは見えなくても、「一意解」という不変条件が破られていないかは見えます。

ステップ 5:より重い題材へ:本格的なビジュアルノベル

同じ方法は、はるかに重い題材にも耐えます。『真夜中のギャラリー』はミステリー微ホラーの尋問ビジュアルノベル:名画《凝視者》がギャラリーから盗まれ、あなたは 3 人の証人を順に尋問し、聞き方を選び、表情の変化を読み、最後に犯人を告発します。このステップで Floniks のマルチモーダル能力を総動員しました。

証人選択画面:3 人の証人が横並び、タップで前進 + シェイク + ズーム——透過切り抜きの立ち絵が真夜中のギャラリー背景にきれいに合成される
証人選択画面:3 人の証人が横並び、タップで前進 + シェイク + ズーム——透過切り抜きの立ち絵が真夜中のギャラリー背景にきれいに合成される

4 つの能力、1 本のチェーン:

  • 立ち絵——text-to-image + image-to-image:キャラクターごとに text-to-image のベース画像を 1 枚、そこから image-to-image で平静 / 緊張 / 恐怖の 3 表情を派生——同じ顔、違う感情。さらに背景除去で透過立ち絵に。
  • 声——TTS、1 人 1 音色:実際に異なる 3 つの女性声を 1 人ずつ固定し、基本周波数が各々異なること(291 / 202 / 158 Hz)を音響的に検証。
  • 雰囲気——text-to-music:Lyria 2 が生成したダークなアンビエントループを対話の下に敷く。
  • 物語——分岐対話ツリー:タイプライター字幕と選択肢分岐;核心の手がかりを突けば立ち絵が恐怖の表情に切り替わり、甘い聞き方でははぐらかされる。

3 人の証人の平静表情の立ち絵:同じパイプラインがキャラクターの一貫性を保証——ベース画像が顔を固定し、image-to-image が表情を派生
3 人の証人の平静表情の立ち絵:同じパイプラインがキャラクターの一貫性を保証——ベース画像が顔を固定し、image-to-image が表情を派生

《凝視者》のシーン:クリーンなギャラリー背景を image-to-image で不穏なバリアントに——壁の一枚の絵があなたを見つめている。微ホラーの空気は、すべて生成
《凝視者》のシーン:クリーンなギャラリー背景を image-to-image で不穏なバリアントに——壁の一枚の絵があなたを見つめている。微ホラーの空気は、すべて生成

完全なビルドの記録——「3 つの声が実は同じだった」バグが印象ではなく計測値で暴かれた経緯を含めて——は後編で:『ひと言から、ビジュアルノベルを出荷する』。

ステップ 6:体系的な磨き込み:本物のデバッグループ

Vibe coding はバグが出ないという意味ではありません。あなたが症状を報告し、エージェントが根本原因を見つけるという意味です。このプロジェクトで実際に起き、それぞれ体系的に解決された 3 件:

あなたが報告するエージェントが原因を突き止めて直す
Web 版で音が鳴らないブラウザは AudioContext を suspended で初期化し、初回インタラクションまで解除しない——ページ初回クリックで全オーディオコンテキストを resume
立ち絵の背景が他のキャラクターを隠す立ち絵に背景が焼き込まれていた → 9 枚すべて Floniks の背景除去で透過に;さらにブラウザキャッシュが旧画像を返した → ファイル名を変えてキャッシュを回避
音声トラックが積み重なって重なるチャンネルモデルの欠如 → エンジンを 3 チャンネルに再構築:SFX は重ねられるがフレーム内で重複排除、Music は同名トラックを再起動しない、Voice は単一の対話チャンネル(新しいラインが古いラインを止める)

どの修正にも回帰テストか検証が伴いました。ヘッドレススイートは現在 13 万+ 件のアサーションを備えます——これがエージェントが単独で自信を持って反復できる理由です。

ステップ 7:出荷:ブラウザでそのまま遊べる

同じ Rust クレートが 3 通りにコンパイルされます:デスクトップ、iOS、そして WebAssembly。メインブランチへのマージで GitHub Pages に自動デプロイ——リンク 1 本、どのモバイルブラウザでも遊べて、ダウンロード不要。

git push        # main へマージ
# → CI が wasm をコンパイル → GitHub Pages へ公開 → 本番稼働

ブラウザで遊ぶ · ソースを読む

なぜこの方法が成り立つのか

  • コンテキストはリポジトリに住む。 CLAUDE.md、スタイルバイブル、素材マニフェストがエージェントのシニアアーキテクト。規約は一度書けば永久に効く。
  • テストはエージェントの目。 画面は見えなくても、不変条件は見える。機械が検証できる「正しさ」があってこそ、自律的な反復は安全になる。
  • Floniks は素材工場。 MCP 経由で、生成は普通のツールになる。モデルのアップグレードは id を替えてリプレイするだけ——アーキテクチャは動かない。
  • あなたが出すのは意図と検収だけ。 プロンプトも書かず、ファイルも運ばない。方向を決めて成果を検収する;計画・コード・素材・テストはエージェントのもの。

ひとりの人間とひとつのエージェント:夜にひと言残せば、朝にはグリーンのテスト付きコミットの列を受け取る。これが私たちの考える、AI 時代のゲーム開発のかたちです。

質問と回答

この方法における「vibe coding」とは何を意味しますか?

意図と検収基準を平易な言葉で伝えれば、残りはエージェントの仕事です:Claude Code がひと言を計画・コード・Floniks 生成呼び出し・テスト・コミットに展開します。あなたの役割はツールの操作から、方向決めと成果の検収に変わります。

Floniks はこのパイプラインに具体的に何を提供しますか?

MCP 経由で接続された Floniks は、エージェントのツールボックスの中の素材工場になります:text-to-image、image-to-image、背景除去、TTS、text-to-music。成果物はゲームの素材フォルダに直接着地し——人間がファイルを運ぶことはありません。

プロンプトを書く必要はありますか?

ありません。人間が提供したのは一行の意図とスクリーンショットのフィードバックだけ;Floniks 向けの生成プロンプトも、エンジン作業のタスク分解も、エージェント自身が組み立てました。

これは再現できますか?

できます。エンジンは GitHub の rust_bevy_lua_game リポジトリでオープンソース、完成したコレクションは WebAssembly でどのブラウザでも遊べ、Floniks を Claude Code につなぐのは claude mcp add コマンド 1 本とあなたの API キーだけです。

自分のビルドループに素材工場をつなぎたくなりましたか?Floniks MCP サーバーから始めて、2 本のチュートリアルへ:前編でパズルゲームを作り、後編でビジュアルノベルを出荷します。

タグ

#tutorial#vibe-coding#claude-code#mcp#ai-game-development#game-asset-generation#agentic-development#webassembly

関連記事

Claude Code と Floniks で Vibe Coding ゲーム開発 | Floniks