シューティングゲームの改良

生成AI(ChatGPT、Claude、Gemini等)に指示を出して、ブラウザで遊べる縦スクロールシューティングを作成する。Wave制・ボス戦・パワーアップ・BGMを段階的に追加して、本格的なゲームを完成させる。プログラミング経験は不要。「何を作りたいか」を言葉で伝えることがこの課題のすべてである。

01 — goals
この課題で身につく力
  1. 頭の中を言葉にする力 漠然としたイメージを、AIが理解できる具体的な言葉に変換する。仕様書・企画書・依頼文で繰り返し使う、一生ものの能力。
  2. 動かしながら考える習慣 完璧な計画を立ててから始めるのではなく、まず動くものを作り、試して、改良する。ソフトウェア開発の現場で当たり前の進め方。
  3. 失敗を情報として使う力 「なぜ動かないのか」をAIに問いかけてデバッグする。エラーは敵ではなく、次に進むための手がかり。
  4. AIとの役割分担を知る AIはコードを書いてくれるが、「何を作るか」「これで良いか」を判断するのは人間。その境界線を実感する。
  5. 作り切る達成感 自分の手で指示した内容が動くゲームになる体験。「自分でも作れる」という感覚が最大の収穫。
  6. 技術の仕組みへの好奇心 「Wave制ってどうやって実装されている?」という疑問が生まれたら、AIにコードの説明を頼んでみよう。
02 — demos
各Stepの完成画面
Step 1 ベースゲーム
Step 01
ベースゲーム — 自機・敵・弾・スコア
Step 2 Wave制+ボス戦
Step 02
Wave制+ボス戦 — 3種の敵・体力バー
Step 3 パワーアップ追加
Step 03
パワーアップ追加 — 4種アイテム・ボム
Step 4 BGM・効果音追加
Step 04
BGM・効果音 — Web Audio API生成
03 — overview
課題で学べること
プログラミング経験は不要。生成AIがコードを書いてくれるので、「何を作りたいか」を言葉で伝えることが大事。一度に全部を指示するのではなく、1つずつ改良を加えていくのがポイント。
04 — prompts
プロンプト例
ベースゲームの生成
プロンプト:
HTML + JavaScriptで、縦スクロールシューティングゲームを作ってください。
- Canvas要素を使用
- 矢印キーで自機を移動、スペースキーで弾を発射
- 星が流れる宇宙背景
- 複数の敵キャラが画面上部から出現
- 敵を倒すとスコア加算
- 自機が敵や敵弾に当たるとミス
- スコア表示
1つのHTMLファイルにまとめてください。
生成例を こちら で遊べる。
動作確認+Wave制・ボス追加
プロンプト(動作確認):
生成されたゲームをプレイして、正常に動作することを確かめてください。
もし動かない箇所やバグがある場合は修正してください。
プロンプト(敵の種類とボス追加):
敵の種類を増やし、ボス戦を追加してください。
- 通常敵:まっすぐ降りてくる(赤)
- 蛇行敵:左右に揺れながら降りてくる(緑)
- 突撃敵:自機を狙って突進してくる(紫)
- ボス:Wave 5ごとに出現する大型の敵(体力バーあり)
Wave制にして、Waveが進むと敵の数と速度が増加するようにしてください。
パワーアップ追加
プロンプト:
以下のパワーアップアイテムを追加してください。
- パワーショット:弾が太く強くなる
- ダブルショット:2方向に弾を撃てる
- シールド:1回だけダメージを防ぐ
- ボム:画面全体の敵を消す(Zキーで使用、ストック制)
敵を倒すとランダムにアイテムがドロップするようにしてください。
BGM・効果音追加
プロンプト:
Web Audio APIを使って以下の効果音を追加してください。
- 自機の射撃音
- 敵の爆発音
- パワーアップ取得音
- ボム使用音
- ボス戦の警告音
- BGM(ループ再生する宇宙風のメロディ)
すべてプログラムで生成してください(音声ファイルは使わない)。
生成例 — BGM・効果音付き(Mキーでサウンドon/off)
05 — ideas
改良アイデア集