C言語入門|STEP10:ラスボス戦とエンディング-バトルRPGの定義を完成させよう!

はじめに:いよいよRPG定義の完成

STEP9では、セーブ・ロードと各種イベント処理を実装しました。
STEP10でいよいよ バトルRPGの定義を完成させます。
ラスボス戦とエンディングの定義 です。

ここまで積み上げてきた、

  • キャラクター
  • 成長システム
  • 魔法とアイテム
  • バトルシステム
  • マップ探索

これらすべてが、
ラスボス戦で一気につながります

ラスボスの位置づけを整理しよう

今回のRPGにおけるラスボスは、
マスタードラゴン です。

ラスボスは、

  • ゲームの最終目標
  • プレイヤーの成長を試す相手
  • 物語のクライマックス

という特別な存在です。

そのため、
通常の敵とは 明確に差別化 されています。

ラスボス専用マスを用意する理由

ラスボスは、
マップ上の特別なマス B に配置されています。

この設計には、次のような意味があります。

ポイント内容
視覚的に分かりやすい。近づくと緊張感が高まる。
誤って遭遇しない。準備してから挑める。
特別感通常戦闘と区別できる。

探索の中で
「ここが最後の戦いだ」と分かるのは、
RPGとしてとても大切な演出です。

ラスボスのステータス設計

マスタードラゴンは、
通常敵よりも 圧倒的に強いステータス を持っています。

項目特徴
HP非常に高い
MP強力な魔法を複数回使用可能
攻撃力通常攻撃も重い
魔法攻撃・回復・強化・防御すべてを使用

これまでの冒険で、

  • レベルを上げ
  • 装備を整え
  • アイテムを集めていない。

場合は、
正面から勝つのが難しい相手 になっています。

ラスボス戦も通常バトル関数を使う理由

意外に感じるかもしれませんが、
ラスボス戦でも 通常のバトル処理関数 を使っています。

違うのは、

  • 敵データが特別
  • 勝利時の処理が特別

という点だけです。

この設計の良いところは、

  • バトル処理を流用できる。
  • バグが入りにくい。
  • プログラムがスッキリする。

という点です。

「特別な敵=特別な処理」ではない
というのは、設計上とても重要な考え方です。

ボス戦ならではの緊張感を生む要素

ラスボス戦では、
次のような要素が重なって緊張感が生まれます。

  • 長期戦になりやすい。
  • 回復タイミングが重要
  • 防御や強化が勝敗を分ける。
  • アイテムの使いどころが難しい。

これまで学んできたすべての要素を
どう使うかが問われる戦闘 です。

ラスボス撃破時の処理の流れ

マスタードラゴンのHPが0になると、
次のような流れになります。

  1. 勝利メッセージ表示
  2. Enterキー待ち
  3. エンディング画面へ移行

通常戦闘と違い、

  • 経験値は獲得しない
  • マップには戻らない

という 特別扱い をしています。

エンディングを用意する意味

エンディングは、
ゲームとしての 区切り を作る大切な要素です。

エンディングがあることで、

  • 冒険が完結した。
  • 達成感が得られる。
  • 作品として締まる。

という効果があります。

短くてもよいので、
必ず用意する価値がある部分 です。

エンディング表示のシンプルな設計

今回のエンディングは、

  • 画面クリア
  • タイトル表示
  • 物語テキスト表示
  • Enterキー待ち

という、とてもシンプルな構成です。

複雑な演出がなくても、

  • 文章
  • タイミング

だけで、
十分に「終わった感」 を出すことができます。

ゲームクリア後にループを抜ける理由

エンディングが終わると、
main関数のループを抜けて、プログラムは終了します。

これは、

  • クリア後に余計な操作をさせない。
  • 明確に「終了」させる。

ためです。

RPGとしては、

  • 一本道だが
  • 最後まで遊び切れる

という、学習用としてちょうどよい設計です。

STEP1〜STEP10を通して定義したもの

STEP1〜STEP10を通して、
次のようなRPGの定義が完成しました。

要素実装内容
キャラクター構造体と職業管理
成長レベルアップと成長テーブル
魔法攻撃・回復・強化
バトルターン制コマンド選択
アイテム回復・装備
マップ2次元配列探索
セーブ状態の保存と復元
エンディング物語の完結

単一ファイル rpg1.c だけで、ここまでの定義したRPGを完成 させていきます。

STEP10で理解しておきたいポイントまとめ

STEP10で押さえておきたいポイントはこちらです。

  • ラスボスは特別な敵データとして扱う。
  • バトル処理は流用するのが基本
  • 勝利後は専用のエンディングへ進む。
  • エンディングはゲームの完成度を高める。
  • 単一ファイルでも本格RPGは作れる。

これで、
12章 バトルRPGゲームの定義(単一ファイル編) は完結です 🎉
次のSTEP11~STEP21でバトルRPGゲームのプログラムを実装していきます。