Appearance
第24回 地形の種類追加と作品の完成ファイル構成
4 / 4 Release版を配布用フォルダへまとめる
このステップの目的
Visual StudioでRelease x64構成をビルドし、実行バイナリ・アセット一式・説明書(README)をまとめた配布用パッケージを作成して、開発環境外での独立動作を検証します。
Debug構成とRelease構成の役割の違い
開発中は不具合の特定やステップ実行のために Debug 構成を使用してきましたが、第三者に配布する完成バイナリは必ず Release 構成でビルドします。
Debug構成: デバッグ情報の付与やアサーション検査が有効化されており、コンパイラによる最適化は無効です。処理速度が低下するほか、開発用ランタイムライブラリに依存するため、開発環境のないPCでは起動できない場合があります。Release構成: 未使用コードの削除やインライン展開などコンパイラによる最適化が適用され、ゲームが高速かつ安定して動作します。
Visual Studio上部のツールバーで構成を Release、プラットフォームを x64 に設定し、メニューの「ビルド」→「ソリューションのビルド」を実行します。
配布用フォルダの構成と不要ファイルの除外
ビルドが成功すると、プロジェクトルートの x64/Release/ ディレクトリに実行ファイル(PlatformerGame2D.exe)と、ビルド後イベントによって自動コピーされた Assets フォルダが生成されます。
配布用パッケージとして必要な最小構成は以下の通りです:
- PlatformerGame2D-Release
- PlatformerGame2D.exe
- Assets
- Images
- Maps
- Sounds
- README.txt
パッケージに含めない開発用ファイル
以下のファイル群は開発環境向けの中間生成物やソースコードであり、ゲームの実行には不要です。配布フォルダからは除外します:
- ソースコードファイル(
Source/*.cpp,*.h) - プロジェクトファイル(
*.sln,*.vcxproj) - コンパイル中間生成物(
*.obj,*.pdb,*.tlog,*.idbなど)
これらを除外することで、配布パッケージのサイズを抑え、プレイヤーの実行に必要な最小限の構成にします。
README.txt による利用案内
ゲームを受け取ったプレイヤーがスムーズに遊べるように、フォルダ内に README.txt を作成し、操作方法やルールを明記します。
text
==================================================
2Dプラットフォーマーゲーム (PlatformerGame2D)
==================================================
【ゲーム概要】
敵やトゲの罠を回避しながら、右奥のゴールフラッグを目指す2Dアクションゲームです。
【操作方法】
・左右カーソルキー: 移動
・Z キー : ジャンプ / ゲーム開始 / リトライ
・T キー : タイトルへ戻る(結果画面時)
・F1 キー : デバッグ表示の切り替え
【ルール】
・敵は上から踏みつけることで倒せます。
・トゲトラップへの接触、敵の側面への接触、画面外への落下でゲームオーバーとなります。
・ステージ右端のゴール旗に触れるとゲームクリアです。開発環境外(ポータビリティ)の検証
作成した配布用フォルダを、プロジェクトディレクトリの外側(例: デスクトップや別ドライブ)へコピーします。Visual Studioを起動していない状態で PlatformerGame2D.exe を直接実行し、以下の点を確認します:
- アセット読み込みエラーのエラーダイアログが出ずに、タイトル画面が表示されるか
- 画像、CSVマップ、効果音、BGMがすべて正常に読み込まれるか
- タイトルからゲームクリア、ゲームオーバー、リトライまでの一連のプレイが完結するか
問題なく動作することを確認したら、フォルダをZIP形式で圧縮して配布可能な状態にします。
全12回の総括
第13回の「プロジェクト境界とDXライブラリ初期化」から始まった本コースでは、以下のゲームプログラミング技術を体系的に学び、実装してきました:
- 座標系とカメラ: スクリーン座標とワールド座標の明確な分離、滑らかなカメラ追従
- データ駆動のステージ: CSVからの動的マップ生成、タイル定義テーブルによる拡張性
- 物理運動とサブピクセル精度: 加速度・摩擦・終端速度・移動端数(Remainder)による整数丸め誤差の蓄積防止
- 安定した衝突判定: 軸分離(AABB)による押し戻しとトンネリング防止、イプシロンによる床判定の安定化
- アニメーションと演出: スプライトシート切り出し、アニメーション状態機械、イベント通知による疎結合な音響設計
- 操作感の向上と巡回移動: 可変ジャンプ、コヨーテタイム、先行入力バッファ、足元先読みセンサーによる敵の巡回
- ゲームサイクルの完結: 踏みつけ判定、トゲトラップ、ステートマシンと状態復元を伴うリトライ処理
C++言語とDXライブラリを用いて、物理運動・幾何衝突・データ駆動設計・状態管理を組み合わせたプラットフォーマーゲームの基盤を完成させました。
チェックリスト
-
Releasex64構成でビルドを行い、最適化された実行ファイルを出力できる - 開発用中間ファイルを除外し、実行に必要なファイルと
README.txtをパッケージングできる - プロジェクト外の環境へ配布フォルダを配置し、相対パス依存の崩れなく独立動作することを確認できる