プログラミング知識ゼロの私が、AIと会話するだけで作った「オリジナルゲーム」#1

ゲームの概要(Introduction)

【ブラウザで遊べるPvEトレーディングカードゲーム(プロトタイプ)】

ずっと作りたかった「自分だけのカードゲーム」を、生成AI(Gemini/ChatGPT)の力を借りて形にしました。

  • ジャンル: 1人用カードバトル(PvE)
  • 開発ツール: HTML/JavaScript (コードは全てAIが執筆)
  • 画像・動画・音楽:画像はすでに作成済みのものを使用、動画はComfyUIで生成、音楽はSunoAIで生成
    (画像・動画・音楽については別ページで解説)
  • 制作期間: 約5時間

【制作の目的】

目的: 既存のアイデアとAI生成素材(画像・動画)を活用し、PC・スマホのブラウザですぐに遊べる「一人用カードバトルゲーム」のプロトタイプを作成すること。

コンセプト: 複雑な環境構築を行わず、HTML/CSS/JavaScriptのみで動作する軽量なアプリケーションを目指す。

ターゲット: 自身のゲーム企画(ルール、カード効果、演出)が実際に面白いかを確認するための、動作検証モデルの構築。

【実装した機能・技術】

使用技術: HTML5, CSS3, JavaScript (Vanilla JS) 主な実装機能:

  • ゲームサイクル: ターン制バトル、MP(マナ)管理、ドローシステム、勝敗判定。
  • 独自のバトルシステム: カードを1枚ずつ出すのではなく、複数枚を選択してから一斉に攻撃する「同時発動(Battle Start)システム」を採用。
  • リッチな演出:
    • 動画カットイン: 特定のレアカード(勇者)選択時に、攻撃前にMP4動画が再生される演出。複数枚選択時は動画が並列再生される仕様。
    • UIアニメーション: デッキから手札への配布アニメーション、ダメージ数値のポップアップ、被弾時の画面シェイク。
  • 戦略性(ロジック):
    • 属性システム: 5属性(火・水・電気・土・風)の実装と、3すくみ等の弱点・耐性計算(ダメージ2倍/半減)。
    • バフ・デバフ: 攻撃力アップや防御ダウンなどのステータス変化処理。
    • ランダム要素: 敵(ボス)の属性や、ドローカードへの属性付与をランダム化。

【AIへの指示(プロンプトエンジニアリング)】

開発はAI(Gemini)との対話形式で進行。段階的に複雑な要件を追加し、コードを生成・修正させた。

  • フェーズ1(基盤構築): 「HTMLですぐに動くシンプルなカードゲームを作って」と指示し、最小構成のMVP(実用最小限の製品)を作成。
  • フェーズ2(素材統合): 「手札の部分をこの画像に差し替えて」「敵をドラゴンの画像にして」と、自作のAI生成画像をアップロードし、UIに反映。
  • フェーズ3(仕様変更): 「ターン終了ボタンをバトル開始ボタンに変更し、選択したカードを一気に発動させたい」と、ゲーム性の根幹に関わるロジック変更を指示。
  • フェーズ4(高度な演出): 「カード選択時に動画を流したい」「動画の再生速度を調整したい」といった、マルチメディア制御の要件を実装。

【完成度・成果】

  • 到達点: * 外部ツールやゲームエンジン(Unity等)を使用せず、メモ帳とブラウザのみで、企画していたルールの9割以上を実装完了。
    • 「画像素材の反映」「動画演出」「属性計算」「UIアニメーション」までを含む、プレイアブルな完全動作版が完成。
  • 技術的な成果: * MVCモデル(データと見た目の分離)を意識した設計により、後からの機能追加(属性追加やログのレイアウト変更)にも柔軟に対応できた。
  • 今後の展望: * 今回のHTML版を「仕様書(動く設計図)」として位置づけ、将来的にはUnityを用いたネイティブアプリ開発への移行を検討できる段階にある。