ゲーム制作で使える!経験値テーブルの作り方のコツ
レベルアップに必要な「経験値」の概念って、今ではゲームの常識だと思います。
そんな誰もが知ってる「経験値」の概念ですが、いざ実際にゲームに実装しようとしてみると意外と厄介なことに気付くものです。
そこで本記事では、これから自作ゲーム(特にRPG!)を作ろうと思っている方のために経験値テーブルの作り方のコツを、私が犯した失敗も交えながら解説していきたいと思います。
ゲームにおける経験値テーブルの作り方、とりあえず一例
ただまぁ、とりあえず計算式さえ分かればOK!と思っている人も多いと思うので、先に「時空物語外伝 イライザのゴールドラッシュ」で使用した経験値テーブルとその計算式を公開したいと思います。
ただし念を押しておきますと、経験値テーブルの持ち方・作り方はゲームジャンル(経験値の稼ぎやすさ)によって若干異なってきます。
あくまでも今回は「放置系育成ゲーム」という枠組みの中で「このくらいが適当だろう」と思って実装したものですので、完全に鵜呑みにせず、参考ぐらいに留めておいてください。
時空物語外伝 イライザのゴールドラッシュ 経験値テーブル(レベル60まで)
レベル | レベルアップに必要な経験値 | これまでの累積経験値 |
---|---|---|
1 | 10 | 0 |
2 | 11 | 10 |
3 | 12 | 21 |
4 | 13 | 33 |
5 | 14 | 46 |
6 | 15 | 60 |
7 | 17 | 75 |
8 | 19 | 92 |
9 | 21 | 111 |
10 | 23 | 132 |
11 | 25 | 155 |
12 | 28 | 180 |
13 | 31 | 208 |
14 | 34 | 239 |
15 | 37 | 273 |
16 | 41 | 310 |
17 | 45 | 351 |
18 | 50 | 396 |
19 | 55 | 446 |
20 | 61 | 501 |
21 | 67 | 562 |
22 | 74 | 629 |
23 | 81 | 703 |
24 | 89 | 784 |
25 | 98 | 873 |
26 | 108 | 971 |
27 | 119 | 1079 |
28 | 131 | 1198 |
29 | 144 | 1329 |
30 | 158 | 1473 |
31 | 174 | 1631 |
32 | 191 | 1805 |
33 | 210 | 1996 |
34 | 231 | 2206 |
35 | 254 | 2437 |
36 | 279 | 2691 |
37 | 307 | 2970 |
38 | 338 | 3277 |
39 | 372 | 3615 |
40 | 409 | 3987 |
41 | 450 | 4396 |
42 | 495 | 4846 |
43 | 545 | 5341 |
44 | 600 | 5886 |
45 | 660 | 6486 |
46 | 726 | 7146 |
47 | 799 | 7872 |
48 | 879 | 8671 |
49 | 967 | 9550 |
50 | 1064 | 10517 |
51 | 1170 | 11581 |
52 | 1287 | 12751 |
53 | 1416 | 14038 |
54 | 1558 | 15454 |
55 | 1714 | 17012 |
56 | 1885 | 18726 |
57 | 2074 | 20611 |
58 | 2281 | 22685 |
59 | 2509 | 24966 |
60 | 2760 | 27475 |
時空物語外伝 イライザのゴールドラッシュ 経験値計算式
レベルアップに必要な経験値=前のレベルでレベルアップに必要だった経験値×1.1
ちなみにレベル1の時は「前のレベルでレベルアップに必要だった経験値」が存在しないので、初期値として「10」を採用しています。
複数の経験値テーブル・・・例えば「レベルが上がりやすいキャラ」「普通のキャラ」「レベルが上がりにくいキャラ」などを用意したいと思った場合は、このレベル1の時の初期値をそれぞれ「8」「10」「15」みたいに設定してあげればOKです。
ゲームにおける経験値テーブルの作り方、大前提
まず前提として、ゲームにおける経験値テーブルとはどうあるべきかという点について認識を合わせておきましょう。
色々と主義主張はあると思いますが、ごく一般的な経験値テーブル(レベルアップ)の考え方は、次のようなものだと思います。
- 序盤はさくさくレベルが上がる。
→ストレス度:低 - 中盤からゲームクリアにかけて段々とレベルが上がりづらくなってくる、だけど地道にコツコツやっていけばまあ大丈夫。
→ストレス度:中 - ゲームクリア後、つまりやり込みの段階まで来るとレベルアップのための経験値量が相当必要になってくる。当然レベルは上げづらい。
→ストレス度:高
要は、ゲームを進めれば進める程、終盤に近づけば近づく程、段々とレベルが上げづらくなっていく・・・というのが一般的な経験値テーブルの考え方だと思います。
ゲームにおける経験値テーブルの作り方、基本編
さて、上述のように「段々とレベルが上げづらくなっていく」経験値テーブルを作るための基本的な考え方なのですが、ズバリ「指数関数的な曲線」を意識することです。
百聞は一見にしかず、まず次の図を見てください。
これは上述の「時空物語外伝 イライザのゴールドラッシュ 経験値テーブル(レベル60まで)」をグラフにしたものです。
右に行くに従って、カーブがきつくなっているのが分かると思います。
これが先ほど言った「指数関数的な曲線」です。
このようにレベルアップに必要な経験値の量を徐々に増やしていくことで、「ゲーム後半に行くに連れてレベルアップがしづらくなってくる」という感覚をユーザーに与えることができます。
指数関数的な曲線の作り方
これも難しく考える必要はありません。
簡単に作りたければ、上述の計算式のように「前のレベルでレベルアップに必要だった経験値」に対して、1より大きい数字を掛けてあげれば良いだけです。
それだけであら簡単、綺麗な曲線の出来上がりです。
※もう一度言いますが、これが最適解ではありません。ご注意ください。
ゲームにおける経験値テーブルの作り方、応用編
基本はまぁ何となく理解できたかと思います。
何となくで大丈夫です、書いている当の本人も何となくでしか理解していませんので(笑)
さて、とりあえず「指数関数的な曲線」を描けはしましたが、「これじゃちょっとカーブがキツすぎる」とか「序盤からもう少し難易度を上げていきたい」のような要望って、きっとあると思います。
ただ、これらの要望は先程の計算式の係数(イライザのゴールドラッシュでは「1.1」が係数でした)を変えるだけでは実現できません。
そこで、次のようなグラフに変えてみましょう。
これだけだとちょっと分かりづらいと思うので、最初にお見せしたグラフと比べてみましょう。
どうでしょう、最初のグラフ(青い線)に比べて、今回のグラフ(赤い線)の方がカーブの度合いが少し緩やかになっていると思いませんか?
これは一体何をしたかと言いますと、上で紹介した計算式を以下のように変更してみたのです。
経験値A=前のレベルでレベルアップに必要だった経験値×1.1
経験値B=今のレベル×15
レベルアップに必要な経験値=(経験値A+経験値B)÷2
経験値Aの計算式は上で紹介したものですよね。
問題は経験値Bの計算式ですが、これは単純な比例のグラフを描く計算式です。
※こういう真っ直ぐなグラフを見ると、脳みそを使わずとも理解できるので何となくホッとしますよね(笑)
経験値テーブルの作り方、応用編 ここがポイント!
とまぁ、応用編についてさっくりと語ったのですが、ここで押さえておきたいポイントを1つだけお話ししましょう。
それは「グラフとグラフを単純に足すだけで、別のグラフになる」ということです。
どういうことかと言いますと、実は先ほどの計算式って要は次のようなイメージなんです。
足す
イコール
つまり、「ちょっとカーブがキツすぎるな」とか「序盤からもう少し難易度を上げていきたい」のように感じてグラフの形を変えたいなと思った場合、元々の計算式に対して全く別の計算式を「単純に足してあげれば良い」のですね。
これだけでさらっと、全く別のグラフを描けるようになっちゃうんです。
中学校の時に役に立たないと思っていた数学の知識、役に立つ日が来るとはなぁ・・・(笑)
ゲームにおける経験値テーブルの作り方、失敗例・・・
ただし、当然ですがこれらのやり方を真似ただけでは失敗することもあります。
むしろ自分がそれで失敗した側なのですが、前作「時空物語」の経験値テーブルは正直失敗だったと感じています。(プレイしてくださった皆さん、本当にごめんなさい!m(_ _)m)
と言うのも、「時空物語」の経験値テーブルを組む時に、1レベル毎のレベルアップ経験値量を少し離し過ぎてしまったのですね。
そしてそれに合わせて、各ステージで獲得できる経験値量を調整して行ったのです。
結果として「時空物語」では、「適正レベルのステージ」でしかレベル上げが行えず、難易度の低い「適正レベル以下のステージ」では獲得できる経験値量が少なくて全く美味しくないという現象が発生してしまったのです。
もっと簡単に言うと、「1つ前のステージがレベル上げのために全く役に立たない」といったものです。
ゲームバランス的には、適正レベルの1~2つ前のステージやダンジョンなら回数を重ねればそれなりにレベルアップできるように調整するのがまあ普通の感覚だと思います。
ボスステージの手前で十分にレベルを上げてから・・・というのはゲームをプレイしたことがある方なら一度はやった行動でしょう。
「時空物語」では、そういう行動が極端にやりづらくなっていて、それがユーザーのストレスに直結していました。
これは完全に失敗でした。
経験値テーブル作りに失敗しないためには・・・?
このように、経験値テーブルの作成に失敗しないためには、以下の点を守るべきだと私は思います。
- レベルアップに必要な経験値の量は、前のレベルでの必要経験値量の+10~30%ぐらいに留めておく。
- ゲームバランスを確認する時、直前(適正レベル以下)のステージでレベル上げが行えるか確認する。
もちろん、これが最適解とは限りませんが、「ゲームのユーザーが、適正レベル以下のステージに行く意味があると思えるか」をバランス調整の時にチェックするだけでも、ゲームのプレイ感が大分違ってくると思います。
必要なのは開発者自身のレベル上げ!
さて、ゲームの経験値テーブルの作り方について長々と解説させてもらいましたが、これらは単なる文章であって、実際のゲーム作りに役立つかどうかは分かりません!
自分でいくつかゲームを作っていて感じるのは、自分のレベルを上げないと面白いゲームは作れないなということです。
アイデアが面白いというのはもちろん、ゲームにとって大事な要素です。
ですがそれだけでなく、レベル上げのようなユーザーにとって「作業」になりがちな要素について如何にストレスを感じさせずに遊んでもらえるかというのも、やはりゲームにとっては大事だと思います。
そしてそれらを実現できるのはひらめきでも何でもなく、開発者自身が積み上げた経験値だけなのです。
という訳で開発者の皆さん、がんばってレベルを上げて行きましょう!
・・・やった!綺麗にまとまったぜ!ヽ(゚∀゚)ノ パッ☆
これって小数点より下の数値はどう扱いますか?
ユピテル様
コメントありがとうございます。
経験値テーブルにおいては、小数点より下の数値に関しては「切り上げ」が最も使いやすいかなと個人的には考えてます。
とはいえ、実現したいゲームの仕様がまず先にあっての話ですので、月並みですが色々と試してみるとよろしいかと思いますよ。