
C言語入門|STEP10:ラスボス戦とエンディング-バトルRPGの定義を完成させよう!
はじめに:いよいよRPG定義の完成
STEP9では、セーブ・ロードと各種イベント処理を実装しました。
STEP10でいよいよ バトルRPGの定義を完成させます。
ラスボス戦とエンディングの定義 です。
ここまで積み上げてきた、
- キャラクター
- 成長システム
- 魔法とアイテム
- バトルシステム
- マップ探索
これらすべてが、
ラスボス戦で一気につながります。

ラスボスの位置づけを整理しよう
今回のRPGにおけるラスボスは、
マスタードラゴン です。
ラスボスは、
- ゲームの最終目標
- プレイヤーの成長を試す相手
- 物語のクライマックス
という特別な存在です。
そのため、
通常の敵とは 明確に差別化 されています。
ラスボス専用マスを用意する理由
ラスボスは、
マップ上の特別なマス B に配置されています。
この設計には、次のような意味があります。
| ポイント | 内容 |
|---|---|
| 視覚的に分かりやすい。 | 近づくと緊張感が高まる。 |
| 誤って遭遇しない。 | 準備してから挑める。 |
| 特別感 | 通常戦闘と区別できる。 |
探索の中で
「ここが最後の戦いだ」と分かるのは、
RPGとしてとても大切な演出です。
ラスボスのステータス設計
マスタードラゴンは、
通常敵よりも 圧倒的に強いステータス を持っています。
| 項目 | 特徴 |
|---|---|
| HP | 非常に高い |
| MP | 強力な魔法を複数回使用可能 |
| 攻撃力 | 通常攻撃も重い |
| 魔法 | 攻撃・回復・強化・防御すべてを使用 |
これまでの冒険で、
- レベルを上げ
- 装備を整え
- アイテムを集めていない。
場合は、
正面から勝つのが難しい相手 になっています。
ラスボス戦も通常バトル関数を使う理由
意外に感じるかもしれませんが、
ラスボス戦でも 通常のバトル処理関数 を使っています。
違うのは、
- 敵データが特別
- 勝利時の処理が特別
という点だけです。
この設計の良いところは、
- バトル処理を流用できる。
- バグが入りにくい。
- プログラムがスッキリする。
という点です。
「特別な敵=特別な処理」ではない
というのは、設計上とても重要な考え方です。
ボス戦ならではの緊張感を生む要素
ラスボス戦では、
次のような要素が重なって緊張感が生まれます。
- 長期戦になりやすい。
- 回復タイミングが重要
- 防御や強化が勝敗を分ける。
- アイテムの使いどころが難しい。
これまで学んできたすべての要素を
どう使うかが問われる戦闘 です。
ラスボス撃破時の処理の流れ
マスタードラゴンのHPが0になると、
次のような流れになります。
- 勝利メッセージ表示
- Enterキー待ち
- エンディング画面へ移行
通常戦闘と違い、
- 経験値は獲得しない
- マップには戻らない
という 特別扱い をしています。
エンディングを用意する意味
エンディングは、
ゲームとしての 区切り を作る大切な要素です。
エンディングがあることで、
- 冒険が完結した。
- 達成感が得られる。
- 作品として締まる。
という効果があります。
短くてもよいので、
必ず用意する価値がある部分 です。
エンディング表示のシンプルな設計
今回のエンディングは、
- 画面クリア
- タイトル表示
- 物語テキスト表示
- Enterキー待ち
という、とてもシンプルな構成です。
複雑な演出がなくても、
- 文章
- タイミング
だけで、
十分に「終わった感」 を出すことができます。
ゲームクリア後にループを抜ける理由
エンディングが終わると、
main関数のループを抜けて、プログラムは終了します。
これは、
- クリア後に余計な操作をさせない。
- 明確に「終了」させる。
ためです。
RPGとしては、
- 一本道だが
- 最後まで遊び切れる
という、学習用としてちょうどよい設計です。
STEP1〜STEP10を通して定義したもの
STEP1〜STEP10を通して、
次のようなRPGの定義が完成しました。
| 要素 | 実装内容 |
|---|---|
| キャラクター | 構造体と職業管理 |
| 成長 | レベルアップと成長テーブル |
| 魔法 | 攻撃・回復・強化 |
| バトル | ターン制コマンド選択 |
| アイテム | 回復・装備 |
| マップ | 2次元配列探索 |
| セーブ | 状態の保存と復元 |
| エンディング | 物語の完結 |
単一ファイル rpg1.c だけで、ここまでの定義したRPGを完成 させていきます。
STEP10で理解しておきたいポイントまとめ
STEP10で押さえておきたいポイントはこちらです。
- ラスボスは特別な敵データとして扱う。
- バトル処理は流用するのが基本
- 勝利後は専用のエンディングへ進む。
- エンディングはゲームの完成度を高める。
- 単一ファイルでも本格RPGは作れる。
これで、
12章 バトルRPGゲームの定義(単一ファイル編) は完結です 🎉
次のSTEP11~STEP21でバトルRPGゲームのプログラムを実装していきます。
