Appearance
ゲームプログラミング実践
C++/DXライブラリ入門
DXライブラリを使って2Dシューティングゲームを作りながら、C++によるゲームプログラミングの基本を学びます
開始用プロジェクトから各回で段階的に実装し、最終的に基本的なゲームの完成を目指します
授業の流れ
| 回 | テーマ | 主な内容 |
|---|---|---|
| 第01回 | 環境確認とプロジェクト構造 | 開始用プロジェクトの実行、完成仕様の確認 |
| 第02回 | ゲームループと描画 | プレイヤー座標、仮図形、更新と描画 |
| 第03回 | 入力と移動 | Inputクラス、移動、画面内制限 |
| 第04回 | 構造体と矩形 | Vec2、Rect、当たり判定準備 |
| 第05回 | 弾を撃つ | 弾構造体、固定配列、有効フラグ |
| 第06回 | 敵と衝突判定 | 敵構造体、生成、衝突、スコア、HP |
| 第07回 | クラス分割入門 | Player、Bullet、Enemyへの分割 |
| 第08回 | 画像とリソース管理 | ImageManager、画像描画、失敗時フォールバック |
| 第09回 | ゲーム状態 | タイトル、プレイ中、結果、リトライ |
| 第10回 | 音と演出 | SoundManager、撃破エフェクト |
| 第11回 | 参照・ポインタ・寿命 | 所有関係、const参照、不要なポインタの点検 |
| 第12回 | 独自要素の追加 | 設計メモ、小さな拡張、動作確認 |
| 第13回 | デバッグ・調整・発表 | 提出前チェック、調整、発表 |
実装の進め方
この教材では、完成版コードを先に読んで写すのではなく、開始用プロジェクトへ毎回少しずつ実装を追加します。
各回のページでは、次の情報を示します。
- 今回の開始状態
- 今回変更するファイル
- 追加するメンバ変数や関数
- 実装する順序
- 動作確認とよくある問題
- 今回の完成条件
完成版プロジェクトは、最終的な仕様確認や、授業後の差分確認に使います。
完成版プロジェクト
完成版は、外部素材がなくても動作する2Dシューティングゲームです。
Gameクラスでゲーム全体の状態を管理するPlayer、Enemy、Bullet、Effectを個別のクラスに分ける- 固定配列のオブジェクトプールで弾、敵、エフェクトを扱う
- タイトル、プレイ中、ゲームオーバー、ゲームクリアの状態を持つ
- 当たり判定、スコア、残り時間、デバッグ表示を実装する
- 画像と音は任意素材として差し替えられる構成にする
到達目標
- C++の基本構文を、ゲーム制作の文脈で説明できる
- 1フレームの入力、更新、判定、描画の流れを説明できる
- データと処理を役割ごとに分け、読みやすいプロジェクトを作れる
- 配列、構造体、クラス、列挙型を使ってゲーム内オブジェクトを管理できる
- 不具合を再現し、デバッグ表示やコード確認で原因を絞れる
配布ファイル
開始用プロジェクトと完成版プロジェクトは配布ファイルから確認できます。