C言語入門|STEP3:成長するRPGの基礎-レベルアップとステータス計算の仕組み

はじめに:RPGに欠かせない「成長」の仕組み

STEP2では、キャラクターと職業を構造体と列挙型で表現しました。
STEP3では、RPGらしさを一気に高める レベルアップと成長の仕組み を解説します。

敵を倒して経験値を獲得し、

  • レベルが上がる
  • HPやMPが増える
  • 攻撃力や魔力が強くなる

こうした「成長」があるからこそ、
プレイヤーは 強くなっていく実感 を得られます。

今回のRPGにおける成長の考え方

このバトルRPGでは、次のようなルールで成長します。

項目内容
最大レベル20
経験値獲得敵を倒すと全員が獲得
レベルアップ一定経験値で自動
成長内容HP / MP / 攻撃力 / 魔力

重要なのは、
職業ごとに成長の仕方が違う という点です。

経験値が必要な理由

RPGでよくある疑問として、

「敵を倒したら、すぐレベルアップしてもいいのでは?」

というものがあります。

しかし、経験値を間に挟むことで、

  • すぐには成長しない。
  • もう少し頑張ると強くなる。
  • レベルアップのタイミングが楽しみになる。

といった ゲーム的なメリハリ が生まれます。

必要経験値のシンプルな設計

今回のRPGでは、
必要な経験値をとてもシンプルにしています。

レベル次のレベルに必要な経験値
1 → 220
2 → 340
3 → 460
レベル × 20

このように、

  • 計算式が分かりやすい。
  • バランス調整が簡単
  • 学習用として理解しやすい。

というメリットがあります。

レベルアップ処理の流れ

レベルアップは、次のような流れで行われます。

  1. 敵を倒す
  2. 経験値をパーティ全員に加算
  3. 必要経験値を超えているか確認
  4. 超えていればレベルアップ
  5. 能力値を増加

この処理は、自動で繰り返されるのがポイントです。
一気にレベルが2つ上がることも、きちんと対応できます。

成長テーブルという考え方

このRPGの特徴的な部分が、
成長テーブルを使っている点です。

成長テーブルとは、

  • レベルごと
  • 職業ごと

に、どれだけ能力が伸びるかを 表として用意しておく方法です。

職業ごとの成長の違い

成長テーブルを見ると、職業ごとの個性がはっきりしています。

職業成長の特徴
勇者全体的にバランス良く成長
戦士HPと攻撃力が大きく伸びる。
魔法使いMPと魔力が大きく伸びる。

この違いがあるからこそ、

  • 前線で戦う役
  • 魔法で支援する役

といった 役割分担 が自然に生まれます。

なぜ成長値を固定表にしているのか

成長を計算式だけで決める方法もありますが、
今回は 固定の成長表 を採用しています。

その理由は次のとおりです。

理由説明
予測しやすい強さの変化が分かりやすい。
調整しやすい数値を少し変えるだけでOK
学習向き配列と構造体の理解が深まる。

RPG制作の入門として、とても扱いやすい設計です。

レベルアップ時に行っている処理

レベルが上がると、次のような処理が行われます。

  • レベルを1増やす
  • 最大HPを増やす
  • 最大MPを増やす
  • 攻撃力と魔力を増やす
  • 現在HP / MPも回復させる

特に重要なのは、
最大値だけでなく現在値も増やしている 点です。

これにより、

  • レベルアップ直後に有利になる。
  • 戦闘中の成長が気持ちいい。

という、RPGらしい体験が生まれます。

パーティ全員が成長する設計

このRPGでは、
敵を倒すと生存している全員が経験値を得ます

状態経験値
生存中獲得する。
戦闘不能獲得しない。

これにより、

  • 倒れた仲間は成長が遅れる
  • 教会で復活させる意味が出る

といった、ゲーム的な判断要素が生まれます。

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

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

  • 経験値は成長のための蓄積
  • 必要経験値はシンプルな計算式
  • 成長は職業ごとに違う
  • 成長テーブルを使うと管理しやすい
  • レベルアップ処理は自動で繰り返す

ここまで理解できれば、
RPGの成長システムをC言語で実装できる基礎力 が身についています 👍