Appearance
第13回 C++実践 独自ゲームの制作 4 / ブラッシュアップ
前回: 第12回 C++実践 独自ゲームの制作 3 / 拡張とデバッグ / 次回: 特別授業 オブジェクトを沢山出す
前回の振り返り
拡張とデバッグを行いました
- スコア、リトライ、音、エフェクトなどの拡張候補を扱いました
- デバッグ表示で値を確認しました
- 不具合を再現手順から追う流れを扱いました
- 今回は、提出や発表に向けて作品を仕上げます
今回の目的
作品を提出できる状態にする
- 最低限遊べる状態を安定させる
- 操作説明、タイトル、結果表示を整える
- 目立つ不具合を減らす
- 発表または提出に必要な情報を用意する
今回の授業内容
C++実践 独自ゲームの制作 4 / ブラッシュアップ
- 作品の完成条件を確認する
- プレイヤーが迷わない表示にする
- バランスと見た目を調整する
- 提出前チェックを行う
- できる範囲で最後まで遊べる作品に仕上げる
ブラッシュアップ
最後に遊びやすくします
地味な仕上げが 作品を支えます
完成条件を確認する
何をもって完成とするかを決める
起動できる
操作できる
目的が分かる
成功または失敗がある
結果が表示される
途中で止まりにくい
追加要素より、最後まで遊べることを優先します
プレイヤーに伝える情報
迷わず遊べるようにする
- タイトル
- 操作方法
- 目的
- スコアや残り時間
- クリア条件
- ゲームオーバー条件
- リトライ方法
タイトル画面
ゲーム開始前に必要な情報を置く
cpp
enum GameState
{
Title,
Playing,
GameOver,
GameClear
};
if (gameState == Title)
{
DrawString(220, 180, L"MY GAME", GetColor(255, 255, 255));
DrawString(180, 240, L"PRESS SPACE", GetColor(255, 255, 255));
if (CheckHitKey(KEY_INPUT_SPACE))
gameState = Playing;
}- タイトル画面があると、遊び始めの区切りが分かりやすくなります
- 時間がない場合は、操作説明をゲーム画面に表示するだけでも構いません
操作説明
画面内に短く表示する
cpp
DrawString(20, 440, L"ARROW: MOVE", GetColor(255, 255, 255));
DrawString(20, 460, L"Z: SHOT", GetColor(255, 255, 255));- 説明は短くします
- プレイ中に必要な情報だけ残します
- 発表時にも、操作説明があると遊んでもらいやすくなります
難易度調整
気持ちよく遊べる範囲にする
プレイヤーの移動速度
敵や障害物の速度
敵や障害物の出現間隔
弾の速度
クリアまでの時間
スコアの増え方
難しすぎる場合は、最初の数秒を簡単にすると遊びやすくなります
見た目の調整
何が起きているか分かる画面にする
- プレイヤーと敵の色や形を分ける
- 当たり判定の大きさを見た目と近づける
- 重要な文字を背景から読みやすくする
- エフェクトで命中や失敗を伝える
- 画面端の外へ重要なものが出ないようにする
音の調整
聞き疲れしない音量にする
BGMを少し小さめにする
効果音が大きすぎないようにする
同じ効果音が連続しすぎないようにする
失敗や成功の音を分ける
音は作品の印象に強く関わるため、最後に一度通して確認します
提出前チェック
動作確認の観点
- 起動できるか
- 最初の画面が表示されるか
- 操作できるか
- クリアまたはゲームオーバーになるか
- リトライできるか
- 余計なデバッグ表示が残っていないか
- 必要な素材ファイルがそろっているか
発表で話すこと
短く伝えられるようにする
タイトル
どんなゲームか
操作方法
工夫した点
苦労した点
まだ改善したい点
完璧な作品でなくても、何を考えて作ったかを説明できることが大切です
相互プレイの見方
遊んでもらって分かることがあります
操作説明が伝わっているか
難しすぎないか
目的が分かるか
画面上で重要なものが見えているか
想定外の操作で止まらないか
感想だけでなく、どこで迷ったかを聞くと改善につながります
実習1: 提出前チェック
完成条件を満たしているか確かめる
- 起動から結果表示まで通して遊ぶ
- 操作説明があるか確認する
- クリアまたはゲームオーバーになるか確認する
- 素材ファイルがそろっているか確認する
- デバッグ表示を消すか、必要なものだけ残す
実習2: 改善を1つ選ぶ
作品に効くところを優先する
- 操作しやすさ
- 難易度
- 見た目
- 音
- リトライ
- 結果表示
- 改善を1つ選び、最後まで動作確認します
実習3: 作品を共有する
遊び方と工夫した点を説明する
- タイトルを伝える
- 操作方法を伝える
- 目的を伝える
- 工夫した点を伝える
- 相手に遊んでもらう
前期で扱ったこと
小さなゲーム制作に必要な基礎
- C++の基本
- DXライブラリでの描画と入力
- ゲームループ
- 構造体、配列、関数
- 衝突判定
- 状態管理
- 音、エフェクト
- クラスとポインターの入口
今回のまとめ
今日のポイント
- ブラッシュアップでは、追加より安定性を優先します
- 操作説明、結果表示、リトライは遊びやすさに直結します
- 発表では、作品の内容と工夫した点を短く伝えます
- ここまでの内容を土台に、後期や次の制作へつなげていきます